Commit bdfec245abd22d3a4fbed63293e529acc9ddb012
1 parent
4d6b688b
intégration du réseau de neurones début
Showing
2 changed files
with
48 additions
and
1 deletions
Show diff stats
python/ANN.py
... | ... | @@ -5,6 +5,7 @@ Réseau de neurones |
5 | 5 | P32 : Apprentissage DoS |
6 | 6 | PFE 2018 - IMA5SC Polytech Lille |
7 | 7 | """ |
8 | +#Programme générique. N'oubliez pas de changer les PATHS | |
8 | 9 | ############################################################################### |
9 | 10 | #LIBRAIRIES UTILES |
10 | 11 | ############################################################################### |
... | ... | @@ -16,7 +17,6 @@ from sklearn.preprocessing import StandardScaler |
16 | 17 | from sklearn.metrics import confusion_matrix |
17 | 18 | # Réseau de neurones |
18 | 19 | from keras.models import Sequential |
19 | -from keras.models import model_from_json | |
20 | 20 | from keras.layers import Dense |
21 | 21 | ############################################################################### |
22 | 22 | |
... | ... | @@ -102,4 +102,15 @@ good_prediction = cm[0, 0] + cm[1, 1]; |
102 | 102 | #dire qu'une attaque est un trafic normal |
103 | 103 | bad_prediction = cm[1, 0] + cm[0, 1]; |
104 | 104 | taux_succes = good_prediction * 100 / (good_prediction + bad_prediction); |
105 | +########################################################################################## | |
106 | + | |
107 | +########################################################################################## | |
108 | +#SAUVEGARDE DU TRAINING SET | |
109 | +########################################################################################## | |
110 | +#Le modèle est mis au format JSON | |
111 | +classifier_json = classifier.to_json(); | |
112 | +with open('C:/Users/Utilisateur/PFE/python/Training/training.json',"w") as json_file : | |
113 | + json_file.write(classifier_json); | |
114 | +#Les poids sont mis en HDF5 | |
115 | +classifier.save_weights("C:/Users/Utilisateur/PFE/python/datasets/training.h5"); | |
105 | 116 | ########################################################################################## |
106 | 117 | \ No newline at end of file | ... | ... |
python/main.py
... | ... | @@ -10,8 +10,41 @@ Main - prédictions, affichage, vérification du trafic |
10 | 10 | ############################################################################### |
11 | 11 | import tkinter as tkr; |
12 | 12 | import time; |
13 | +from keras.models import model_from_json | |
14 | +from keras.models import Sequential | |
15 | +import numpy as np | |
13 | 16 | ############################################################################### |
14 | 17 | |
18 | +########################################################################################## | |
19 | +#LOAD DU TRAINING SET | |
20 | +########################################################################################## | |
21 | +json_file=open('C:/Users/Utilisateur/PFE/python/Training/training.json','r'); | |
22 | +loaded_model_json=json_file.read(); | |
23 | +json_file.close(); | |
24 | +loaded_model=model_from_json(loaded_model_json); | |
25 | +loaded_model.load_weights('C:/Users/Utilisateur/PFE/python/Training/training.h5'); | |
26 | +########################################################################################## | |
27 | + | |
28 | +########################################################################################## | |
29 | +#REALISER DES PREDICTIONS | |
30 | +########################################################################################## | |
31 | +#PING en ms | |
32 | +ping_mesured = 1000; | |
33 | +#Delta _RSSI entre deux trames en dB (dBm - dBm -> dB) | |
34 | +rssi_mesured = 8; | |
35 | +classifier = Sequential(); | |
36 | +dataset_to_pred = [ping_mesured, rssi_mesured]; | |
37 | +predictions = classifier.predict(dataset_to_pred); | |
38 | + | |
39 | +predictions_named = []; | |
40 | + | |
41 | +for x in range(0, 1): | |
42 | + if predictions[x] > 0.5: | |
43 | + predictions_named.append("Normal") | |
44 | + else: | |
45 | + predictions_named.append("Attaque") | |
46 | +########################################################################################## | |
47 | + | |
15 | 48 | ############################################################################### |
16 | 49 | #FONCTIONS UTILES |
17 | 50 | ############################################################################### |
... | ... | @@ -54,6 +87,9 @@ def Refresher(): |
54 | 87 | text.configure(text=time.asctime()); |
55 | 88 | root.after(1000, Refresher);#Refresh toutes les secondes |
56 | 89 | |
90 | +############################################################################### | |
91 | +#AFFICHAGE | |
92 | +############################################################################### | |
57 | 93 | root=tkr.Tk(); |
58 | 94 | Draw(); |
59 | 95 | Refresher(); | ... | ... |