我正在关注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) What does -1 mean in the reshaping vector
从reshape的文档:
如果形状的一个组件是特殊值-1,则计算该维度的大小,以使总大小保持不变 . 特别地,[-1]的形状变平为1-D . 最多一个形状的组件可以是-1 .
这是一个标准功能,也可以在numpy中使用 . 基本上它意味着 - 我没有时间计算所有尺寸,所以推断出我的尺寸 . 在你的情况下因为 x * 28 * 28 * 1 = 784 所以你的-1 = 1
x * 28 * 28 * 1 = 784
2) Why is x being reshaped
他们计划使用卷积进行图像分类 . 所以他们需要使用一些空间信息 . 当前数据是1维的 . 因此他们将其转换为4维 . 我不知道第四维的重点,因为在我看来他们可能只使用(x,y,color) . 甚至(x,y) . 尝试修改他们的重塑和卷积,很可能你会得到类似的准确性 .
why 4 dimensions
TensorFlow的卷积转换操作需要一个4维张量,其尺寸对应于批次,宽度,高度和通道 .
[batch, in_height, in_width, in_channels]
2 回答
1) What does -1 mean in the reshaping vector
从reshape的文档:
这是一个标准功能,也可以在numpy中使用 . 基本上它意味着 - 我没有时间计算所有尺寸,所以推断出我的尺寸 . 在你的情况下因为
x * 28 * 28 * 1 = 784
所以你的-1 = 12) Why is x being reshaped
他们计划使用卷积进行图像分类 . 所以他们需要使用一些空间信息 . 当前数据是1维的 . 因此他们将其转换为4维 . 我不知道第四维的重点,因为在我看来他们可能只使用(x,y,color) . 甚至(x,y) . 尝试修改他们的重塑和卷积,很可能你会得到类似的准确性 .
why 4 dimensions
TensorFlow的卷积转换操作需要一个4维张量,其尺寸对应于批次,宽度,高度和通道 .