为什么在MNIST教程中,对于张量流,x变量张量重新为-1?

tt_*_*ntz 9 artificial-intelligence machine-learning neural-network conv-neural-network tensorflow

我正在关注TensorFlow教程

最初x定义为

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

后来它重塑x,我试图理解为什么.

为了应用该层,我们首先将x重塑为4d张量,其中第二和第三维度对应于图像宽度和高度,最终维度对应于颜色通道的数量.

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

在重塑矢量中-1是什么意思,为什么x被重新形成?

Sal*_*ali 10

1) 重塑矢量中-1的含义是什么

重塑的文档:

如果形状的一个组件是特殊值-1,则计算该维度的大小,以使总大小保持不变.特别地,[-1]的形状变平为1-D.最多一个形状的组件可以是-1.

这是一个标准功能,也可以在numpy中使用.基本上它意味着 - 我没有时间计算所有尺寸,所以推断出我的尺寸.在你的情况下因为x * 28 * 28 * 1 = 784你的-1 = 1

2)为什么x被重塑

他们计划使用卷积进行图像分类.所以他们需要使用一些空间信息.当前数据是1维的.因此他们将其转换为4维.我不知道第四维的重点,因为在我看来他们可能只使用了(x,y,color).甚至(x,y).尝试修改他们的重塑和卷积,很可能你会得到类似的准确性.