tf.placeholder函数的用法
Tensorflow中的palceholder,中文翻译为占位符在代码层面,每一个tensor值在graph上都是一个op,当我们将train数据分成一个个minibatch然后传入网络进行训练时,每一个minibatch都将是一个op,这样的话,一副graph上的op未免太多,也会产生巨大的开销;于是就有了tf.placeholder(),我们每次可以将 一个minibatch传入到x = tf
·
Tensorflow中的palceholder,中文翻译为占位符
在代码层面,每一个tensor值在graph上都是一个op,当我们将train数据分成一个个minibatch然后传入网络进行训练时,每一个minibatch都将是一个op,这样的话,一副graph上的op未免太多,也会产生巨大的开销;于是就有了tf.placeholder(),我们每次可以将 一个minibatch传入到x = tf.placeholder(tf.float32,[None,32])上,下一次传入的x都替换掉上一次传入的x,这样就对于所有传入的minibatch x就只会产生一个op,不会产生其他多余的op,进而减少了graph的开销。
函数形式:
tf.placeholder(
dtype,
shape=None,
name=None
)
函数参数:
- dtype:数据类型。常用的是tf.float32,tf.float64等数值类型
- shape:数据形状。默认是None,就是一维值,也可以是多维(比如[2,3], [None, 3]表示列是3,行不定)
- name:名称
返回:
Tensor类型。
代码示例1:
import tensorflow as tf
import numpy as np
a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
output = tf.multiply(a, b)
with tf.Session() as sess:
print(sess.run(output, feed_dict = {a:[3.], b: [4.]}))
代码示例2:
import tensorflow as tf
import numpy as np
x = tf.placeholder(tf.float32, shape=(1024, 1024))
y = tf.matmul(x, x)
with tf.Session() as sess:
#print(sess.run(y)) # ERROR:此处x还没有赋值
rand_array = np.random.rand(1024, 1024)
print(sess.run(y, feed_dict={x: rand_array}))
代码示例3:
其实feed_dict可以喂东西给其他tensor,不止placeholder这一种。
import tensorflow as tf
a = tf.placeholder(dtype=tf.float32)
b = tf.constant(2.0)
c = tf.add(a, b)
with tf.Session() as sess:
print sess.run(c, feed_dict = {a: 1.0, b: 3.0}) #结果为4.0
运行的结果为4,这里利用feed_dict将3.0送给了tensor b
更多推荐
已为社区贡献10条内容
所有评论(0)