PaddleDetection不支持加载检测网络header相关参数
Created by: soldier828
-
问题描述:PaddleDetection的配置文件直接加载骨干网络的预训练模型。如果单纯训练COCO任务,那么让检测头权重随机初始化很合理。实际中,一般是使用COCO训练好的整体网络再去finetune其他任务,效果会更好。
-
对比实验:分别使用paddle原始的yolov3和PaddleDetection的yolov3,训练同一个任务(只有一个类别的检测任务),前者比后者map高0.02左右(前者0.81,后者0.79)。推测是加载权重的差异导致的,paddle原始的yolov3可以加载整个网络(backbone+yolov3检测头)的权重,PaddleDetection默认只加载backbone的权重。
-
参考code链接: PaddleDetection: https://github.com/PaddlePaddle/models/blob/ad1a917fd8588931eff310f8bc8962e2c02eecaf/PaddleCV/PaddleDetection/configs/yolov3_darknet.yml#L11 paddle原始的yolov3:https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/yolov3 最下面的「模型fine-tune」方式