python - 无法使用 tf.summary() 为测试集存储准确度

标签 python tensorflow tensorboard

我省略了不必要的代码片段以保持问题细节清晰。我正在尝试绘制训练和测试模型曲线。我能够存储训练损失和准确度曲线。但是,在使用 test_writer 编写时,出现以下错误:

test_writer.add_summary(test_summary,step*batch_size)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/summary/writer/writer.py", line 123, in add_summary
    for value in summary.value:
AttributeError: 'list' object has no attribute 'value'

代码:

accuracy = tf.reduce_mean(correct_prediction)

#Summary
tf.summary.scalar("loss",cross_entropy)
accuracy_summary = tf.summary.scalar("accuracy",accuracy)

merged_summary_op = tf.summary.merge_all()
train_writer = tf.summary.FileWriter(graph_location)
train_writer.add_graph(tf.get_default_graph())
test_writer = tf.summary.FileWriter(location)
test_writer.add_graph(tf.get_default_graph())

with  tf.Session() as sess:
    print "STARTED TENSORLFOW SESSION"
    sess.run(tf.initialize_all_variables())
    while step*batch_size < training_iters:
        if count <= 900:
            _,summary = sess.run([train_step,merged_summary_op], feed_dict={x:batch_xs, j:batch_js, y_:batch_ys, keep_prob:dropout})
            train_writer.add_summary(summary, step*batch_size)
        else:
            test_summary = sess.run([accuracy_summary], feed_dict={x:test_xs,j:test_js,y_:test_ys, keep_prob: 0.5})
            test_writer.add_summary(test_summary,step*batch_size)

我的训练曲线绘制得很好。如果我将其更改为,我的测试曲线将起作用 test_summary = sess.run([train_step,merged_summary_op], feed_dict={x:test_xs,j:test_js,y_:test_ys, keep_prob: 0.5}) 但它没有意义,因为我不会想通过提供测试集来训练我的优化器。

我在这里缺少什么?

最佳答案

我认为你应该重写倒数第二行

test_summary = sess.run([accuracy_summary], feed_dict={x:test_xs,j:test_js,y_:test_ys, keep_prob: 0.5})

test_summary = sess.run(accuracy_summary, feed_dict={x:test_xs,j:test_js,y_:test_ys, keep_prob: 0.5})

为了获得标量输出而不是列表。

关于python - 无法使用 tf.summary() 为测试集存储准确度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46588166/

相关文章:

tensorflow - Tensorboard - 按范围过滤步骤

PHP 将数据流传输至 AJAX 调用

python - OpenCV模板匹配,多模板

python - 如何在 python 中的匹配行之后获取行

python - 如何使用 Tensorflow2 (jupyter, Win) 杀死 tensorboard

tensorflow - 用 tf.data 替换基于队列的输入管道

python - OpenAI-Gym 和 Keras-RL : DQN expects a model that has one dimension for each action

tensorflow - `get_variable()` 无法识别 tf.estimator 的现有变量

python - `tf.nn.max_pool(input_tensor, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding="SAME")` 对输入张量形状有什么影响?

python - 无法在 tensorboard 中使用 summary.merge 进行单独的培训和评估摘要