Python Keras输入数据格式

Python Keras输入数据格式,python,machine-learning,deep-learning,keras,Python,Machine Learning,Deep Learning,Keras,我试图将自己的数据结构传递给Keras中的LSTM层,但模型的训练在早期就失败了 我打算创建一个固定长度的序列,并接收相同大小的输出序列。目前,顺序如下: [0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3] 这是一个列表,然后我使用np.array()将其转换为np数组。标签序列的构建与此类似。我总共有8000个这样的序列,它们的长度都是12 在我的Keras模型中,LSTM是第一层。这需要我将数据的输入形状传递给模型。我试过填充几种形状,但都没有用。为完整起见,以下是我

我试图将自己的数据结构传递给Keras中的LSTM层,但模型的训练在早期就失败了

我打算创建一个固定长度的序列,并接收相同大小的输出序列。目前,顺序如下:

[0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3]
这是一个列表,然后我使用np.array()将其转换为np数组。标签序列的构建与此类似。我总共有8000个这样的序列,它们的长度都是12

在我的Keras模型中,LSTM是第一层。这需要我将数据的输入形状传递给模型。我试过填充几种形状,但都没有用。为完整起见,以下是我的模型的前两行:

model = Sequential()
model.add(LSTM(100, input_shape=(8000, 12)))
model.add(Dense(nb_classes))
model.add(Activation('softmax'))
在训练期间,我遇到了一些麻烦,我碰到了一个职位。这似乎和我想做的很相似。我已经尝试过提供的解决方案,但不知何故,配件仍然崩溃。我得到以下错误:

ValueError: Error when checking input: expected lstm_1_input to have 3 dimensions, but got array with shape (8000, 12)
有什么想法吗

更新: 对于Parthosarathi Mukherjee,我添加了网络的其余部分

model.add(LSTM(100, input_shape(8000, 12)))
改用

model.add(LSTM(100, input_shape(12,1)))

确保在fit之前,您的输入数据具有shape8000 x 12 x 1和not8000 x 12

谢谢您的快速回复!如果我这样做,我仍然会得到一个错误:ValueError:检查目标时出错:预期激活_1具有形状(无,1),但获得具有形状的数组(96000,2)。请在创建网络的位置发布更多代码。我不确定
激活\u 1
从哪里来。我已经添加了模型的其余部分。在我看来,您的网络在每个时间步都需要一个值,因此您应该准备8000 x 12 x1的输入数组。标签序列也应相同。也许是96000 x 2。如果您想要相同大小的输出序列,那么最后一层应该是
TimeDistributed(密集(1,activation='sigmoid'))
。此外,您的LSTM层必须有一个参数,说明
return\u sequences=True
。这似乎不是分类问题,因此您不需要
softmax