TimeDistributedラッパーがKerasで何をするのかを把握しようとしています。
TimeDistributedは「入力のすべての時間スライスにレイヤーを適用する」と思います。
しかし、私はいくつかの実験をして、私が理解できない結果を得ました。
つまり、LSTMレイヤーに関連して、TimeDistributedレイヤーとDenseレイヤーだけで同じ結果が得られます。
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)
どちらのモデルでも、(なし、10、1)の出力形状が得られました。
RNNレイヤーの後のTimeDistributedレイヤーとDenseレイヤーの違いを誰かが説明できますか?
Dense
、入力をフラット化してから再形成するレイヤーを区別することでした。これにより、異なるタイムステップを接続し、パラメーターを増やしTimeDistributed
、タイムステップを分離したままにします(したがって、パラメーターを減らします)。あなたの場合Dense
、500個のTimeDistributed