web-dev-qa-db-ja.com

ValueError:入力0はレイヤーlstm_13と互換性がありません:期待されるndim = 3、ndim = 4が見つかりました

私はマルチクラス分類を試みていますが、ここに私のトレーニングの入力と出力の詳細があります:

train_input.shape =(1、95000、360)(各要素が長さ360の配列である長さ95000の入力配列)

train_output.shape =(1、95000、22)(22クラスがあります)

model = Sequential()

model.add(LSTM(22, input_shape=(1, 95000,360)))
model.add(Dense(22, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
print(model.summary())
model.fit(train_input, train_output, epochs=2, batch_size=500)

エラーは次のとおりです。

ValueError:入力0はレイヤーlstm_13と互換性がありません:期待されるndim = 3、行にndim = 4が見つかりました:model.add(LSTM(22、input_shape =(1、95000,360)))

私を助けてください、私は他の答えを通してそれを解決することができません。

11
Urja Pawar

私は作ることで問題を解決しました

入力サイズ:(95000,360,1)および出力サイズ:(95000,22)

モデルが定義されているコードの入力形状を(360,1)に変更しました:

model = Sequential()
model.add(LSTM(22, input_shape=(360,1)))
model.add(Dense(22, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
print(model.summary())
model.fit(ml2_train_input, ml2_train_output_enc, epochs=2, batch_size=500)
10
Urja Pawar

input_shapeは(timesteps、n_features)になるはずです。最初の次元を削除します。

input_shape = (95000,360)

出力についても同じです。

6
Michele Tonutti