摘要
使用keras构建深度学习模型,我们会通过model.summary()输出模型各层的参数状况,如下:
________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_4 (Dense) (None, 7) 35
_________________________________________________________________
activation_4 (Activation) (None, 7) 0
_________________________________________________________________
dense_5 (Dense) (None, 13) 104
_________________________________________________________________
activation_5 (Activation) (None, 13) 0
_________________________________________________________________
dense_6 (Dense) (None, 5) 70
_________________________________________________________________
activation_6 (Activation) (None, 5) 0
=================================================================
Total params: 209
Trainable params: 209
Non-trainable params: 0
_________________________________________________________________
通过这些参数,可以看到模型各个层的组成(dense表示全连接层)。也能看到数据经过每个层后,输出的数据维度。
还能看到Param,它表示每个层参数的个数,这个Param是怎么计算出来的呢?
基本神经网络Param计算过程
我们先用如下代码构建一个最简单的神经网络模型,它只有3个全连接层组成:
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
model = Sequential() # 顺序模型
# 输入层
model.add(Dense(7, input_shape=(4,))) # Dense就是常用的全连接层
model.add(Activation('sigmoid')) # 激活函数
# 隐层
model.add(Dense(13)) # Dense就是常用的全连接层
model.add(Activation('sigmoid')) # 激活函数
# 输出层
model.add(Dense(5))
model.add(Activation('softmax'))
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=["accuracy"])
model.summary()
这个模型的参数输出如下:
_________________________________________________________________
Layer (type) Output Shape Param #
==================================================

本文详细解析了深度学习模型中各层参数的计算方法,包括全连接层、卷积层、BatchNormalization层、LayerNormalization层、Embedding层及LSTM层的参数计算公式,为理解模型复杂度和优化提供关键信息。
最低0.47元/天 解锁文章
2667





