我试图理解TensorFlow代码。在该程序中,模型定义为
def fcn(x):
...
return [out1, out2]
然后,在训练模型之后以及评估期间,
z = sample(100) # generate sample inputs
samples = sess.run(fcn(X), feed_dict={X: z})
samples[0] = np.argmax(samples[0], axis=2)
samples[1] = np.argmax(samples[1], axis=3)
samples[1] = sess.run(samples[1] - tf.matrix_band_part(samples[1],0,0))
我的问题是关于sess.run
。第一次使用时,我们提供了一个模型及其输入。在这种情况下,很直观,我们应该期望模型输出。我不了解的是我们第二次使用sess.run
。将修改后的输出输入回sess.run
是什么意思?我无法通过查看official doc来解决问题。
答案 0 :(得分:0)
我认为这是原因。如果您有更完整的解决方案,请随时发布。
评估a的实际值的最简单方法
Tensor
对象将其传递给Session.run()
方法,或调用Tensor.eval()
(如果您有默认会话)(即在with tf.Session():
块中,或参阅下文)。一般来说,你 无法在不运行某些代码的情况下打印张量的值 会议。