-
Notifications
You must be signed in to change notification settings - Fork 7
/
graphicsMaker.py
70 lines (59 loc) · 2.25 KB
/
graphicsMaker.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
67
68
69
70
# 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, sep=',')
print(data)
# split into input (X) and output (Y) variables
plot(data['epoch'], data['dice_coef'], data['val_dice_coef'], 'Accuracy metrics', 'Epoch', 'Accuracy', 'upper left',pathSaveGraph)
#plot(data['epoch'], data['binary_accuracy'], 'Accuracy metrics', 'Epoch', 'Accuracy', 'upper left',pathSaveGraph)
plot(data['epoch'], data['loss'], data['val_loss'], 'Loss metrics', 'Epoch', 'Loss', 'upper left',pathSaveGraph)
#plot(data['epoch'], data['loss'], 'Loss metrics', 'Epoch', 'Loss', 'upper left',pathSaveGraph)
def plot(X, Y, Y2, title, xLabel, yLabel, legendLoc, pathSaveGraph):
#def plot(X, Y, 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 = 'result/log/metric/metrics.csv'
pathSaveGraph = 'result/log/graph'
displayGraph(pathLogs,pathSaveGraph)
if __name__ == "__main__":
"""
# MAIN
"""
main()