Python 同一验证集的Keras中的fit()和evaluate()的val精度不同
我正在使用keras训练堆叠网络; 子模型包括接收v3、resnet50和异常。 在这些子模型中:拟合val精度与评估val精度相同。 但当叠加这些子模型后,我得到了一个非常好的结果,拟合val的精度比评估val的精度高1%。 我将数据拆分为60%列车组20%验证组20%测试组。 我做错了什么 使用验证集设置fit()时:Python 同一验证集的Keras中的fit()和evaluate()的val精度不同,python,keras,stack,Python,Keras,Stack,我正在使用keras训练堆叠网络; 子模型包括接收v3、resnet50和异常。 在这些子模型中:拟合val精度与评估val精度相同。 但当叠加这些子模型后,我得到了一个非常好的结果,拟合val的精度比评估val的精度高1%。 我将数据拆分为60%列车组20%验证组20%测试组。 我做错了什么 使用验证集设置fit()时: Epoch 126/250 216/216 [==============================] - 4s 17ms/step - loss: 0.827
Epoch 126/250
216/216 [==============================] - 4s 17ms/step - loss: 0.8279 - accuracy: 0.6574
Val loss: 0.8272405112231219
Val accuracy: 0.6435185074806213
使用验证集evaluate()时:
Epoch 126/250
216/216 [==============================] - 4s 17ms/step - loss: 0.8279 - accuracy: 0.6574
Val loss: 0.8272405112231219
Val accuracy: 0.6435185074806213
什么是适合和评估?您通过了要修复的培训集,然后通过了要评估的培训集?在这种情况下,您将无法获得相同的值,fit使用批次的运行平均值作为权重更改,evaluate使用固定权重运行历元时打印的度量值是平均值。也就是说,每个批次分别计算,然后除以批次数。之后运行
evaluate()
时,它会进行更精确的计算