Pandas 机器学习模型的Numpy输入大小(输入尺寸与输入尺寸)

Pandas 机器学习模型的Numpy输入大小(输入尺寸与输入尺寸),pandas,numpy,lstm,Pandas,Numpy,Lstm,我正在尝试应用本文中介绍的方法: 但它返回一个关于模型形状的错误: Error when checking model input: the list of Numpy arrays that you are passing to your model is not the size the model expected. Expected to see 1 array(s), but instead got the following list of 160 arrays: 以下是我正在使用

我正在尝试应用本文中介绍的方法: 但它返回一个关于模型形状的错误:

Error when checking model input: the list of Numpy arrays that you are passing to your model is not the size the model expected. Expected to see 1 array(s), but instead got the following list of 160 arrays:
以下是我正在使用的代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from matplotlib.pylab import rcParams
rcParams['figure.figsize']=20,10
from keras.models import Sequential
from keras.layers import LSTM,Dropout,Dense
from sklearn.preprocessing import MinMaxScaler

data=pd.read_excel(r"D:\test.xlsx")

scaler=MinMaxScaler(feature_range=(0,1))
data.index=data.Date
data.drop('Date',axis=1,inplace=True)
final_data = data.values
train_data=final_data[0:200,:]
valid_data=final_data[200:,:]
scaler=MinMaxScaler(feature_range=(0,1))
scaled_data=scaler.fit_transform(final_data)
x_train_data,y_train_data=[],[]
for i in range(40,len(train_data)):
    x_train_data.append(scaled_data[i-40:i,0])
    y_train_data.append(scaled_data[i,0])
# x_train_data = np.array(x_train_data)
# y_train_data = np.array(y_train_data)

lstm_model=Sequential()
lstm_model.add(LSTM(units=50,return_sequences=True,input_shape=(np.shape(x_train_data)[1],1))) #### here the input shape is defined ###
lstm_model.add(LSTM(units=50))
lstm_model.add(Dense(1))
model_data=data[len(data)-len(valid_data)-60:].values
model_data=model_data.reshape(-1,1)
model_data=scaler.transform(model_data)

lstm_model.compile(loss='mean_squared_error',optimizer='adam')
lstm_model.fit((x_train_data),y_train_data,epochs=1,batch_size=1,verbose=2)
## the error is returned at this line 
X_test=[]
for i in range(60,model_data.shape[0]):
    X_test.append(model_data[i-60:i,0])
X_test=np.array(X_test)
X_test=np.reshape(X_test,(X_test.shape[0],X_test.shape[1],1))

predicted_stock_price=lstm_model.predict(X_test)
predicted_stock_price=scaler.inverse_transform(predicted_stock_price)
train_data=data[:200]
valid_data=data[200:]
valid_data['Predictions']=predicted_stock_price
plt.plot(train_data["Close"])
plt.plot(valid_data[['Close',"Predictions"]])
错误与输入的形状有关。以下是我正在使用的输入: ... 我用
input\u dim
input\u shape
测试了不同的东西,但似乎我遗漏了一些东西。。。。有什么帮助吗