Présentation de TensorBoard

TensorBoard est un cadre de visualisation de tensorflow pour comprendre et inspecter le flux d'algorithmes d'apprentissage automatique.

L'évaluation du modèle d'apprentissage automatique peut être effectuée par de nombreuses métriques telles que la perte, la précision, le graphique du modèle et bien d'autres. Les performances de l'algorithme d'apprentissage automatique dépendent de la sélection du modèle et des hyperparamètres alimentés dans l'algorithme. Les expériences sont effectuées en modifiant les valeurs de ces paramètres.

Les modèles d'apprentissage profond sont comme une boîte noire, il est difficile de trouver le traitement qui s'y déroule. Il est important d'obtenir des informations pour construire le modèle. Avec l'aide de la visualisation, vous pouvez savoir quels paramètres modifier selon quelle quantité pour obtenir l'amélioration des performances du modèle. TensorBoard est donc un outil important pour visualiser chaque époque pendant la phase de formation du modèle.

Installation

Pour installer le tensorboard à l'aide de pip, exécutez la commande suivante:

pip install tensorboard

Alternativement, il peut être installé à l'aide de la commande conda,

Conda install tensorboard

Usage

Utilisation du tensorboard avec le modèle Keras:

Keras est une bibliothèque open source pour les modèles d'apprentissage en profondeur. Il s'agit d'une bibliothèque de haut niveau qui peut être exécutée sur le dessus de tensorflow, theano, etc.

Pour installer le tensorflow et la bibliothèque Keras à l'aide de pip:

pip install tensorflow pip install Keras

Prenons un exemple simple de classification à l'aide de l'ensemble de données MNIST. MNIST est un ensemble de données numériques anglais qui contient des images de nombres de 0 à 9. Il est disponible avec la bibliothèque Keras.

  • Importez le tensorflow de la bibliothèque car nous utiliserons Keras avec le backend tensorflow.

import tensorflow as tf

  • Tout d'abord, chargez l'ensemble de données MNIST de Keras dans l'ensemble de données d'apprentissage et de test.

mnist = tf.keras.datasets.mnist

  • Le modèle séquentiel est créé en utilisant,

tf.keras.models.Sequential

  • Pour entraîner le modèle Model.fit () est utilisé. Les journaux peuvent être créés et stockés en utilisant,

tf.keras.callback.TensorBoard

  • Pour activer le calcul de l'histogramme,

histogram_freq=1.

C'est désactivé par défaut.

Le code pour la classification discutée ci-dessus de l'ensemble de données MNIST est le suivant:

# Simple NN to classify handwritten digits from MNIST dataset
import tensorflow as tf
import datetime
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0
def create_model(): return tf.keras.models.Sequential(( tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(512, activation='relu'), tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
))
model = create_model() model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=('accuracy'))
log_dir="logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)
model.fit(x=x_train, y=y_train, epochs=5, validation_data=(x_test, y_test),
callbacks=(tensorboard_callback))

Pour démarrer le tensorboard sur le serveur local, accédez à l'emplacement du répertoire où tensorflow est installé, puis exécutez la commande suivante:

tensorboard --logdir=/path/to/logs/files

  • Scalaires

Les scalaires montrent le changement à chaque époque. La figure ci-dessus montre le graphique de précision et de perte après chaque époque. Epoch_acc et epoch_loss sont la précision de l'entraînement et la perte d'entraînement. Alors que epoch_val_acc et epoch_val_loss sont la précision et la perte des données de validation.

Les lignes orange plus claires indiquent la précision ou la perte exacte et la plus foncée représente les valeurs lissées. Le lissage permet de visualiser la tendance globale des données.

  • Graphiques

La page Graphique vous aide à visualiser le graphique de votre modèle. Cela vous aide à vérifier si le modèle est correctement construit ou non.

Pour visualiser le graphique, nous devons créer une session puis l'objet TensorFLow FileWriter. Pour créer l'objet écrivain, nous devons passer le chemin où le résumé est stocké et sess.graph comme argument.

writer = tf.summary.FileWriter(STORE_PATH, sess.graph)

tf.placeholder () et tf.Variable () sont utilisés pour les espaces réservés et les variables dans le code tensorflow.

Cela montre la visualisation graphique du modèle que nous avons construit. Tous les rectangles arrondis sont des espaces de noms. Et les ovales montrent les opérations mathématiques.

Les constantes sont représentées par de petits cercles. Pour réduire l'encombrement dans le graphique, tensorboard fait quelques simplifications en utilisant des ovales en pointillés ou des rectangles arrondis avec des lignes en pointillés. Ce sont les nœuds qui sont liés à de nombreux autres nœuds ou à tous les nœuds. Ils sont donc conservés en pointillés dans le graphique et leurs détails peuvent être vus dans le coin supérieur droit. Dans le coin supérieur droit, un lien vers les dégradés, les descentes de gradient ou les nœuds init est fourni.

Pour connaître le nombre de tenseurs entrant et sortant de chaque nœud, vous pouvez voir les arêtes dans le graphique. Les bords du graphique décrivent le nombre de tenseurs circulant dans le graphique. Cela permet d'identifier les dimensions d'entrée et de sortie de chaque nœud. Cela aide à déboguer tout problème.

  • Distributions et histogrammes

Cela montre les distributions du tenseur avec le temps, nous pouvons également voir les poids et les biais. Cela montre la progression des entrées et des sorties au fil du temps pour chaque époque. Il existe deux options d'affichage:

Décalage et superposition.

La vue Offset des histogrammes sera la suivante:

La vue Superposition de l'histogramme est:

La page Distribution affiche les distributions statistiques. Le graphique montre la moyenne et les écarts-types.

Avantages

  • Le TensorBoard aide à visualiser l'apprentissage en écrivant des résumés du modèle comme des scalaires, des histogrammes ou des images. Ceci, à son tour, aide à améliorer la précision du modèle et à le déboguer facilement.
  • Le traitement en profondeur est une chose de boîte noire et le tensorboard aide à comprendre le traitement qui a lieu dans la boîte noire à l'aide de graphiques et d'histogrammes.

Conclusion - TensorBoard

TensorBoards fournit une visualisation du modèle de gains profonds qui est formé et aide à les comprendre. Il peut être utilisé avec TensorFlow et Keras tous les deux. Il fournit principalement la visualisation du comportement des scalaires, des métriques à l'aide d'histogrammes et d'un graphique de modèle dans son ensemble.

Articles recommandés

Ceci est un guide de TensorBoard. Nous discutons ici de l'installation et de l'utilisation de Tensboard en l'utilisant avec le modèle Keras avec des avantages. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Introduction à Tensorflow
  2. Comment installer TensorFlow
  3. Qu'est-ce que TensorFlow?
  4. Aire de jeux TensorFlow
  5. Notions de base de Tensorflow

Catégorie: