首页 > 解决方案 > tensorflow keras 中的第二个卷积层是如何工作的?

问题描述

我有 keras 中的流动模型。

model = Sequential()

model.add(Conv2D(4, (3, 3), input_shape=input_shape, name='Conv2D_0', padding = 'same', use_bias=False, activation=None))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(8, (3, 3), name='Conv2D_1', padding='same', use_bias=False, activation=None))
model.add(MaxPooling2D(pool_size=(2, 2)))

input_shape 是 (32, 32)。所以,对于第一层,如果我有一个大小为 (32, 32) 的图像,我会得到 4 个大小为 (32, 32) 的图像。因此输入图像由 4 个不同的内核卷积。在池化层之后,我得到 4 个大小为 (16, 16) 的图像。

第二个卷积层给了我 8 个大小为 (16, 16) 的图像。该层有
4*8 个内核。内核的大小为 (3, 3, 4, 8)。但我不明白 8 个输出图像是如何计算的。

例如,我认为对于第一个图像,我可以这样做: H_i :第一个池化层的第 i 个输出图像 Ker_i :第 i 个内核。(:, :, 我, 0)

所以第二个卷积层的第一个输出图像可以是:conv(H_0, ker_0) + conv(H_1, ker_1) + conv(H_2, ker_2) + conv(H_3, ker_3)

但这似乎是错误的。

谁能解释一下,第二个卷积层如何计算输出图像?谢谢您的帮助。

标签: pythontensorflowkeras

解决方案


推荐阅读