首页 > 解决方案 > 计算 CNN 层数

问题描述

我为我参与的一个项目创建了一个 CNN,我需要展示它。问题是,我不确定如何计算层数。

这是我的模型:

model = Sequential()
model.add(Conv2D(64,(3,3), input_shape = (40,40,2)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2)))

model.add(Conv2D(64,(3,3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2)))

model.add(Flatten())
model.add(Dense(64))
model.add(Activation('relu'))


model.add(Dense(1600))
model.add(Reshape((40,40)))
model.add(Activation('sigmoid'))

model.compile(loss='MSE',
             optimizer='SGD',
             metrics=['MAE'])

len(model.layers) 返回 12:

所以我使用了 1 个输入 10 个隐藏的 1 个输出层,

或者

我需要将它们算作一个组并说 1 个输入 2 个隐藏 1 个输出?

标签: pythontensorflowkerasneural-networkdeep-learning

解决方案


在计算 CNN 网络的深度时,我们只考虑具有可调/可训练权重/参数的层。在 CNN 中,只有卷积层和全连接层具有可训练的参数。如果要标记层,请仅考虑卷积层、全连接层和输出层(Conv2D 和 Dense)。最大池化层通常与卷积层一起作为一层。


推荐阅读