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 :

Visualisation du graphique TensorFlow
Visualisation du graphique TensorFlow

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.

Graphiques TensorBoard

Graphiques TensorBoard
  • 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.

  1. 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.
  2. Alimenter les donnรฉes vers les Tensors
  3. Former le modรจle
  4. Afficher le nombre de lots pendant la formation. Enregistrez le modรจle sur le disque.

Visualisation de graphique TensorFlow ร  l'aide de l'exemple Tensorboard

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 :

Graphiques TensorBoard
Graphique TensorBoard

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

Tutoriel TensorBoard pour les utilisateurs de MacOS

Pour Windows utilisateur

Tutoriel TensorBoard pour Windows L'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.

Utiliser TensorBoard

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.

Utiliser TensorBoard

Si vous voyez quelque chose comme รงa :

Utiliser TensorBoard

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,

Utiliser TensorBoard

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

Rรฉsumez cet article avec :