我希望记录我的Tensorflow NN的输出

时间:2017-11-30 21:05:31

标签: tensorflow

Tensorflow非常新,运行MNIST数据集。一切运行正常,但我希望记录我的神经网络的输出。如果我能弄清楚如何去做,我会变得愚蠢。

我得到的网络代码最终输出为:

output = tf.matmul(l1, output_layer['weights']) + output_layer['biases']

我只想记录此输出值,将其与MNIST的相应标签进行比较。

我原本以为我可以使用成本函数中的值(预测和y):

cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=prediction,labels=y))

但我似乎无法记录这些值,想要将它们写入文件。我知道准确性和成本是为我计算的。只是一个喜欢手工检查工作的旧geezer。

1 个答案:

答案 0 :(得分:1)

您可以访问存储在变量中的任何图形。例如,根据您提供的代码,我看到您有costoutputpredictions个节点。

您可能通过以下类似的方式运行代码:

 _, c = session.run([optimizer, cost] feed_dict=feed_dict)

要提取output的值,您可以将其修改为以下内容:

_, c, o = session.run([optimizer, cost, output] feed_dict=feed_dict)
print("Output at this step is:", o)

要提取predictions的值,您可以将其修改为以下内容:

_, c, p = session.run([optimizer, cost, predictions] feed_dict=feed_dict)
print("Predictionsat this step is:", p)

显然你不必打印它们,你可以自己将它们保存到文件中。

注意:随着您对Tensorflow的熟练程度越来越高,您将需要在调试/测试时提取越来越多的变量。查看Tensorboard可能符合您的利益。它允许您记录标量值,如丢失,所有网络权重的直方图,中间图像等。