Wie berechnen Sie die Anzahl der Parameter eines LSTM-Netz?

Gibt es eine Möglichkeit zu berechnen, die Gesamtanzahl der Parameter in einem LSTM-Netz.

Ich habe ein Beispiel, aber ich bin mir nicht sicher, wie richtig diese ist oder Wenn ich es richtig verstanden habe.

ZB betrachten Sie das folgende Beispiel:-

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()

Ausgang

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

Gemäß Meinem Verständnis n ist der Eingabevektor der Länge.
Und m ist die Anzahl der Zeitschritte. und in diesem Beispiel betrachten Sie die Anzahl der verborgenen Ebenen 1.

Daher nach der Formel in die post. 4(nm+n^2) in meinem Beispiel m=16;n=4096;num_of_units=256

4*((4096*16)+(4096*4096))*256 = 17246978048

Warum ist da so ein Unterschied?
Habe ich missverstanden, das Beispiel oder war die Formel falsch ?

Schreibe einen Kommentar