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。
答案 0 :(得分:1)
您可以访问存储在变量中的任何图形。例如,根据您提供的代码,我看到您有cost
,output
和predictions
个节点。
您可能通过以下类似的方式运行代码:
_, 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可能符合您的利益。它允许您记录标量值,如丢失,所有网络权重的直方图,中间图像等。