有沒有辦法計算LSTM網絡中的參數總數。如何計算LSTM網絡的參數數量?
我找到了一個例子,但我不確定this是多麼正確或如果我已經正確地理解它。
對於例如考慮下面的例子: -
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()
輸出
____________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
====================================================================================================
lstm_1 (LSTM) (None, 256) 4457472 lstm_input_1[0][0]
====================================================================================================
Total params: 4457472
____________________________________________________________________________________________________
按我理解n
是輸入矢量lenght。 和m
是時間步數。在這個例子中他們認爲隱藏層數爲1.
因此根據公式the post.4(nm+n^2)
在我的例子中m=16
; n=4096
; num_of_units=256
4*((4096*16)+(4096*4096))*256 = 17246978048
爲什麼會有這樣的差異? 我誤解了這個例子還是公式錯了?
參考此鏈接,如果你需要一些幫助視力: http://datascience.stackexchange.com/questions/10615/number-of-parameters-in-an-lstm-model – Ali