当我执行最简单的图形时,TensorFlow会抛出 TypeError 。
sess = tf.Session()
x1 = tf.placeholder(tf.float32)
x2 = tf.placeholder(tf.float32)
z = x1
sess.run(tf.gradients(z, [x1, x2]), feed_dict={x1: 1, x2: 1})
这会产生
TypeError: Fetch argument None has invalid type <class 'NoneType'>
有趣的是,如果我将一行代码更改为:
z = x1 + x2
然后一切正常! 为什么会这样?
答案 0 :(得分:2)
根据您的描述,我正确修改了代码。
import tensorflow as tf
sess = tf.Session()
x1 = tf.placeholder(tf.float32)
x2 = tf.placeholder(tf.float32)
z = x1
print sess.run(tf.gradients(z, [x1]), feed_dict={x1: 1})
z = x1 + x2
print sess.run(tf.gradients(z, [x1, x2]), feed_dict={x1: 1, x2: 1})
现在没有错误。我相信你能理解你的问题。
当您要应用某个功能时,您可能需要查看该文档。以下是tf.gradients
上的文件。