所有的原因可以归结为测试过程中出现了随机的情况,但随机发生的原因不一而论。
一、数据预处理使用随机变换操作
为了使模型更具鲁棒性,训练集数据的预处理往往会使用随机裁剪、随机水平垂直变换、随机仿射变换等数据增强手段,但在测试集数据的预处理过程务必避免随机操作的出现。
这会导致每次输入的数据存在一定的偏差,进而导致模型预测结果的偏差。这种情况下,模型准确率一般会在较小的范围波动。
二、测试过程未开启评估模式
即model.eval(),开启此模式才能使网络中的BN、Dropout等操作失效。
若遇其它情况,会持续添加总结内容!大家若遇到其它情况,也欢迎在评论区留言~