如何计算 3D 卷积层的可训练参数数量?

How to compute the number of trainable paramters of a 3D convolution layer?

我是 CNN 的初学者,我在构建网络时使用了 3D 卷积层,但我无法理解这个 convolution3D 层的可训练参数是如何计算的。这是一个简单的单层网络示例,输入形状为 (3,16,112,112)(通道、帧、高度、宽度),即 16 个大小为 (112*112) 的 RGB 图像:

def get_model(summary=False):

model = Sequential()
model.add(Convolution3D(64, (3, 3, 3), activation='relu', 
                        padding='valid', name='conv1',
                        strides=(1, 1, 1), 
                        input_shape=(3, 16, 112, 112)))
if summary:
    print(model.summary())
return model

摘要显示了 5248 个可训练参数,谁能解释一下这个数字是如何得出的?

可训练参数是指网络中的所有权重和偏差,以及 3D 卷积层中卷积滤波器中的值。这意味着在可训练的卷积滤波器中有 5248 个不同的连接权重、偏差和值。

网络也可能有不可训练的部分,例如最大池化层。该层的作用不受训练的影响。

权重数=内核宽度*内核高度*内核深度(因为3d)x输入图像中的通道数*内核数

偏置数 = 内核数

所以对你来说:

权重数 = 3 x 3 x 3 x 3 x 64 = 5184

偏差数 = 64

参数个数=5184+64=5248