-
Notifications
You must be signed in to change notification settings - Fork 5
/
generateMetrics.py
66 lines (55 loc) · 1.93 KB
/
generateMetrics.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# IMPORT
import matplotlib.pyplot as plt
import pandas as pd
"""
# Classe permettant de génerer 4 graphiques de suivit de métriques durant l'entrainement d'un modèle
# Train accuracy, Train loss, Validation accuracy, Validation loss
"""
def displayGraph(pathLog,pathSaveGraph):
"""
# Fonction permettant de creer nos graph de suivi de metriques
:param pathLog: chemin du CSV contenant nos metrics
:param pathSaveGraph: chemin de destination pour sauvegarder nos 4 graphiques en jpg
"""
data = pd.read_csv(pathLog)
# split into input (X) and output (Y) variables
plot(data['epoch'], data['acc'], data['val_acc'], 'TRAIN_VAL_Accuracy', 'Epoch', 'Accuracy', 'upper left',pathSaveGraph)
plot(data['epoch'], data['loss'], data['val_loss'], 'TRAIN_VAL_Loss', 'Epoch', 'Loss', 'upper left',pathSaveGraph)
def plot(X, Y, Y2, title, xLabel, yLabel, legendLoc, pathSaveGraph):
"""
# Fonction d'affichage de graph
:param X: correspond au nombre d'époch
:param Y: correspond a la courbe accuracy
:param Y2: correspond a la courbe loss
:param title: titre du graphique
:param xLabel: label des abcisses
:param yLabel: label des ordonnees
:param legendLoc: legende
:param pathSaveGraph: chemin de sauvegarde pour les graphiques
"""
#On trace nos differentes courbes
plt.plot(Y)
plt.plot(Y2)
#titre du graph, legende...
plt.title(title)
plt.xlabel(xLabel)
plt.ylabel(yLabel)
plt.legend(['train', 'val'], loc=legendLoc)
#Pour avoir un courbe propre qui demarre à 0
plt.xlim(xmin=0.0, xmax=max(X))
plt.savefig(pathSaveGraph +'\\' + title)
plt.figure()
#plt.show()
def main():
"""
# Fonction main
"""
#Definition des chemins d'acces a notre fichier log
pathLogs = '.\\logs\\log_moModel.csv'
pathSaveGraph = '.\\graph'
displayGraph(pathLogs,pathSaveGraph)
if __name__ == "__main__":
"""
# MAIN
"""
main()