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.38k stars 2.84k forks source link

请问:ppyoloe_plus_crn_m_80e_coco.pdparams与ppyoloe_crn_m_obj365_pretrained.pdparams 区别? #7639

Open lifw555 opened 1 year ago

lifw555 commented 1 year ago

问题确认 Search before asking

请提出你的问题 Please ask your question

请问: https://paddledet.bj.bcebos.com/models/ppyoloe_plus_crn_m_80e_coco.pdparamshttps://bj.bcebos.com/v1/paddledet/models/pretrained/ppyoloe_crn_m_obj365_pretrained.pdparams

两个预训练模型有什么不同? ppyoloe_crn_m_obj365_pretrained.pdparams 是 配置文件中默认自带的。 ppyoloe_plus_crn_m_80e_coco.pdparams 是 文档中说明要使用的。

我使用ppyoloe_plus_crn_m_80e_coco.pdparams进行finetune时报错, 而使用ppyoloe_crn_m_obj365_pretrained.pdparams进行finetune时不报错。

其他的配置参数完全一致,就是更换了这个pretrain_weights参数值。

配置文件参考这个https://github.com/PaddlePaddle/PaddleDetection/issues/7622

nemonameless commented 1 year ago

训练用的数据集不一样,head分类层通道数即种类不一样。 obj365数据量远大于coco,所以可以用obj365训好的权重给训coco时做预训练fintune,同理coco训好的权重也可以给几百张几千张的业务数据集做预训练fintune。

这个报错理论上和pretrain_weights 无关,本质还是极端情况会触发这个bug。不加amp安装低版本paddle试试,如2.2.2

lifw555 commented 1 year ago

训练用的数据集不一样,head分类层通道数即种类不一样。 obj365数据量远大于coco,所以可以用obj365训好的权重给训coco时做预训练fintune,同理coco训好的权重也可以给几百张几千张的业务数据集做预训练fintune。

这个报错理论上和pretrain_weights 无关,本质还是极端情况会触发这个bug。不加amp安装低版本paddle试试,如2.2.2

经过测试,使用aistudio上对应的版本,在aistudio上完全可行,换成本地部署,就不行。

使用ppyoloe_crn_m_obj365_pretrained完全没问题。

奇怪。