如何在Tensorflow中绘制精度曲线

时间:2019-03-14 14:02:57

标签: python tensorflow matplotlib

我正在跟踪this tutorial,为MNIST分类建立一个简单的网络。我想绘制相同的损耗和精度曲线。我看到了this SO post,损耗曲线很好。但是我不知道如何做到同样的准确性。我在optimise function

中尝试了以下代码
session.run(optimizer, feed_dict=feed_dict_train)
if i % 100 == 0:
    loss=session.run(cost, feed_dict=feed_dict_train)
    acc = session.run(accuracy, feed_dict=feed_dict_train)
    loss_list.append(loss)
    acc_list.append(acc)
    plt.plot(loss_list,acc_list)

出现错误

  

InvalidArgumentError:您必须使用dtype int64和形状[?]为占位符张量'y_true_cls'提供一个值。        [[node y_true_cls(定义为:2)]]

由于某种原因,我无法在accuracy内运行optimise function。如何获得精度曲线?

1 个答案:

答案 0 :(得分:1)

y_true_cls 指出您需要提供真实的类标签。从您提到的博客中:-

feed_dict_test = {x: data.x_test,
                  y_true: data.y_test,
                  y_true_cls: data.y_test_cls}
def print_accuracy():
    # Use TensorFlow to compute the accuracy.
    acc = session.run(accuracy, feed_dict=feed_dict_test)

    # Print the accuracy.
    print("Accuracy on test-set: {0:.1%}".format(acc))

如您所见,准确度是 feed_dict_test ,其中y_true_cls是“ True_Labels”。 只有在预测和True类标签的帮助下,我们才能找到准确度。