计算 CNN 层数

Olc*_*kcı 5 python neural-network deep-learning keras tensorflow

我为我参与的一个项目创建了一个 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'])
Run Code Online (Sandbox Code Playgroud)

len(model.layers) 返回 12 :

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

或者

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

Ran*_*age 9

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

  • 严格地说,batchnorm 层中有一些可训练的参数,但我们也不计算 bn 层:) (3认同)