TensorFlow:为什么不使用函数而不是占位符?

时间:2017-10-02 20:20:57

标签: python tensorflow

我开始使用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

1 个答案:

答案 0 :(得分:3)

Tensorflow的想法是,您将对大量数据重复相同的计算。当你编写代码时,你正在设置一个计算图,稍后你将对数据执行。在第一个示例中,您已将数据硬编码为常量。这不是典型的张量流用例。第二个例子更好,因为它允许你重复使用不同数据的相同计算图。