PaddlePaddle / PaddleDetection

Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.
Apache License 2.0
12.79k stars 2.89k forks source link

Transfer Learning #3508

Closed bmfarer closed 3 years ago

bmfarer commented 3 years ago

请问一下开发者大大下一个版本能够增加迁移学习方面的灵活性吗?因为现在就几个参数,在做小样本迁移学习的时候感觉有点回天乏术(〒▽〒)

  1. pretrain_weights的路径为COCO数据集上开源的faster RCNN模型链接,完整模型链接可参考MODEL_ZOO
  2. finetune_exclude_pretrained_params中设置参数字段,如果参数名能够匹配以上参数字段(通配符匹配方式),则在模型加载时忽略该参数。

如果用户需要利用自己的数据进行finetune,模型结构不变,只需要忽略与类别数相关的参数,不同模型类型所对应的忽略参数字段如下表所示:

模型类型 忽略参数字段
Faster RCNN cls_score, bbox_pred
Cascade RCNN cls_score, bbox_pred
Mask RCNN cls_score, bbox_pred, mask_fcn_logits
Cascade-Mask RCNN cls_score, bbox_pred, mask_fcn_logits
RetinaNet retnet_cls_pred_fpn
SSD ^conv2d_
YOLOv3 yolo_output
qingqing01 commented 3 years ago

@FallBlackMagic

静态图的的迁移学习,一种方式是直接加载,shape不匹配的参数可以直接忽略,请看文档:

图片
bmfarer commented 3 years ago

@qingqing01 嗯嗯,主要是我想实现别的迁移学习方法,但是里面似乎没有合适的参数可以设置

qingqing01 commented 3 years ago

@FallBlackMagic 您如果是一些参数能加载的也想忽略,可以把模型里的参数名字打印看下,依据名字指定就行。