Python Keras LSTM的输入数据

Python Keras LSTM的输入数据,python,keras,lstm,Python,Keras,Lstm,我学习Keras LSTM–现在尝试理解数据输入形状和准备。例如,我想学习1000个int序列的LSTM。每个序列的长度是5。如果第一个元素为1,则Y为1,否则为0 e、 g.输入顺序->1 0,输出1, 输入序列0输出0。一开始就很简单 我准备数据–1000个样本,5个时间步,1个功能 x_train = np.zeros((1000, 5, 1), dtype=np.int32) x_train[0:500, 0, 0] = 1 x_test = np.zeros((300, 5, 1),

我学习Keras LSTM–现在尝试理解数据输入形状和准备。例如,我想学习1000个int序列的LSTM。每个序列的长度是5。如果第一个元素为1,则Y为1,否则为0 e、 g.输入顺序->1 0,输出1, 输入序列0输出0。一开始就很简单

我准备数据–1000个样本,5个时间步,1个功能

x_train = np.zeros((1000, 5, 1), dtype=np.int32)
x_train[0:500, 0, 0] = 1

x_test = np.zeros((300, 5, 1), dtype=np.int32)
x_test[0:150, 0, 0] = 1

y_train = np.zeros((1000, 1), dtype=np.int32)
y_train[0:500, 0] = 1

y_test = np.zeros((300, 1), dtype=np.int32)
y_test[0:150, 0] = 1
并创建了模型

model = Sequential()
model.add(LSTM(10, input_shape=(5, 1), return_sequences=False, stateful=False))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(x_train, y_train, batch_size=1000)
score, acc = model.evaluate(x_test, y_test, batch_size=300, verbose=0)

Epoch 1/10
1000/1000 [==============================] - 0s - loss: 0.6790 - acc: 1.0000
Epoch 2/10
1000/1000 [==============================] - 0s - loss: 0.6786 - acc: 1.0000
Epoch 3/10
1000/1000 [==============================] - 0s - loss: 0.6782 - acc: 1.0000
Epoch 4/10
1000/1000 [==============================] - 0s - loss: 0.6778 - acc: 1.0000
Epoch 5/10
1000/1000 [==============================] - 0s - loss: 0.6774 - acc: 1.0000
Epoch 6/10
1000/1000 [==============================] - 0s - loss: 0.6770 - acc: 1.0000
Epoch 7/10
1000/1000 [==============================] - 0s - loss: 0.6766 - acc: 1.0000
Epoch 8/10
1000/1000 [==============================] - 0s - loss: 0.6762 - acc: 1.0000
Epoch 9/10
1000/1000 [==============================] - 0s - loss: 0.6757 - acc: 1.0000
Epoch 10/10
1000/1000 [==============================] - 0s - loss: 0.6753 - acc: 1.0000
我感觉我对X或Y数据做了些错事。请仔细阅读代码和输出-我试图按照文档-输入张量形状为[样本、时间步、特征]

所以我有1000个样本,5个时间步,1个功能-对吗

Y日期仅为1000个样本和1个特征–因此为1000x1矩阵

如果在数据准备过程中存在一些误解,请提供建议

如果数据正常,我进一步使用有状态LSTM)