シーケンスがあり、残りのシーケンスを予測するために可能な限り単純な LSTM を実行したいと考えています。つまり、前のステップのみを使用して次のステップを予測し、さらにステップを追加することから始めたいということです。予測値も入力として使用したい。だから私が望むのは、Keras LSTMを理解するという回答に記載されているように、多対多を達成することだと思います。
stackoverflow のトピックに関する他の質問を読みましたが、それでも機能させることができませんでした。私のコードでは、https: //machinelearningmastery.com/time-series-prediction-lstm-recurrent-neural-networks-python-keras/ のチュートリアルと関数 create_dataset を使用して、シフトのみで 2 つの配列を作成しています。ワンステップ。
ここに私のコードと私が得たエラーがあります。
"Here I'm scaling my data as advised"
scaler = MinMaxScaler(feature_range=(0, 1))
Rot = scaler.fit_transform(Rot)
"I'm creating the model using batch_size=1 but I'm not sure why this is necessary"
batch_size = 1
model = Sequential()
model.add(LSTM(1,batch_input_shape=(batch_size,1,1),stateful=True,return_sequences=True,input_shape=(None,1)))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
"I want to use only the previous value for now"
look_back = 1
"as len(Rot) = 41000 I'm taking 36000 for training"
train_size = 36000
X,Y = create_dataset(Rot[:train_size,:],look_back)
X = numpy.reshape(X,(X.shape[0], X.shape[1], 1))
Y = numpy.reshape(Y,(X.shape[0], X.shape[1], 1))
And now I train my network as advised by @Daniel Möller.
epochs = 10
for epoch in range(epochs):
model.reset_states()
model.train_on_batch(X,Y)
" And I get this error "
" PartialTensorShape: Incompatible shapes during merge: [35998,1] vs. [1,1]
[[{{node lstm_11/TensorArrayStack/TensorArrayGatherV3}}]]."
上記のトピックのようにすべてを行ったように見えるのに、なぜこのようなエラーが発生するのか知っていますか?