python - 仅 1 个标量的张量板摘要标量错误
问题描述
我通过 Tensorboard 显示 3 个标量。2 个标量工作没有问题(cross_entropy 和准确度)。但是,当我尝试显示第三个标量 (learning_rate) 时出现错误。这是我的代码:
这两个标量没有错误:
cross_entropy = -tf.reduce_sum(y * tf.log(logits))
cross_entropy = tf.nn.softmax_cross_entropy_with_logits(logits=Ylogits, labels=Y_)
cross_entropy = tf.reduce_mean(cross_entropy) * 100
correct_prediction = tf.equal(tf.argmax(Y, 1), tf.argmax(Y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
尝试显示 learning_rate 标量时出错:
learning_rate = 0.0001 + tf.train.exponential_decay(0.003, step, 2000, 1 / math.e)
train_step = tf.train.AdamOptimizer(learning_rate).minimize(cross_entropy)
这是我的张量板代码:
tf.summary.scalar("cross_entropy", cross_entropy)
tf.summary.scalar("training_accuracy", accuracy)
tf.summary.scalar("learning_rate", learning_rate)
tf.summary.image("input", x_image, 3)
with tf.Session() as sess:
sess.run(initializer)
merged_summary = tf.summary.merge_all()
writer = tf.summary.FileWriter("./visualization/1")
writer.add_graph(sess.graph)
for i in range(1000):
batch_x, batch_y = mnist.train.next_batch(100)
if i % 5 == 0:
s = sess.run(merged_summary, feed_dict={X: batch_x, Y_: batch_y})
writer.add_summary(s, i)
sess.run(train_step, feed_dict={X: batch_x, Y_: batch_y, step: i})
print(sess.run(accuracy, feed_dict={X: mnist.test.images, Y_: mnist.test.labels}))
这是我得到的错误:
tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'Placeholder' with dtype int32
如果我删除此行,错误就会消失,并且 tensorboard 工作正常:
tf.summary.scalar("learning_rate", learning_rate)
解决方案
看起来您没有发布所有代码。有一个step
变量可能是一个占位符,您没有将值传递给摘要运行。由于这是计算当前学习率所必需的,我假设您可以通过添加step
到 feed_dict 来修复错误:
s = sess.run(merged_summary, feed_dict={X: batch_x, Y_: batch_y, step: i})
推荐阅读
- python - 为什么此代码返回“pop index out of range”?
- reactjs - 如何使用 typescript 在 React 中动态创建 JSX 标签?
- oracle - 奇怪的 Oracle 行为 - 递归 CTE 中的交叉连接使用逗号,但不适用于交叉连接子句
- c++ - MSVC 编译器认为我引用了一个已删除的函数,但据我所知,我不是
- laravel - 为什么电子邮件在 Laravel ForgotPassword 中不起作用?
- visual-c++ - 如何让 MSBuild 自动下载解决方案/项目中引用的新 nuget 包?
- angular - 错误:没有 Toaster 容器被初始化来接收 toast
- javascript - HEX 到 Threejs rgb 转换与 THREE.MeshPhongMaterial 不起作用
- codeeffects - FieldAttribute Group 属性不适用于集合
- ruby-on-rails - 如何使用依赖:销毁而不造成无限循环