了解keras中conv2d层的输出形状

新手上路,请多包涵

我不明白为什么通道维度不包含在 Keras 的 conv2D 层的输出维度中。

我有以下型号

def create_model():
    image = Input(shape=(128,128,3))

    x = Conv2D(24, kernel_size=(8,8), strides=(2,2), activation='relu', name='conv_1')(image)
    x = Conv2D(24, kernel_size=(8,8), strides=(2,2), activation='relu', name='conv_2')(x)
    x = Conv2D(24, kernel_size=(8,8), strides=(2,2), activation='relu', name='conv_3')(x)
    flatten = Flatten(name='flatten')(x)

    output = Dense(1, activation='relu', name='output')(flatten)
    model = Model(input=image, output=output)
    return model

model = create_model()
model.summary()

模型摘要在我的问题末尾给出了数字。输入层采用宽度 = 128 和高度 = 128 的 RGB 图像。第一个 conv2D 层告诉我输出维度是 (None, 61, 61, 24)。我使用的内核大小为 (8, 8),步幅为 (2, 2),没有填充。值 61 = floor( (128 - 8 + 2 * 0)/2 + 1) 和 24(内核/过滤器的数量)是有意义的。 但是为什么维度中没有包含不同渠道的维度呢? 据我所知,每个通道上的 24 个滤波器的参数都包含在参数数量中。 所以我希望输出维度为 (None, 61, 61, 24, 3) 或 (None, 61, 61, 24 * 3)。这只是 Keras 中的一个奇怪符号,还是我对其他事情感到困惑?

在此处输入图像描述

原文由 MachineLearner 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 688
1 个回答

这个问题在互联网上以各种形式被问到,并且有一个经常被遗漏或混淆的简单答案:

简单答案:给定多通道输入(例如彩色图像)的 Keras Conv2D 层将在所有颜色通道上应用过滤器并对结果求和,产生等效于单色卷积输出图像。

一个来自 CIFAR-10 CNN 示例的示例

(1) 您正在使用 CIFAR 图像数据集进行训练,该数据集由 32x32 彩色 图像组成,即每个图像的形状为 (32,32,3)(RGB = 3 通道)

(2) 你的网络的第一层是一个 Conv2D 层,有 32 个过滤器,每个过滤器指定为 3x3,所以:

Conv2D(32, (3,3), padding=‘same’, input_shape=(32,32,3))

(3) 与直觉相反,Keras 会将每个过滤器配置为 (3,3,3),即覆盖 3x3 像素加上所有颜色通道的 3D 体积。作为一个次要细节,按照正常的神经网络层算法,每个过滤器都有一个额外的 BIAS 权重。

(4) 卷积完全正常进行,除了输入图像的 3x3x3 体积在每一步与 3x3x3 滤波器进行卷积,并且在每一步产生单个(单色)输出值(即像像素)。

(5) 结果是指定的(3,3)滤波器在(32,32,3)图像上的Keras Conv2D卷积产生(32,32)结果,因为实际使用的滤波器是(3,3,3) .

(6) 在本例中,我们还在 Conv2D 层中指定了 32 个过滤器,因此每个输入图像的实际输出为 (32,32,32)(即您可能认为这是 32 个图像,每个过滤器一个,每个 32x32 单色像素)。

作为检查,您可以查看 model.summary() 生成的层的权重计数(Param #):

 Layer (type)         Output shape       Param#
conv2d_1 (Conv2D)   (None, 32, 32, 32)  896

有 32 个过滤器,每个 3x3x3(即 27 个权重)加上 1 个偏差(即每个总共 28 个权重)。 32 个过滤器 x 28 个权重,每个 = 896 个参数。

原文由 Bambam 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题