diff --git a/python/ANN.py b/python/ANN.py index 8602cd8..2fb6beb 100644 --- a/python/ANN.py +++ b/python/ANN.py @@ -5,6 +5,7 @@ Réseau de neurones P32 : Apprentissage DoS PFE 2018 - IMA5SC Polytech Lille """ +#Programme générique. N'oubliez pas de changer les PATHS ############################################################################### #LIBRAIRIES UTILES ############################################################################### @@ -16,7 +17,6 @@ from sklearn.preprocessing import StandardScaler from sklearn.metrics import confusion_matrix # Réseau de neurones from keras.models import Sequential -from keras.models import model_from_json from keras.layers import Dense ############################################################################### @@ -102,4 +102,15 @@ good_prediction = cm[0, 0] + cm[1, 1]; #dire qu'une attaque est un trafic normal bad_prediction = cm[1, 0] + cm[0, 1]; taux_succes = good_prediction * 100 / (good_prediction + bad_prediction); +########################################################################################## + +########################################################################################## +#SAUVEGARDE DU TRAINING SET +########################################################################################## +#Le modèle est mis au format JSON +classifier_json = classifier.to_json(); +with open('C:/Users/Utilisateur/PFE/python/Training/training.json',"w") as json_file : + json_file.write(classifier_json); +#Les poids sont mis en HDF5 +classifier.save_weights("C:/Users/Utilisateur/PFE/python/datasets/training.h5"); ########################################################################################## \ No newline at end of file diff --git a/python/main.py b/python/main.py index ba55e83..268ae77 100644 --- a/python/main.py +++ b/python/main.py @@ -10,8 +10,41 @@ Main - prédictions, affichage, vérification du trafic ############################################################################### import tkinter as tkr; import time; +from keras.models import model_from_json +from keras.models import Sequential +import numpy as np ############################################################################### +########################################################################################## +#LOAD DU TRAINING SET +########################################################################################## +json_file=open('C:/Users/Utilisateur/PFE/python/Training/training.json','r'); +loaded_model_json=json_file.read(); +json_file.close(); +loaded_model=model_from_json(loaded_model_json); +loaded_model.load_weights('C:/Users/Utilisateur/PFE/python/Training/training.h5'); +########################################################################################## + +########################################################################################## +#REALISER DES PREDICTIONS +########################################################################################## +#PING en ms +ping_mesured = 1000; +#Delta _RSSI entre deux trames en dB (dBm - dBm -> dB) +rssi_mesured = 8; +classifier = Sequential(); +dataset_to_pred = [ping_mesured, rssi_mesured]; +predictions = classifier.predict(dataset_to_pred); + +predictions_named = []; + +for x in range(0, 1): + if predictions[x] > 0.5: + predictions_named.append("Normal") + else: + predictions_named.append("Attaque") +########################################################################################## + ############################################################################### #FONCTIONS UTILES ############################################################################### @@ -54,6 +87,9 @@ def Refresher(): text.configure(text=time.asctime()); root.after(1000, Refresher);#Refresh toutes les secondes +############################################################################### +#AFFICHAGE +############################################################################### root=tkr.Tk(); Draw(); Refresher(); -- libgit2 0.21.2