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?
DenseEbene zu unterscheiden, die die Eingabe abflacht und dann umformt,TimeDistributedwodurch verschiedene Zeitschritte verbunden werden und mehr Parameter vorhanden sind und die Zeitschritte getrennt bleiben (daher weniger Parameter vorhanden sind). In Ihrem FallDensesollte 500 Parameter haben,TimeDistributednur 50