私はこの形のシーケンス入力を持っています:(6000, 64, 100, 50)
4次元入力でLSTMにどのようにフィードするのですか?
6000
はサンプルシーケンスの数に過ぎません。各配列は、長さが64
です。
私はこの入力をKerasを使用してLSTMに収める予定です。
input = Input(shape=(64, 100, 50))
これは私がそうのように私のLSTMにinput
を置くしかし(?, 64, 100, 50)
、の入力形状を与える:
x = LSTM(256, return_sequences=True)(input)
I私の入力は、このよう
Iセットアップこのエラーが発生する:
Input 0 is incompatible with layer lstm_37: expected ndim=3, found ndim=4
私の入力形状が(?, 64, 100)
のようなものだったのですが、4次元のときはうまくいかなかったでしょう。
これは、LSTMが3次元の入力しか取ることができないということですか? Kerasを使用してLSTMに4次元以上の入力を与えるにはどうすればよいですか?
入力を3次元で100 * 50に変更する場合は、入力データを並べ替えることをお勧めします。 3次元と4次元のデータは、(6000,64,100 * 50)の形状を形成するために3つの次元に「マージ」されなければならないと私は考えています。 – Carven
また、これはあなたのデータに大きく依存します。たぶんあなたの実際のデータを説明し、さまざまな次元について詳しく説明します。 – mapeza
'input_data.reshape((6000,64,100 * 50)'。しかし、これは合理的であるかどうかはあなたのデータに大きく依存するかどうかということです。 –