如何为LSTM网络训练选择训练数据

时间:2020-04-20 22:25:18

标签: python tensorflow machine-learning keras deep-learning

我基本上是RNN的新手,但是我试图根据记录来预测信号。 我有两组数据A和B-A是原始数据记录,B是A上每个活动事件的二进制标记数据,标记为“ 1”,形状均为(1895700,1)

您能帮我弄清楚x和y火车应该使用什么吗?

我一直在阅读有关此内容,并理解为遍历A并从此处提取x和y。这样做,得到输入形状为x_train-(189555,150,1)y_train-(189555,150,1),但精度为:0.0000e + 00和负损耗。

我的另一种方法是将A用作x_train,将B用作y_train,输入形状为(12638,150,1),但从时期1的第一步开始,精度为:96,损失约为0.10。他们在整个训练过程中变化不大

所以我不确定要输入什么数据

型号:

model = Sequential()
model.add(LSTM(128, dropout=0.5, input_shape=(ts,features), recurrent_dropout=0.4, return_sequences=True))
model.add(LSTM(128, dropout=0.5, input_shape=(ts,features), recurrent_dropout=0.3, return_sequences=True))
model.add(LSTM(64, dropout=0.5, input_shape=(ts,features), recurrent_dropout=0.3, return_sequences=True))
model.add(Dense(features, input_shape=(ts, features), activation="sigmoid"))
model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])

谢谢!

1 个答案:

答案 0 :(得分:0)

您的X_train是代表您的功能的数据。 Y_train是代表X_train功能输出的数据。

您可以通过简单地向拟合函数提供参数validation_split来拆分数据:

model.fit(X_data, Y_data, batch_size=4, epochs=5, verbose=1, validation_split=0.2)

在这种情况下,它将拆分20%的数据以进行验证。