[PYTHON] [Introduction à TensorBoard] Visualisez le traitement TensorFlow pour approfondir la compréhension

Accélérez votre compréhension de TensorFlow avec TensorBoard

Si vous êtes diplômé en arts libéraux et que vous êtes nouveau dans Python, sans parler du Deep Learning, il est difficile de comprendre TensorFlow. J'ai également appris TensorBoard ** pour accélérer ma compréhension. Il peut être utilisé non seulement pour promouvoir la compréhension de l'apprentissage profond compliqué, mais également à diverses fins telles que le débogage, l'optimisation du traitement et la refonte. Il existe diverses visualisations, mais ** cet article se concentre sur la méthode de sortie Graph pour les débutants ** (j'aimerais pouvoir l'élargir et l'approfondir, mais ma compréhension n'a pas rattrapé ce point. Hmm: transpirer :). Le Guide officiel "Tensor Board: Visualizing Learning" était déroutant, donc je l'ai beaucoup simplifié. Le site de Visualiser le traitement avec TensorBoard était merveilleux et je l'ai utilisé comme référence. Environnement: confirmé avec python3.5 tensorflow1.1 et tensorflow1.21

Lien de référence

Logique simple pour TensorBoard (graphique)

Visualiser 1 + 2 expressions dans le graphique

Calculez la constante 1 + 2 comme ceci et visualisez-la. Pour être honnête, c'est très simple.

import tensorflow as tf
sess = tf.InteractiveSession()

#Répertoire de sortie des informations TensorBoard
log_dir = '/tmp/tensorflow/mnist/logs/simple01'

#Supprimez le répertoire spécifié s'il existe et recréez-le
if tf.gfile.Exists(log_dir):
    tf.gfile.DeleteRecursively(log_dir)
tf.gfile.MakeDirs(log_dir)

#1 avec une constante+ 2
x = tf.constant(1, name='x')
y = tf.constant(2, name='y')
z = x + y

#Sortie z sur le graphe avec cette commande
_ = tf.summary.scalar('z', z)

#Dessinez un graphique avec Summary Writer(Les commandes suivantes ne seront pas affichées sur le graphique)
summary_writer = tf.summary.FileWriter(log_dir , sess.graph)

#Courir
print(sess.run(z))

#RésuméWriter fermé
summary_writer.close()

Puis lancez Tensorboard. Puisque mon environnement est construit avec Anaconda, je démarre d'abord Terminal à partir d'Anaconda Navigator. 30.TensorFlow_Install01.JPG

Ensuite, démarrez Tensorbaord depuis Terminal en spécifiant le répertoire (le répertoire est stocké dans la variable de programme Python log_dir).

tensorboard --logdir=/tmp/tensorflow/mnist/logs/simple01

Après le lancement, ouvrez http: // localhost: 6006 / dans votre navigateur pour afficher l'écran TensorBoard.

TensorBoardBasic00.JPG

Je me fâche avec "Aucune donnée scalaire n'a été trouvée", mais cette fois, il n'y a pas de problème car le scalaire n'est pas sorti et seule la sortie graphique est utilisée. En sélectionnant "Graphiques" dans le menu à l'écran, le graphique ci-dessous sera sorti. J'ai pu voir la formule 1 + 2 ici.

TensorBoardBasic01.JPG

Regroupement à l'aide de tf.name_scope

Le regroupement peut être effectué en ajoutant tf.name_scope au code source précédent.

import tensorflow as tf
sess = tf.InteractiveSession()

#Répertoire de sortie des informations TensorBoard
log_dir = '/tmp/tensorflow/mnist/logs/simple02'

#Supprimez le répertoire spécifié s'il existe et recréez-le
if tf.gfile.Exists(log_dir):
    tf.gfile.DeleteRecursively(log_dir)
tf.gfile.MakeDirs(log_dir)

# add_Regroupement par nom de périmètre
with tf.name_scope('add_scope'):
    
    #1 avec une constante+ 2
    x = tf.constant(1, name='x')
    y = tf.constant(2, name='y')
    z = x + y
    
    #Sortie z sur le graphe avec cette commande
    _ = tf.summary.scalar('z', z)


#Dessinez un graphique avec Summary Writer(Les commandes suivantes ne seront pas affichées sur le graphique)
summary_writer = tf.summary.FileWriter(log_dir , sess.graph)

#Courir
print(sess.run(z))

#RésuméWriter fermé
summary_writer.close()

résultat Le groupement (frame) est créé avec le nom add_scope. Lorsque le calcul est compliqué, il est trop difficile de voir s'il ne peut pas être groupé.

TensorBoardBasic02.JPG

Hiérarchie des expressions

Ajoutez tf.name_scope au code source précédent de manière imbriquée pour créer une hiérarchie de plusieurs expressions.

import tensorflow as tf
sess = tf.InteractiveSession()

#Répertoire de sortie des informations TensorBoard
log_dir = '/tmp/tensorflow/mnist/logs/simple02'

#Supprimez le répertoire spécifié s'il existe et recréez-le
if tf.gfile.Exists(log_dir):
    tf.gfile.DeleteRecursively(log_dir)
tf.gfile.MakeDirs(log_dir)

#add_Regroupement par nom de périmètre
with tf.name_scope('add_scope'):

    #1 avec une constante+ 2
    x = tf.constant(1, name='x')
    y = tf.constant(2, name='y')
    z = x + y
    
    #Sortie z sur le graphe avec cette commande
    _ = tf.summary.scalar('z', z)
    
    #Multipliez le résultat ci-dessus
    with tf.name_scope('multiply_scope'):
        zz = y * z

#Dessinez un graphique avec Summary Writer(Les commandes suivantes ne seront pas affichées sur le graphique)
summary_writer = tf.summary.FileWriter(log_dir , sess.graph)

#Courir
print(sess.run(z))

#RésuméWriter fermé
summary_writer.close()

résultat C'était superposé et soigné.

TensorBoardBasic03.JPG

référence À propos, si vous les mettez dans la même ligne au lieu de les superposer, ils seront affichés sous cette forme.

TensorBoardBasic04.JPG

Recommended Posts

[Introduction à TensorBoard] Visualisez le traitement TensorFlow pour approfondir la compréhension
[Introduction à TensorBoard: image] TensorFlow Visualisez le traitement d'image pour approfondir la compréhension
opencv-python Introduction au traitement d'image
Introduction à Private TensorFlow
[Explication pour les débutants] Introduction au traitement du pliage (expliqué dans TensorFlow)
[Explication pour les débutants] Introduction au traitement du pool (expliqué dans TensorFlow)
Introduction à TensorFlow - Hello World Edition
J'ai essayé de visualiser AutoEncoder avec TensorFlow
Probablement l'introduction la plus simple à TensorFlow
Les débutants lisent "Introduction à TensorFlow 2.0 pour les experts"
Essayez de visualiser vos tweets tout en comprenant BERT Hands-on
Introduction à MQTT (Introduction)
Introduction à Scrapy (1)
Introduction à Scrapy (3)
Premiers pas avec Supervisor
Introduction à Tkinter 1: Introduction
Introduction à PyQt
Introduction à Scrapy (2)
[Linux] Introduction à Linux
Introduction à Scrapy (4)
Introduction à discord.py (2)
Comprendre TensorFlow avec l'arithmétique
[Introduction à Python] Comment utiliser l'instruction while (traitement répétitif)
Introduction au traitement parallèle distribué Python par Ray
[Chapitre 6] Introduction à scicit-learn avec 100 coups de traitement du langage
[Chapitre 3] Introduction à Python avec 100 coups de traitement du langage
Exécution de MINST dans TensorFlow 2.0 et visualisation dans TensorBoard (version 2019)
[Chapitre 2] Introduction à Python avec 100 coups de traitement du langage
[Introduction à RasPi4] Construction de l'environnement; OpenCV / Tensorflow, entrée japonaise ♪
[Chapitre 4] Introduction à Python avec 100 coups de traitement du langage