我开始使用TensorFlow(使用Python),并且想知道:在函数中使用占位符时,为什么在我的函数中没有一个参数可以提供TensorFlow常量而不是占位符?
以下是一个示例(区别在于x
):
def sigmoid(z):
x = tf.constant(z, dtype=tf.float32, name = "x")
sigmoid = tf.sigmoid(x)
with tf.Session() as sess:
result = sess.run(sigmoid)
return result
而不是:
def sigmoid(z):
x = tf.placeholder(tf.float32, name = "...")
sigmoid = tf.sigmoid(x)
with tf.Session() as sess:
result = sess.run(sigmoid, feed_dict={x:z})
return result
答案 0 :(得分:3)
Tensorflow的想法是,您将对大量数据重复相同的计算。当你编写代码时,你正在设置一个计算图,稍后你将对数据执行。在第一个示例中,您已将数据硬编码为常量。这不是典型的张量流用例。第二个例子更好,因为它允许你重复使用不同数据的相同计算图。