Tutoriel TensorBoard : Visualisation de graphiques TensorFlow [Exemple]
Qu'est-ce que TensorBoard ?
Tableau Tenseur est l'interface utilisรฉe pour visualiser le graphique et d'autres outils pour comprendre, dรฉboguer et optimiser le modรจle. Il s'agit d'un outil qui fournit des mesures et des visualisations pour le flux de travail d'apprentissage automatique. Il permet de suivre des mesures telles que la perte et la prรฉcision, la visualisation du graphique du modรจle, l'intรฉgration du projet dans des espaces de dimension infรฉrieure, etc.
Visualisation de graphique TensorFlow ร l'aide de l'exemple Tensorboard
L'image ci-dessous provient du graphique TensorBoard que vous gรฉnรฉrerez dans ce didacticiel TensorBoard. C'est le panneau principal :

Dans l'image ci-dessous, vous pouvez voir le panneau de visualisation graphique TensorBoard. Le panneau contient diffรฉrents onglets, liรฉs au niveau d'informations que vous ajoutez lorsque vous exรฉcutez le modรจle.
- Scalaires: Afficher diffรฉrentes informations utiles lors de la formation du modรจle
- Graphiques: Afficher le modรจle
- Histogramme: Afficher les poids avec un histogramme
- Distribution: Afficher la rรฉpartition du poids
- Projecteur: Afficher l'analyse en composantes principales et l'algorithme T-SNE. La technique utilisรฉe pour la rรฉduction de dimensionnalitรฉ
Au cours de ce didacticiel TensorBoard, vous entraรฎnerez un modรจle simple d'apprentissage en profondeur. Vous apprendrez comment cela fonctionne dans un prochain tutoriel.
Si vous regardez le graphique, vous pouvez comprendre comment fonctionne le modรจle.
- Mettez les donnรฉes en file d'attente dans le modรจle : envoyez une quantitรฉ de donnรฉes รฉgale ร la taille du lot vers le modรจle, c'est-ร -dire le nombre de flux de donnรฉes aprรจs chaque itรฉration.
- Alimenter les donnรฉes vers les Tensors
- Former le modรจle
- Afficher le nombre de lots pendant la formation. Enregistrez le modรจle sur le disque.
L'idรฉe de base derriรจre Tensorboard est que le rรฉseau neuronal peut รชtre ce qu'on appelle une boรฎte noire et que nous avons besoin d'un outil pour inspecter ce qu'il y a ร l'intรฉrieur de cette boรฎte. Vous pouvez imaginer le Tensorboard comme une lampe de poche pour commencer ร plonger dans le rรฉseau neuronal.
Il aide ร comprendre les dรฉpendances entre les opรฉrations, la faรงon dont les poids sont calculรฉs, affiche la fonction de perte et bien d'autres informations utiles. Lorsque vous rassemblez toutes ces informations, vous disposez dโun excellent outil pour dรฉboguer et trouver comment amรฉliorer le modรจle.
Pour vous donner une idรฉe de l'utilitรฉ du graphique TensorBoard, regardez l'image ci-dessous :

Un rรฉseau de neurones dรฉcide comment connecter les diffรฉrents ยซ neurones ยป et combien de couches avant que le modรจle puisse prรฉdire un rรฉsultat. Une fois que vous avez dรฉfini l'architecture, vous devez non seulement entraรฎner le modรจle mais รฉgalement des mรฉtriques pour calculer la prรฉcision de la prรฉdiction. Cette mรฉtrique est appelรฉe un fonction de perte. Lโobjectif est de minimiser la fonction de perte. En dโautres termes, cela signifie que le modรจle fait moins dโerreurs. Tous les algorithmes dโapprentissage automatique rรฉpรฉteront les calculs plusieurs fois jusquโร ce que la perte atteigne une ligne plus plate. Pour minimiser cette fonction de perte, vous devez dรฉfinir une taux d'apprentissage. C'est la vitesse ร laquelle vous souhaitez que le modรจle apprenne. Si vous fixez un taux dโapprentissage trop รฉlevรฉ, le modรจle nโaura pas le temps dโapprendre quoi que ce soit. C'est le cas sur l'image de gauche. La ligne monte et descend, ce qui signifie que le modรจle prรฉdit le rรฉsultat avec une simple supposition. L'image de droite montre que la perte diminue au fil des itรฉrations jusqu'ร ce que la courbe s'aplatisse, ce qui signifie que le modรจle a trouvรฉ une solution.
TensorBoard est un excellent outil pour visualiser ces mรฉtriques et mettre en รฉvidence les problรจmes potentiels. Le rรฉseau neuronal peut prendre des heures, voire des semaines, avant de trouver une solution. TensorBoard met ร jour les mรฉtriques trรจs souvent. Dans ce cas, vous n'avez pas besoin d'attendre la fin pour voir si le modรจle s'entraรฎne correctement. Vous pouvez ouvrir TensorBoard pour vรฉrifier le dรฉroulement de la formation et apporter les modifications appropriรฉes si nรฉcessaire.
Comment utiliser TensorBoard ?
Dans ce tutoriel, vous apprendrez ร ouvrir TensorBoard depuis le terminal pour MacOS et la ligne de commande TensorBoard pour Windows.
Le code sera expliquรฉ dans un prochain tutoriel, l'accent est ici mis sur TensorBoard.
Tout d'abord, vous devez importer les bibliothรจques que vous utiliserez pendant la formation
## Import the library import tensorflow as tf import numpy as np
Vous crรฉez les donnรฉes. C'est un tableau de 10000 5 lignes et colonnes
X_train = (np.random.sample((10000,5))) y_train = (np.random.sample((10000,1))) X_train.shape
Sortie
(10000, 5)
Les codes ci-dessous transforment les donnรฉes et crรฉent le modรจle.
A noter que le taux d'apprentissage est รฉgal ร 0.1. Si vous modifiez ce taux pour une valeur plus รฉlevรฉe, le modรจle ne trouvera pas de solution. C'est ce qui s'est passรฉ sur le cรดtรฉ gauche de l'image ci-dessus.
Pendant la majeure partie de la Tutoriels TensorFlow, vous utiliserez l'estimateur TensorFlow. Il s'agit de l'API TensorFlow qui contient tous les calculs mathรฉmatiques.
Pour crรฉer les fichiers journaux, vous devez spรฉcifier le chemin. Cela se fait avec l'argument model_dir.
Dans l'exemple TensorBoard ci-dessous, vous stockez le modรจle dans le rรฉpertoire de travail, c'est-ร -dire lร oรน vous stockez le notebook ou le fichier python. ร l'intรฉrieur de ce chemin, TensorFlow crรฉera un dossier appelรฉ train avec un nom de dossier enfant linreg.
feature_columns = [
tf.feature_column.numeric_column('x', shape=X_train.shape[1:])]
DNN_reg = tf.estimator.DNNRegressor(feature_columns=feature_columns,
# Indicate where to store the log file
model_dir='train/linreg',
hidden_units=[500, 300],
optimizer=tf.train.ProximalAdagradOptimizer(
learning_rate=0.1,
l1_regularization_strength=0.001
)
)
Sortie
INFO:tensorflow:Using default config.
INFO:tensorflow:Using config: {'_model_dir': 'train/linreg', '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_save_checkpoints_secs': 600, '_session_config': None, '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_train_distribute': None, '_service': None, '_cluster_spec': <tensorflow.python.training.server_lib.ClusterSpec object at 0x1818e63828>, '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': '', '_evaluation_master': '', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1}
La derniรจre รฉtape de cet exemple de graphique de visualisation TensorFlow consiste ร entraรฎner le modรจle. Pendant la formation, TensorFlow รฉcrit des informations dans le rรฉpertoire du modรจle.
# Train the estimator
train_input = tf.estimator.inputs.numpy_input_fn(
x={"x": X_train},
y=y_train, shuffle=False,num_epochs=None)
DNN_reg.train(train_input,steps=3000)
Sortie
INFO:tensorflow:Calling model_fn. INFO:tensorflow:Done calling model_fn. INFO:tensorflow:Create CheckpointSaverHook. INFO:tensorflow:Graph was finalized. INFO:tensorflow:Running local_init_op. INFO:tensorflow:Done running local_init_op. INFO:tensorflow:Saving checkpoints for 1 into train/linreg/model.ckpt. INFO:tensorflow:loss = 40.060104, step = 1 INFO:tensorflow:global_step/sec: 197.061 INFO:tensorflow:loss = 10.62989, step = 101 (0.508 sec) INFO:tensorflow:global_step/sec: 172.487 INFO:tensorflow:loss = 11.255318, step = 201 (0.584 sec) INFO:tensorflow:global_step/sec: 193.295 INFO:tensorflow:loss = 10.604872, step = 301 (0.513 sec) INFO:tensorflow:global_step/sec: 175.378 INFO:tensorflow:loss = 10.090343, step = 401 (0.572 sec) INFO:tensorflow:global_step/sec: 209.737 INFO:tensorflow:loss = 10.057928, step = 501 (0.476 sec) INFO:tensorflow:global_step/sec: 171.646 INFO:tensorflow:loss = 10.460144, step = 601 (0.583 sec) INFO:tensorflow:global_step/sec: 192.269 INFO:tensorflow:loss = 10.529617, step = 701 (0.519 sec) INFO:tensorflow:global_step/sec: 198.264 INFO:tensorflow:loss = 9.100082, step = 801 (0.504 sec) INFO:tensorflow:global_step/sec: 226.842 INFO:tensorflow:loss = 10.485607, step = 901 (0.441 sec) INFO:tensorflow:global_step/sec: 152.929 INFO:tensorflow:loss = 10.052481, step = 1001 (0.655 sec) INFO:tensorflow:global_step/sec: 166.745 INFO:tensorflow:loss = 11.320213, step = 1101 (0.600 sec) INFO:tensorflow:global_step/sec: 161.854 INFO:tensorflow:loss = 9.603306, step = 1201 (0.619 sec) INFO:tensorflow:global_step/sec: 179.074 INFO:tensorflow:loss = 11.110269, step = 1301 (0.556 sec) INFO:tensorflow:global_step/sec: 202.776 INFO:tensorflow:loss = 11.929443, step = 1401 (0.494 sec) INFO:tensorflow:global_step/sec: 144.161 INFO:tensorflow:loss = 11.951693, step = 1501 (0.694 sec) INFO:tensorflow:global_step/sec: 154.144 INFO:tensorflow:loss = 8.620987, step = 1601 (0.649 sec) INFO:tensorflow:global_step/sec: 151.094 INFO:tensorflow:loss = 10.666125, step = 1701 (0.663 sec) INFO:tensorflow:global_step/sec: 193.644 INFO:tensorflow:loss = 11.0349865, step = 1801 (0.516 sec) INFO:tensorflow:global_step/sec: 189.707 INFO:tensorflow:loss = 9.860596, step = 1901 (0.526 sec) INFO:tensorflow:global_step/sec: 176.423 INFO:tensorflow:loss = 10.695, step = 2001 (0.567 sec) INFO:tensorflow:global_step/sec: 213.066 INFO:tensorflow:loss = 10.426752, step = 2101 (0.471 sec) INFO:tensorflow:global_step/sec: 220.975 INFO:tensorflow:loss = 10.594796, step = 2201 (0.452 sec) INFO:tensorflow:global_step/sec: 219.289 INFO:tensorflow:loss = 10.4212265, step = 2301 (0.456 sec) INFO:tensorflow:global_step/sec: 215.123 INFO:tensorflow:loss = 9.668612, step = 2401 (0.465 sec) INFO:tensorflow:global_step/sec: 175.65 INFO:tensorflow:loss = 10.009649, step = 2501 (0.569 sec) INFO:tensorflow:global_step/sec: 206.962 INFO:tensorflow:loss = 10.477722, step = 2601 (0.483 sec) INFO:tensorflow:global_step/sec: 229.627 INFO:tensorflow:loss = 9.877638, step = 2701 (0.435 sec) INFO:tensorflow:global_step/sec: 195.792 INFO:tensorflow:loss = 10.274586, step = 2801 (0.512 sec) INFO:tensorflow:global_step/sec: 176.803 INFO:tensorflow:loss = 10.061047, step = 2901 (0.566 sec) INFO:tensorflow:Saving checkpoints for 3000 into train/linreg/model.ckpt. INFO:tensorflow:Loss for final step: 10.73032. <tensorflow.python.estimator.canned.dnn.DNNRegressor at 0x1818e63630>
Pour les utilisateurs de MacOS
Pour Windows utilisateur
Vous pouvez voir ces informations dans lePyTorch TensorBoard.
Maintenant que les รฉvรฉnements du journal sont รฉcrits, vous pouvez ouvrir Tensorboard. Tensorboard Keras fonctionne sur le port 6006 (Jupyter fonctionne sur le port 8888). Vous pouvez utiliser le Terminal pour les utilisateurs MacOs ou l'invite Anaconda pour Windows utilisateur.
Pour les utilisateurs de MacOS
# Different for you cd /Users/Guru99/tuto_TF source activate hello-tf!
Le notebook est stockรฉ dans le chemin /Users/Guru99/tuto_TF
Pour Windows des opportunitรฉs
cd C:\Users\Admin\Anaconda3 activate hello-tf
Le notebook est stockรฉ dans le chemin C:\Users\Admin\Anaconda3
Pour lancer Tensorboard, vous pouvez utiliser ce code
Pour les utilisateurs de MacOS
tensorboard --logdir=./train/linreg
Pour Windows des opportunitรฉs
tensorboard --logdir=.\train\linreg
Tensorboard se trouve ร cette URL : http://localhost:6006
Il pourrait รฉgalement รชtre situรฉ ร l'endroit suivant.
Copiez et collez l'URL dans votre navigateur prรฉfรฉrรฉ. Vous devriez voir ceci :
A noter que, nous apprendrons ร lire le graphique dans le tutoriel dรฉdiรฉ au l'apprentissage en profondeur.
Si vous voyez quelque chose comme รงa :
Cela signifie que Tensorboard ne trouve pas le fichier journal. Assurez-vous de pointer le CD vers le bon chemin ou vรฉrifiez si l'รฉvรฉnement de journal a รฉtรฉ crรฉรฉ. Sinon, rรฉexรฉcutez le code.
Si vous souhaitez fermer TensorBoard, appuyez sur CTRL+C.
Astuce : vรฉrifiez votre invite anaconda pour le rรฉpertoire de travail actuel,
Le fichier journal doit รชtre crรฉรฉ dans C:\Users\Admin
Rรฉsumรฉ
TensorBoard est un excellent outil pour visualiser votre modรจle. De plus, de nombreuses mesures sont affichรฉes pendant l'entraรฎnement, comme la perte, la prรฉcision ou les poids.
Pour activer Tensorboard, vous devez dรฉfinir le chemin de votre fichier :
cd /Users/Guru99/tuto_TF
Activer l'environnement de Tensorflow
activate hello-tf
Lancer le Tensorboard
tensorboard --logdir=.+ PATH







