困惑于张量流如何进食

最近开始使用tensorflow,我真的很困惑feed_dict的功能。

从tensorflow网站上看到的mnist例子,x是一个符号占位符,每次训练迭代都会填充一批新图像,因此'无'也可以是'batch_size'

x = tf.placeholder(tf.float32, shape=[None, 784])

当查看本教程的卷积部分时,有一条命令将x从平坦的1x784形状重塑为2D图像28x28形状

x_image = tf.reshape(x, [-1,28,28,1])

在训练循环中,x通过命令馈送

train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})

我的问题是,当我们将值输入到x时,tensorflow会自动将每个涉及x的操作向量化? 所以例如当我们定义操作

h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)

这将在整个批次中自动工作?

如果x是ndarray,每行都是一个平坦的图像,因为我们在x占位符tensorflow中指定了形状'None'会自动知道将每行用作单独的训练样本,并向后矢量化所有后续操作?


shape参数用于静态形状推理(即tensor.get_shape ),并且是可选的。 TensorFlow不会自动矢量化任何东西,但对于二进制cwise操作,它使用的广播看起来有点像这样。 在你的例子中, tf.conv2d是一个把每一行作为例子的操作,所以它可以用于批处理,但不能用于单个的例子。 另外batch[0]是一批输入, batch[1]是一批标签。

链接地址: http://www.djcxy.com/p/32105.html

上一篇: Confused on how tensorflow feed

下一篇: What data types can you give as keys to feed in TensorFlow?