LSTM:我如何获得 predict(x_test) 作为 2d

问题描述 投票:0回答:1

我正在构建我的 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

这是想要的结果:

  • 'predict(x_test)' 的结果是 2d 作为 (103, 1)

我正在尝试搜索谷歌,但找不到问题。

python tensorflow machine-learning deep-learning lstm
1个回答
0
投票

只需删除最后一个 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))
© www.soinside.com 2019 - 2024. All rights reserved.