我试图预测使用以前的20个值时间序列的下一个值。下面是我的代码示例:的时间序列预测使用Keras LSTM:维错误号:预计3,拿到了2形状
X_train.shape
是(15015, 20)
Y_train.shape
是(15015,)
EMB_SIZE = 1
HIDDEN_RNN = 3
model = Sequential()
model.add(LSTM(input_shape = (EMB_SIZE,), input_dim=EMB_SIZE, output_dim=HIDDEN_RNN, return_sequences=True))
model.add(LSTM(input_shape = (EMB_SIZE,), input_dim=EMB_SIZE, output_dim=HIDDEN_RNN, return_sequences=False))
model.add(Dense(1))
model.add(Activation('softmax'))
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
model.fit(X_train,
Y_train,
nb_epoch=5,
batch_size = 128,
verbose=1,
validation_split=0.1)
score = model.evaluate(X_test, Y_test, batch_size=128)
print score
虽然当我跑我的代码,我得到了以下错误:
TypeError: ('Bad input argument to theano function with name "/usr/local/lib/python2.7/dist-packages/keras/backend/theano_backend.py:484" at index 0(0-based)', 'Wrong number of dimensions: expected 3, got 2 with shape (32, 20).')
我试图在这篇文章中复制结果:neural networks for algorithmic trading。这里是一个链接到混帐回购协议:link
这似乎是一个概念上的错误。请发布任何资料,以便我可以更好地了解LSTMS以进行时间序列预测。另外请解释我如何解决这个错误,以便我可以重现上述文章中提到的结果。