我正在关注TensorFlow教程
最初x定义为
x = tf.placeholder(tf.float32, shape=[None, 784])
后来它重塑x,我试图理解为什么.
为了应用该层,我们首先将x重塑为4d张量,其中第二和第三维度对应于图像宽度和高度,最终维度对应于颜色通道的数量.
x_image = tf.reshape(x, [-1,28,28,1])
在重塑矢量中-1是什么意思,为什么x被重新形成?
1) 重塑矢量中-1的含义是什么
从重塑的文档:
如果形状的一个组件是特殊值-1,则计算该维度的大小,以使总大小保持不变.特别地,[-1]的形状变平为1-D.最多一个形状的组件可以是-1.
这是一个标准功能,也可以在numpy中使用.基本上它意味着 - 我没有时间计算所有尺寸,所以推断出我的尺寸.在你的情况下因为x * 28 * 28 * 1 = 784
你的-1 = 1
2)为什么x被重塑
他们计划使用卷积进行图像分类.所以他们需要使用一些空间信息.当前数据是1维的.因此他们将其转换为4维.我不知道第四维的重点,因为在我看来他们可能只使用了(x,y,color).甚至(x,y).尝试修改他们的重塑和卷积,很可能你会得到类似的准确性.