【问题标题】:Output dimensions of convolutional layer with KerasKeras卷积层的输出维度
【发布时间】:2016-09-16 00:27:54
【问题描述】:

Keras 教程给出了以下代码示例(使用 cmets):

# apply a convolution 1d of length 3 to a sequence with 10 timesteps,
# with 64 output filters
model = Sequential()
model.add(Convolution1D(64, 3, border_mode='same', input_shape=(10, 32)))
# now model.output_shape == (None, 10, 64)

我对输出大小感到困惑。它不应该创建 10 个深度为 64、宽度为 32 的时间步(步幅默认为 1,无填充)吗?所以(10,32,64) 而不是(None,10,64)

【问题讨论】:

    标签: machine-learning neural-network keras conv-neural-network


    【解决方案1】:

    在 k 维卷积中,您将拥有一个过滤器,它会以某种方式保留第一个 k 维的结构,并通过将它们与过滤器权重进行卷积来压缩来自所有其他维度的信息。因此,基本上网络中的每个过滤器都有一个维度(3x32),并且来自最后一个维度(大小为 32)的所有信息将被压缩为一个实数,并保留第一个维度。这就是为什么你有这样的形状。

    当您有彩色图像时,您可以在二维情况下想象类似的情况。您的输入将具有 3 维结构(图片长度、图片宽度、颜色)。当您对前两个维度应用二维卷积时 - 所有关于颜色的信息都将被您的过滤器压缩,并且不会保留在您的输出结构中。和这里一样。

    【讨论】:

      猜你喜欢
      • 2017-05-21
      • 1970-01-01
      • 2017-12-20
      • 1970-01-01
      • 2016-12-04
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 2021-04-29
      相关资源
      最近更新 更多