Commit bdfec245abd22d3a4fbed63293e529acc9ddb012

Authored by rcavalie
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();
... ...