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
- Installer TensorFlow sur Windows Easy pour les débutants Python
- [Explication pour les débutants] Syntaxe et concept de base de TensorFlow
- [Explication pour les débutants] Tutoriel TensorFlow MNIST (pour les débutants)
- [TensorFlow Tutorial MNIST (pour les débutants) visualisé avec TensorBoard] (http://qiita.com/FukuharaYohei/items/2834cc054a8b8884e150)
- [Introduction à TensorBoard: image] TensorFlow Visualisez le traitement d'image pour approfondir la compréhension
- [Introduction à TensorBoard: Projecteur] Rendre le traitement TensorFlow cool
- [Explication pour les débutants] Tutoriel TensorFlow Deep MNIST
- Mémo API TensorFlow
- Les traits du visage de Yuki Kashiwagi pour comprendre TensorFlow [Partie 1]
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.
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.
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.
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é.
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é.
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.
Recommended Posts