Python 熊猫数据帧的Keras LSTM形状

Python 熊猫数据帧的Keras LSTM形状,python,machine-learning,keras,lstm,Python,Machine Learning,Keras,Lstm,我正在玩机器学习,并试图跟随一些例子,但我一直在尝试将我的数据放入Keras LSTM层 我在Pandas数据框中有一些股票行情数据,每隔15分钟用ohlc和每行的其他指标进行重采样 我的代码如下。df是我的数据帧: x = df.iloc[:, :-1].values y = df.iloc[:, -1:].values dimof_input = x.shape[1] dimof_output = len(set(y.flat)) model = Sequential() model.a

我正在玩机器学习,并试图跟随一些例子,但我一直在尝试将我的数据放入Keras LSTM层

我在Pandas数据框中有一些股票行情数据,每隔15分钟用ohlc和每行的其他指标进行重采样

我的代码如下。df是我的数据帧:

x = df.iloc[:, :-1].values
y = df.iloc[:, -1:].values

dimof_input = x.shape[1]
dimof_output = len(set(y.flat))

model = Sequential()
model.add(LSTM(4, input_dim=dimof_input, return_sequences=True))
model.compile(loss='mse', optimizer='rmsprop')

model.fit(x, y, nb_epoch=1, batch_size=1, verbose=2)
当我尝试健身时,我得到:

Error when checking input: expected lstm_16_input to have 3 dimensions, 
but got array with shape (33, 100)
我从其他地方的例子中复制了这一点。我不太明白如何在这个模型中获得正确的数据形状。有人能帮忙吗

感谢加载。

输入形状

具有形状批次大小、时间步长、输入尺寸的三维张量,具有形状批次大小、输出尺寸的可选二维张量。从…起 您指定了input_dim=dimof_input。模型期望三维张量作为输入,但得到二维张量。如果您参考正在实施的教程,我可能会更多地介绍问题的原因。 您可以尝试按以下方式重塑输入数据:

x = x.reshape(x.shape[0], 1, x.shape[1])

此外,还可以找到有关Keras LSTM图层输入数据的一些信息。

您使用LSTM究竟想实现什么?我将学习一些股票价格预测教程。主要的是,这只是一个需要处理的问题,而不是任何严肃的事情。好吧。。。也许这与你的dimof_输入有关,你可以通过x.shape[1]得到这个输入。。。x的形状是什么?通常我只是在没有索引的情况下做x.shape…@Ludo你找到答案了吗?想看看如何从df到3D张量…谢谢!现在尝试建议的重塑将错误更改为:ValueError:检查输入时出错:预期lstm_17_输入的形状为None,None,1,但得到了形状为33,1100的数组。我想我一定从根本上误解了这些输入形状的工作原理。我现在已经设法失去了我一直遵循的教程。让我试试找。谢谢你的帮助。