Czy istnieje sposób obliczenia całkowitej liczby parametrów w sieci LSTM.Jak obliczyć liczbę parametrów sieci LSTM?
Znalazłem przykład, ale nie jestem pewien, jak poprawne jest this lub czy zrozumiałem to poprawnie.
Na przykład rozważmy następujący przykład: -
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()
Wyjście
____________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
====================================================================================================
lstm_1 (LSTM) (None, 256) 4457472 lstm_input_1[0][0]
====================================================================================================
Total params: 4457472
____________________________________________________________________________________________________
Jak na moje rozumienie n
jest długość wektora wejściowego. I m
to liczba kroków czasowych. i w tym przykładzie uważają liczbę ukrytych warstw za 1.
Tak więc zgodnie ze wzorem w the post.4(nm+n^2)
w moim przykładzie m=16
; n=4096
; num_of_units=256
4*((4096*16)+(4096*4096))*256 = 17246978048
Dlaczego istnieje taka różnica? Czy źle zrozumiałem przykład, czy formuła była błędna?
Patrz tego linku jeśli potrzebował pomocy wizualnych: http://datascience.stackexchange.com/questions/10615/number-of-parameters-in-an-lstm-model – Ali