Ich versuche zu verstehen, was der TimeDistributed-Wrapper in Keras macht.
Ich verstehe, dass TimeDistributed "eine Ebene auf jede zeitliche Schicht einer Eingabe anwendet".
Aber ich habe einige Experimente durchgeführt und die Ergebnisse erhalten, die ich nicht verstehen kann.
Kurz gesagt, in Verbindung mit der LSTM-Schicht erzielen TimeDistributed und Just Dense Layer dieselben Ergebnisse.
model = Sequential()
model.add(LSTM(5, input_shape = (10, 20), return_sequences = True))
model.add(TimeDistributed(Dense(1)))
print(model.output_shape)
model = Sequential()
model.add(LSTM(5, input_shape = (10, 20), return_sequences = True))
model.add((Dense(1)))
print(model.output_shape)
Für beide Modelle habe ich die Ausgabeform (Keine, 10, 1) erhalten .
Kann jemand den Unterschied zwischen TimeDistributed und Dense Layer nach einem RNN Layer erklären?
Dense
Ebene zu unterscheiden, die die Eingabe abflacht und dann umformt,TimeDistributed
wodurch verschiedene Zeitschritte verbunden werden und mehr Parameter vorhanden sind und die Zeitschritte getrennt bleiben (daher weniger Parameter vorhanden sind). In Ihrem FallDense
sollte 500 Parameter haben,TimeDistributed
nur 50