C'est juste maintenant, mais j'ai essayé de déplacer TensorBoard pendant un moment. À cette époque, la page Utilisation la plus basique de TensorBoard était très utile. La meilleure partie était que l'échantillon était très simple et facile à essayer.
Cependant, comme vous pouvez le voir dans les commentaires, il semble qu'il existe diverses différences selon la version, et c'est le contenu que j'ai essayé de l'exécuter dans le dernier environnement. Donc, après avoir regardé la page Omoto, j'espère que vous pouvez voir cela comme une référence, mais comme les bases ne sont qu'un copier-coller de la page Omoto, il n'est peut-être pas nécessaire de s'y référer. Peut être. Réimpression: Utilisation la plus basique de TensorBoard
$ pip list | grep tens
tensorboard 1.14.0
tensorflow 1.14.0
tensorflow-estimator 1.14.0
Quand,
tensorboard 2.0.1
tensorflow 2.0.0
tensorflow-estimator 2.0.1
#Importer les bibliothèques requises
import tensorflow as tf
import numpy as np
#Définition variable
dim = 5
LOGDIR = './logs'
x = tf.compat.v1.placeholder(tf.float32, [None, dim + 1], name='X')
w = tf.Variable(tf.zeros([dim+1,1]), name='weight')
y = tf.matmul(x,w, name='Y')
t = tf.compat.v1.placeholder(tf.float32, [None, 1], name='TEST')
sess = tf.compat.v1.Session()
#Définition de la fonction de perte et méthode d'apprentissage
loss = tf.reduce_sum(tf.square(y - t))
train_step = tf.compat.v1.train.AdamOptimizer().minimize(loss)
#Définir les variables à suivre avec TensorBoard
with tf.name_scope('summary'):
#Utiliser le retour
loss_summary = tf.compat.v1.summary.scalar('loss', loss)
if tf.io.gfile.exists(LOGDIR):
tf.io.gfile.rmtree(LOGDIR) # ./Supprimer si logdir existe
writer = tf.compat.v1.summary.FileWriter(LOGDIR, sess.graph)
#Initialisation de session et préparation des données d'entrée
sess.run(tf.compat.v1.global_variables_initializer())
train_t = np.array([5.2, 5.7, 8.6, 14.9, 18.2, 20.4,25.5, 26.4, 22.8, 17.5, 11.1, 6.6])
train_t = train_t.reshape([12,1])
train_x = np.zeros([12, dim+1])
for row, month in enumerate(range(1, 13)):
for col, n in enumerate(range(0, dim+1)):
train_x[row][col] = month**n
#Apprentissage
i = 0
for _ in range(100000):
i += 1
sess.run(train_step, feed_dict={x: train_x, t: train_t})
if i % 10000 == 0:
#Perte obtenue ci-dessus_Passer estival
s, loss_val = sess.run([loss_summary, loss] , feed_dict={x: train_x, t: train_t})
print('Step: %d, Loss: %f' % (i, loss_val))
#Cela produira SCALARS
writer.add_summary(s, global_step=i)
--Image GRAPHIQUES
Il sera plus facile à comprendre si vous lui donnez un nom.
--Graphe SCALARS
Au fait, si vous faites ressembler à ce qui suit, il semble que vous n'ayez pas à changer autant le code existant. Puisqu'il est décrit dans le document tensorflow, il s'agit d'une méthode de description appropriée.
import tensorflow.compat.v1 as tf
Alors, changeons le style d'écriture ici. En outre, le point de v2 est que la façon d'écrire Variable a changé. De plus, ce que je ne comprends pas vraiment, c'est la partie Eager Tensors. Pour le moment, j'ai spécifié session comme avec.
#Importer les bibliothèques requises
import tensorflow.compat.v1 as tf
import numpy as np
#Définition variable
dim = 5
LOGDIR = './logs'
with tf.Session() as sess:
x = tf.placeholder(tf.float32, [None, dim + 1], name='X')
with tf.variable_scope('weight'):
w = tf.get_variable("weight", shape=[dim+1,1], initializer=tf.zeros_initializer())
y = tf.matmul(x,w, name='Y')
t = tf.placeholder(tf.float32, [None, 1], name='TEST')
#Définition de la fonction de perte et méthode d'apprentissage
loss = tf.reduce_sum(tf.square(y - t))
train_step = tf.train.AdamOptimizer().minimize(loss)
#Définir les variables à suivre avec TensorBoard
with tf.name_scope('summary'):
loss_summary = tf.summary.scalar('loss', loss)
if tf.io.gfile.exists(LOGDIR):
tf.io.gfile.rmtree(LOGDIR) # ./Supprimer si logdir existe
writer = tf.summary.FileWriter(LOGDIR, sess.graph)
#Initialisation de session et préparation des données d'entrée
sess.run(tf.global_variables_initializer())
train_t = np.array([5.2, 5.7, 8.6, 14.9, 18.2, 20.4,25.5, 26.4, 22.8, 17.5, 11.1, 6.6])
train_t = train_t.reshape([12,1])
train_x = np.zeros([12, dim+1])
for row, month in enumerate(range(1, 13)):
for col, n in enumerate(range(0, dim+1)):
train_x[row][col] = month**n
#Apprentissage
i = 0
for _ in range(100000):
i += 1
sess.run(train_step, feed_dict={x: train_x, t: train_t})
if i % 10000 == 0:
s, loss_val = sess.run([loss_summary, loss] , feed_dict={x: train_x, t: train_t})
print('Step: %d, Loss: %f' % (i, loss_val))
writer.add_summary(s, global_step=i)
--Graphe SCALARS
Il semble que la partie Y soit différente.
Recommended Posts