TensorFlow - placeholder

TensonrFlow 的 placeholder 方法可用來指定後續運行才會帶入的值,其函式原型如下:

tf.placeholder(
    dtype,
    shape=None,
    name=None
)


其中 dtype 是值的型態,shape 是常數的維度。


可以直接調用 placeholder 方法並帶入指定的型態。

1
2
3
...
a = tf.placeholder(tf.float32)
...


也可以帶入 shape 限定維度。

1
2
3
...
b = tf.placeholder(tf.float32, shape=(2, 3))
...


然後使用 placeholder 構成運算。

1
2
3
4
5
...
a2 = a * a
...
bPlus = b + 1
...


最後用 feed_dict 帶入 placeholder 的值去運行即可。

1
2
3
4
5
...
print(sess.run(a2, feed_dict={a: 2}))
print(sess.run(a2, feed_dict={a: [[1, 2, 3], [4, 5, 6]]}))
print(sess.run(bPlus, feed_dict={b: [[1, 2, 3], [4, 5, 6]]}))
...


最後附上完整的範例程式:

1
2
3
4
5
6
7
8
9
10
11
import tensorflow as tf

a = tf.placeholder(tf.float32)
a2 = a * a
b = tf.placeholder(tf.float32, shape=(2, 3))
bPlus = b + 1

with tf.Session() as sess:
print(sess.run(a2, feed_dict={a: 2}))
print(sess.run(a2, feed_dict={a: [[1, 2, 3], [4, 5, 6]]}))
print(sess.run(bPlus, feed_dict={b: [[1, 2, 3], [4, 5, 6]]}))


其運行結果如下: