Keras - 验证准确性与LSTM中的自测精度不匹配?

时间:2018-04-13 22:16:27

标签: python keras generator lstm

在两个时期之后,我的模型的验证准确性显示.30,但是当我使用model.predict_generator返回预测类时,并且我自己测量准确度 - 准确度低得多,约为.18。

为什么这些方法会返回不同的精度?我相信这可能与我对timeseriesgenerator的实施或理解有关。



data_gen_train = sequence.TimeseriesGenerator(X, y_ct, timesteps, sampling_rate=1, stride=1, start_index=0, end_index=len(y), batch_size=batch_size)
data_gen_test = sequence.TimeseriesGenerator(X_ho, y_ho_ct, timesteps, sampling_rate=1, stride=1, start_index=0, end_index=len(y), batch_size=batch_size)

model = Sequential()
model.add(LSTM(20, stateful=True, batch_input_shape=(batch_size, timesteps, data_dim)))
model.add(Dense(9, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer= 'Nadam', metrics=['accuracy'])
model.fit_generator(data_gen_train, validation_data=data_gen_test, epochs=epochs, shuffle=False, validation_steps= len(y_ho) //batch_size)
y_pred = model.predict_generator(data_gen_test, steps= len(y_ho)//batch_size)




enter image description here

1 个答案:

答案 0 :(得分:0)

我找到了上述问题的答案。精度测量的差异是由于pred和地面实况数据集相对于彼此移位。应该在这里使用Keras的pad_sequences来避免这个问题。