我正在构建我的 lstm 模型来预测比特币价格。我在预测(x_test)时遇到问题。 predict(x_test) 的结果应该是 2d(dimension),
but it is kept in a 3d.
How do I get 2d as a result of 'predict(x_test)'?
在我的模型中
x_train : (405, 7, 1)
y_train : (405,)
x_test : (103, 7, 1)
y_test : (103, 1)
这是我的代码。
#model create
model = Sequential()
model.add(LSTM(7, return_sequences=True, input_shape=(x_train.shape[1], 1))) # input_shape : (7,1)
model.add(LSTM(10, return_sequences=True))
model.add(Dense(25, activation='relu'))
model.add(Dense(90, activation='relu'))
model.add(Dense(25, activation='relu'))
model.add(Dense(1))
# Compile the model
model.compile(optimizer='adam', loss='mean_squared_error',metrics=['accuracy','mae'])
# Predict
prediction=model.predict(x_test)
prediction.shape
这是想要的结果:
我正在尝试搜索谷歌,但找不到问题。
只需删除最后一个 LSTM 层的 return_sequences=True。
所以你的模型将是:
model = Sequential()
model.add(LSTM(7, return_sequences=True, input_shape=(x_train.shape[1], 1))) # input_shape : (7,1)
model.add(LSTM(10))
model.add(Dense(25, activation='relu'))
model.add(Dense(90, activation='relu'))
model.add(Dense(25, activation='relu'))
model.add(Dense(1))