首页 文章

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

提问于
浏览
7

我正在关注TensorFlow教程

最初x定义为

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

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

要应用图层,我们首先将x重新整形为4d张量,第二维和第三维对应于图像宽度和高度,最终尺寸对应于颜色通道的数量 .

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

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

2 回答

  • 10

    1) What does -1 mean in the reshaping vector

    reshape的文档:

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

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

    2) Why is x being reshaped

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

  • 1

    why 4 dimensions

    TensorFlow的卷积转换操作需要一个4维张量,其尺寸对应于批次,宽度,高度和通道 .

    [batch, in_height, in_width, in_channels]
    

相关问题