我在keras(tensorflow后端)中创建了一个简单的前馈网络,这是我的优化器:

sgd = SGD(lr=LEARNING_RATE)
model.compile(loss='binary_crossentropy',                               
                  optimizer=sgd,                                            
                  metrics=['accuracy'])

我正在尝试训练二元分类问题的模型,因此我的输出格式为[0,1]或[1,0] .

我有一个模型检查指针,在这个时代之后保存了模型:

8812/8812 [==============================] - 0s 35us/step - loss: 0.0076 - 
acc: 0.9994 - val_loss: 0.0010 - val_acc: 0.9995

之后,我在模型训练的完全相同的数据上调用了 model.predict ,得到了以下输出

11016/11016 [==============================] - 0s 22us/step
Classifier accuracy: 0.935003631082

我打印了 model.predict 输出的 accuracy 索引并得到了一些看似错误的内容 . (请注意,在培训期间,我的数据中有20%用作验证,因此 0.8 * 11016 = 8812

该模型如何仅对其先前预测的数据具有93%的准确度,准确率为99.9%?