在 Tensorboard 中绘制一个简单的图
Getting a simple plot in Tensorboard
我想在 tensorboard 上画一个简单的图,就像他们在主页上有的那样:
为了理解这是如何工作的,我写了以下内容:
import tensorflow as tf
import numpy as np
x = tf.placeholder('float',name='X')
y= tf.placeholder('float',name='y')
addition = tf.add(x,y)
with tf.Session() as sess:
for i in range(100):
var1= np.random.rand()
var2= np.random.rand()
print(var1,var2)
tf.summary.scalar('addition',sess.run(addition, feed_dict={x:var1,y:var2}))
writer = tf.summary.FileWriter('Graphs',sess.graph)
虽然我可以看到图表,但看不到任何标量值。任何人都可以向我解释我在这里做错了什么吗?
PS:我有 运行 所有官方示例,它们都可以正常工作,但我需要理解这个示例才能使用它。
谢谢你的帮助 !
更新
在 运行 @dv3 代码之后程序崩溃了。这是我得到的:
InvalidArgumentError: You must feed a value for placeholder tensor 'input/x-input' with dtype float
[[Node: input/x-input = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/cpu:0"]()]]
During handling of the above exception, another exception occurred:
InvalidArgumentError Traceback (most recent call last)
<ipython-input-5-5cbd77e71936> in <module>()
14 var2= np.random.rand()
15 print(var1,var2)
---> 16 add, s_ = sess.run([addition, summary_op], feed_dict={x:var1,y:var2})
17 writer.add_summary(s_, i)
所以马上,我想建议阅读 this。它更详细地介绍了什么是会话。
关于代码及其不产生结果的原因:您没有初始化变量。你可以这样做:sess.run(tf.global_variables_initializer())
。所以你的代码将是:
import tensorflow as tf
import numpy as np
x = tf.placeholder('float',name='X')
y= tf.placeholder('float',name='y')
addition = tf.add(x,y)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for i in range(100):
var1= np.random.rand()
var2= np.random.rand()
print(var1,var2)
tf.summary.scalar('addition',sess.run(addition, feed_dict={x:var1,y:var2}))
writer = tf.summary.FileWriter('Graphs',sess.graph)
我不会将 sess.run 嵌入到 summary.scalar 调用中,但对于这个简单的示例,您会得到一些结果。
编辑:
经过测试,这确实有效:
import tensorflow as tf
import numpy as np
x = tf.placeholder('float',name='X')
y= tf.placeholder('float',name='y')
addition = tf.add(x,y, name='add')
tf.summary.scalar('addition', addition)
summary_op = tf.summary.merge_all()
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
writer = tf.summary.FileWriter('Graphs',sess.graph)
for i in range(100):
var1= np.random.rand()
var2= np.random.rand()
print(var1,var2)
add, s_ = sess.run([addition, summary_op], feed_dict={x:var1,y:var2})
writer.add_summary(s_, i)
输出:
我想在 tensorboard 上画一个简单的图,就像他们在主页上有的那样:
import tensorflow as tf
import numpy as np
x = tf.placeholder('float',name='X')
y= tf.placeholder('float',name='y')
addition = tf.add(x,y)
with tf.Session() as sess:
for i in range(100):
var1= np.random.rand()
var2= np.random.rand()
print(var1,var2)
tf.summary.scalar('addition',sess.run(addition, feed_dict={x:var1,y:var2}))
writer = tf.summary.FileWriter('Graphs',sess.graph)
虽然我可以看到图表,但看不到任何标量值。任何人都可以向我解释我在这里做错了什么吗? PS:我有 运行 所有官方示例,它们都可以正常工作,但我需要理解这个示例才能使用它。 谢谢你的帮助 !
更新
在 运行 @dv3 代码之后程序崩溃了。这是我得到的:
InvalidArgumentError: You must feed a value for placeholder tensor 'input/x-input' with dtype float
[[Node: input/x-input = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/cpu:0"]()]]
During handling of the above exception, another exception occurred:
InvalidArgumentError Traceback (most recent call last)
<ipython-input-5-5cbd77e71936> in <module>()
14 var2= np.random.rand()
15 print(var1,var2)
---> 16 add, s_ = sess.run([addition, summary_op], feed_dict={x:var1,y:var2})
17 writer.add_summary(s_, i)
所以马上,我想建议阅读 this。它更详细地介绍了什么是会话。
关于代码及其不产生结果的原因:您没有初始化变量。你可以这样做:sess.run(tf.global_variables_initializer())
。所以你的代码将是:
import tensorflow as tf
import numpy as np
x = tf.placeholder('float',name='X')
y= tf.placeholder('float',name='y')
addition = tf.add(x,y)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for i in range(100):
var1= np.random.rand()
var2= np.random.rand()
print(var1,var2)
tf.summary.scalar('addition',sess.run(addition, feed_dict={x:var1,y:var2}))
writer = tf.summary.FileWriter('Graphs',sess.graph)
我不会将 sess.run 嵌入到 summary.scalar 调用中,但对于这个简单的示例,您会得到一些结果。
编辑: 经过测试,这确实有效:
import tensorflow as tf
import numpy as np
x = tf.placeholder('float',name='X')
y= tf.placeholder('float',name='y')
addition = tf.add(x,y, name='add')
tf.summary.scalar('addition', addition)
summary_op = tf.summary.merge_all()
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
writer = tf.summary.FileWriter('Graphs',sess.graph)
for i in range(100):
var1= np.random.rand()
var2= np.random.rand()
print(var1,var2)
add, s_ = sess.run([addition, summary_op], feed_dict={x:var1,y:var2})
writer.add_summary(s_, i)
输出: