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

时间:2019-04-15 21:09:39

标签: parameters 3d deep-learning convolution

我是CNN的初学者,在构建网络时使用的是3D卷积层,但是我无法理解如何计算该convolution3D层的可训练参数。这是一个简单的单层网络示例,其输入形状为(3,16,112,112)(通道,帧,高度,宽度),即大小为(112 * 112)的16个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个可训练的参数,有人可以向我解释这个数字的产生方式吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

偏差数=内核数

所以对你来说

重量数= 3 x 3 x 3 x 3 x 64 = 5184

偏差数= 64

参数数量= 5184 + 64 = 5248

相关问题