近期很流行的一些检测模型如YOLOv5和YOLOX都包含了很多的tricks,如数据增强(MixUp, Mosaic)等,其中EMA也是一种常采用的trick。EMA全称为Exponential Moving Average,最早是在TensorFlow中出现(具体实现为tf.train.ExponentialMovingAverage),简单来说,在模型训练过程中对模型参数计算指数移动平均,得到的模型参数要比最后训练得到的模型参数在效果上可能要好一点。从某种意义上来看,EMA有点像模型集成,但是它在测试时不需要额外的负担,在训练过程只是多消耗一份显存(多一份模型参数)以及训练过程稍多一点开销(对参数进行移动平均,耗时很小)。