【问题标题】:Why is the x variable tensor reshaped with -1 in the MNIST tutorial for tensorflow?为什么 TensorFlow 的 MNIST 教程中的 x 变量张量用 -1 重新整形?
【发布时间】:2017-06-06 07:50:31
【问题描述】:

我正在学习 TensorFlow 教程

最初x被定义为

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

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

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

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

整形向量中的-1 是什么意思,为什么x 会被整形?

【问题讨论】:

  • x的维度是多少?还有你的问题到底是什么:为什么我们有 4d 张量或 -1 意味着什么?
  • 编辑了问题,这就是为什么要重塑 x 以及 -1 的含义

标签: machine-learning tensorflow neural-network artificial-intelligence conv-neural-network


【解决方案1】:

1) 重塑向量中的-1是什么意思

来自reshape的文档:

如果 shape 的一个组成部分是特殊值 -1,则它的大小 计算维度以使总大小保持不变。在 特别是,[-1] 的形状变平为一维。最多一个组件 形状可以是-1。

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

2) 为什么要重塑 x

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

【讨论】:

  • 第4维是批次。
【解决方案2】:

why 4 dimensions

TensorFlow 的卷积 conv2d 操作需要一个 4 维张量,其维度对应于批次、宽度、高度和通道。

[batch, in_height, in_width, in_channels]

【讨论】:

    猜你喜欢
    • 2018-01-04
    • 2017-06-10
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    • 2017-11-22
    相关资源
    最近更新 更多