相关疑难解决方法(0)

如何计算LSTM网络的参数数量?

有没有办法计算LSTM网络中的参数总数.

我找到了一个例子,但我不确定是多么正确或者我是否理解正确.

例如,考虑以下示例: -

from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.layers import Embedding
from keras.layers import LSTM
model = Sequential()
model.add(LSTM(256, input_dim=4096, input_length=16))
model.summary()
Run Code Online (Sandbox Code Playgroud)

产量

____________________________________________________________________________________________________
Layer (type)                       Output Shape        Param #     Connected to                     
====================================================================================================
lstm_1 (LSTM)                      (None, 256)         4457472     lstm_input_1[0][0]               
====================================================================================================
Total params: 4457472
____________________________________________________________________________________________________
Run Code Online (Sandbox Code Playgroud)

根据我的理解n是输入向量长度.并且m是时间步数.在这个例子中,他们认为隐藏层的数量为1.

因此根据帖子中 的公式.4(nm+n^2)在我的例子中m=16; n=4096;num_of_units=256

4*((4096*16)+(4096*4096))*256 = 17246978048
Run Code Online (Sandbox Code Playgroud)

为什么会有这样的差异?我误解了这个例子还是公式错了?

machine-learning neural-network deep-learning lstm keras

14
推荐指数
4
解决办法
1万
查看次数