keras的model.summary()输出参数计算

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

摘要

使用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 #   
==================================================
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值