有没有办法计算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)
为什么会有这样的差异?我误解了这个例子还是公式错了?