LSTM参数个数计算方法

计算LSTM的参数个数需要了解其工作原理,如下:
在这里插入图片描述
可以看到若不加偏置,该LSTM层共有4个权重参数,图中输入的一个timestep的特征大小为3(绿色单元),隐藏层输出大小为2(橙色单元),因此该LSTM层的参数个数为:
n = 4 ( 2 + 3 ) 2 = 40 n=4*(2+3)*2=40

若加上偏置则该LSTM层的参数个数为:
n = 4 ( ( 2 + 3 ) 2 + 2 ) = 48 n=4*((2+3)*2+2)=48

使用keras的LSTM进行验证

带偏置:

from keras.models import Sequential
from keras.layers import LSTM

timestep = 4  # LSTM层的block个数
model = Sequential()
model.add(LSTM(units=2, use_bias=True, input_shape=[timestep, 3]))
model.summary()
Model: "sequential_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
lstm_1 (LSTM)                (None, 2)                 48        
=================================================================
Total params: 48
Trainable params: 48
Non-trainable params: 0
_________________________________________________________________

不带偏置:

from keras.models import Sequential
from keras.layers import LSTM

timestep = 4  # LSTM层的block个数
model = Sequential()
model.add(LSTM(units=2, use_bias=False, input_shape=[timestep, 3]))
model.summary()
Model: "sequential_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
lstm_1 (LSTM)                (None, 2)                 40
=================================================================
Total params: 40
Trainable params: 40
Non-trainable params: 0
_________________________________________________________________

以小见大,通过推理可以得到一般的计算方法。

发布了83 篇原创文章 · 获赞 4 · 访问量 5368

猜你喜欢

转载自blog.csdn.net/weixin_43486780/article/details/105329666