同様の質問に続いて、3 つの異なる時系列の多くのステップを予測する必要があるという問題があります。3 つの時系列の過去 7 つの値を入力として与え、そのうちの 1 つの将来の値を 5 つ予測するネットワークを生成することができました。入力x
には次の次元があります。
(500, 7, 3): 500 samples, 7 past time steps, 3 variables/time series)
ターゲットy
には次のディメンションがあります。
(500, 5): 500 samples, 5 future time steps
LSTM ネットワークは次のように定義されます。
model = Sequential()
model.add(LSTM(input_dim=3, output_dim=10, return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(50))
model.add(Dropout(0.2))
model.add(Dense(input_dim=10, output_dim=7))
model.add(Activation('linear'))
model.compile(loss='mae', optimizer='adam')
2 つの時系列の値を予測したい場合はどうすればよいでしょうか?
次のコードを試しました:
inputs = Input(shape=(7,3)) # 7 past steps and variables
m = Dense(64,activation='linear')(inputs)
m = Dense(64,activation='linear')(m)
outputA = Dense(1,activation='linear')(m)
outputB = Dense(1,activation='linear')(m)
m = Model(inputs=[inputs], outputs=[outputA, outputB])
m.compile(optimizer='adam', loss='mae')
m.fit(x,[y1,y2])
と の次元は(500, 5)y1
とy2
同じです。y
しかし、次のエラーが発生します。
"Error when checking target: expected dense_4 to have 3 dimensions, but got array with shape (500, 5)".
とをどのように再形成する必要がy1
ありy2
ますか? または、ネットワークに別の構造を持たせる必要がありますか?