2

私のモデルでは

Xtrain shape : (62, 30, 100)
Ytrain shape : (62, 1, 100)
Xtest shape : (16, 30, 100)
Ytest shape : (16, 1, 100)

モデルを構築するときは、

model = Sequential()
model.add(LSTM(units=100, return_sequences= True, input_shape=(x_train.shape[1],X_train.shape[2])))
model.add(LSTM(units=100, return_sequences=True))
model.add(Dense(units=100))

model.fit(x_train,y_train,epochs=5,batch_size=13)

合わせようとすると、エラーがスローされます。

ValueError: Error when checking target: expected dense_1 to have 2 dimensions, but got array with shape (62, 1, 100)

100 個のフィーチャすべてについて、次の 1 つのタイム スタンプを予測する必要があります。どのような変更を行う必要がありますか?

4

2 に答える 2

1

各 LSTM ステップの結果を独自に処理したい場合 (LSTM または他の RNN の後に Dense レイヤーを配置する最も一般的な使用法)、次のようにラップする必要があります。

model = Sequential()
model.add(LSTM(units=100, return_sequences= True, input_shape=(x_train.shape[1],X_train.shape[2])))
model.add(LSTM(units=100, return_sequences=True))
model.add(TimeDistributed(Dense(units=100)))

各出力は、Dense レイヤーに独自に提供されます (もちろん、同じレイヤーになります。すべての重みは、その各「インスタンス」間で共有されます)。

于 2019-09-26T20:57:47.923 に答える