输入
在最后一部分中,你向 session 传入一个 tensor 并返回结果。如果你想用一个非常量 non-constant 该怎么办?这就是 tf.placeholder()
和 feed_dict
派上用场的时候了。这一节将向你讲解向 TensorFlow 传输数据的基本知识。
tf.placeholder()
很遗憾,你不能把数据赋值到 x
在把它传给 TensorFlow。因为后面你需要你的 TensorFlow 模型对不同的数据集采取不同的参数。这时你需要 tf.placeholder()
!
数据经过 tf.session.run()
函数得到的值,由 tf.placeholder()
返回成一个 tensor,这样你可以在 session 开始跑之前,设置输入。
Session’s feed_dict
x = tf.placeholder(tf.string)
with tf.Session() as sess:
output = sess.run(x, feed_dict={x: 'Hello World'})
用 tf.session.run()
里 feed_dict
参数设置占位 tensor。上面的例子显示 tensor x
被设置成字符串 "Hello, world"
。如下所示,也可以用 feed_dict
设置多个 tensor。
x = tf.placeholder(tf.string)
y = tf.placeholder(tf.int32)
z = tf.placeholder(tf.float32)
with tf.Session() as sess:
output = sess.run(x, feed_dict={x: 'Test String', y: 123, z: 45.67})
注意:
如果传入 feed_dict
的数据与 tensor 类型不符,就无法被正确处理,你会得到 “ValueError: invalid literal for
...”。