Estoy tratando de comprender qué hace el contenedor TimeDistributed en Keras.
Entiendo que TimeDistributed "aplica una capa a cada segmento temporal de una entrada".
Pero hice un experimento y obtuve resultados que no puedo entender.
En resumen, en relación con la capa LSTM, TimeDistributed y solo la capa Dense dan los mismos resultados.
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)
Para ambos modelos, obtuve una forma de salida de (Ninguno, 10, 1) .
¿Alguien puede explicar la diferencia entre la capa distribuida en el tiempo y la capa densa después de una capa RNN?
Dense
capa que aplana la entrada y luego la reforma, por lo tanto, conecta diferentes pasos de tiempo y tiene más parámetros, yTimeDistributed
mantiene los pasos de tiempo separados (por lo tanto, tiene menos parámetros). En su caso,Dense
debería haber tenido 500 parámetros,TimeDistributed
solo 50