检查输入时出错:预期的lstm_1_input具有3个维度

时间:2020-06-24 07:42:55

标签: python tensorflow keras

我有一个x_test数据:

x_test.shape
Out[11]: (13096, 30)

x_test.size
Out[16]: 392880

当我启动预测时,它会返回错误:

ValueError:检查输入时出错:预期lstm_1_input具有3个维,但数组的形状为(13096,30)

我的代码非常简单,我正在尝试运行预测函数:

test_df= pd.read_csv("Path_data")
model = load_model.("path_model")
Xnew = np.array(test_df)

# make a prediction

predictions = model.predict_classes(Xnew)

模型摘要:

Model: "sequential_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
lstm_1 (LSTM)                (None, 50, 100)           50400     
_________________________________________________________________
dropout_1 (Dropout)          (None, 50, 100)           0         
_________________________________________________________________
lstm_2 (LSTM)                (None, 50)                30200     
_________________________________________________________________
dropout_2 (Dropout)          (None, 50)                0         
_________________________________________________________________
dense_1 (Dense)              (None, 1)                 51        
=================================================================
Total params: 80,651
Trainable params: 80,651
Non-trainable params: 0

有人可以告诉我如何解决此问题? 谢谢

2 个答案:

答案 0 :(得分:1)

您的变量x_test应该具有LSTM层所需的输入尺寸,该层是3D张量,形状为[批处理,时间步长,特征]

答案 1 :(得分:1)

这是尺寸不匹配,模型期望将自己的数据记录记录为数组数组,即,如果您有图像i,则期望np.array([i]),请尝试:

x_train = np.array([ [i] for i in x_train])

这会将尺寸增加1