TensorBoard
Nous allons tester cet outil permettant de monitorer en live l’évolution d’un apprentissage.
Installation
Rappel, cet outil s’installe comme un package Python standard. Pour ceux qui ont effectué l’installation sur le bureau, il suffit d’écrire :
C:\Users\...\Desktop\Pytorch314\python.exe -m pip install tensorboard
Prise en main
Lancement
Ouvrez une fenêtre de commande (cmd)
Si tensorboard.exe n’est pas dans votre PATH, vous devez déterminer son chemin d’accès. Normalement, il se trouve dans le répertoire Scripts de votre installation.
Ajoutez en paramètre le répertoire de script
Astuce
C:\Users\Lilian\Desktop\Pytorch314\Scripts\tensorboard.exe --logdir C:\Log\test1
Ainsi, TensorBoard démarre un serveur web local :
Ouvrez votre navigateur préféré et allez à l’adresse :
Astuce
localhost:6006
Code test
Afin de tester Tensorboard, nous utilisons un entrainement sur MNIST (pour la facilité de calcul) avec un faible learning rate pour avoir une centaine d’epochs à afficher. Vous pouvez télécharger le code test ci-dessous :
Exécutez le programme si vous voulez tester.
Logique
On crée un objet logger pour sauver les informations sur le disque. A chaque fin d’epoch, on enregistre les informations utiles comme les train/val d’accuracy et de loss. A la fin du run, on clôt les fichiers avec un close().
from torch.utils.tensorboard import SummaryWriter
def train(S):
loger = SummaryWriter(S.log_folder)
for epoch in range(S.epochs):
...
print(...)
loger.add_scalars("Loss", {"train": train_GlobLoss, "valid": valid_GlobLoss}, epoch+1)
loger.add_scalars("Accuracy", {"train": train_accuracy, "valid": valid_accuracy}, epoch+1)
loger.close()
Le chemin Losstrain, se lit : ajoute un point au tracé nommé train dans le graphique nommé Loss. Ainsi, ce code construit 2 graphiques :
Un graphiqué nommé Loss : la courbe de Loss du train et la courbe de Loss de la validation
Un graphique nommé Acc : la courbe d’accuracy du train et la courbe d’accuracy de la validation
Toutes les informations concernant ces tracés sont stockés dans le répertoire log_folder.
Configuration
Dans Tensorboard, il y a quelques options à activer pour améliorer l’interface :
Les graphiques construisent pour chaque tracé une deuxième version lissée. Pour alléger les vues, désactivez la version lissée en faisant : rubrique SCALARS sur la droite, mettre le smoothing à 0.
Pour rafraîchir les graphiques vous pouvez appuyer sur le bouton
.Pour activer le raffraîchissement automatique des graphiques, cliquez sur la roue dentée et choisissez Reload data :
Pour éviter qu’une partie des courbes soit tronquée, désactivez l’option Ignore outliers :
Prise en main
Sur le bandeau de gauche, vous pouvez activer/désactiver les courbes affichées
Au niveau des graphiques, cliquez sur l’icone
pour l’élargir horizontalement
Résultat
Si tout est configuré correctement, vous devriez obtenir le tracé dynamique ci-dessous (accéléré ici en x40)
En positionnant votre curseur sur un point de la courbe, vous obtenez une lecture précise des valeurs :
