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.73k stars 2.88k forks source link

RT-DETR的N和tiny配置,以及学习率等配置 #8379

Open sdreamforchen opened 1 year ago

sdreamforchen commented 1 year ago

是否愿意提交PR Are you willing to submit a PR?

sdreamforchen commented 1 year ago

您好!很多应用场景其实N和Tiny级别的算法就够用了。大佬可否分享下,这两个级别的参数配置多少呢? 我自己的N级别的配置如下: ResNet: depth: 18 variant: d return_idx: [1, 2, 3] freeze_at: -1 freeze_norm: false norm_decay: 0.

HybridEncoder: hidden_dim: 192 use_encoder_idx: [2] num_encoder_layers: 1 encoder_layer: name: TransformerLayer d_model: 192 nhead: 8 dim_feedforward: 512 dropout: 0. activation: 'gelu' expansion: 0.5 depth_mult: 1.0

RTDETRTransformer: eval_idx: -1 num_decoder_layers: 3 另手动将backbone的resnet部分最后输出为128通道。经测试精度不算很好,应该和学习率、epoch(80)也有关系。 麻烦大佬分享一下配置,万分感谢!

lyuwenyu commented 1 year ago

目前这个是最小的 再小的没有了 https://github.com/PaddlePaddle/PaddleDetection/blob/develop/configs/rtdetr/rtdetr_r18vd_6x_coco.yml

再小的有几个位置可以调一调

  1. HybridEncoder.depth_mult 可以改成0.67或者 0.33试一下
  2. 修理完成之后,推理时候可以调一下 eval_idx 比如 -2
sdreamforchen commented 1 year ago

感谢大佬回复! HGnet或者ResNet部分不需要调整吗? 我想获取传统yolo系列N和tiny级别的算法。 另外,因为目前训练COCO是用了预训练模型的,我理解,如果您能分享下训练object365的学习率等配置,是不是从0开始训练COCO也会更好

lyuwenyu commented 7 months ago

backbone有预训练一般不调整 更小的话去尝试换更小的backbone 比如mobilenet等等