RT-DETR-R18.yaml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. # Runtime
  2. epoch: 40
  3. log_iter: 10
  4. find_unused_parameters: true
  5. use_gpu: true
  6. use_xpu: false
  7. use_mlu: false
  8. use_npu: false
  9. use_ema: true
  10. ema_decay: 0.9999
  11. ema_decay_type: "exponential"
  12. ema_filter_no_grad: true
  13. save_dir: output
  14. snapshot_epoch: 1
  15. print_flops: false
  16. print_params: false
  17. eval_size: [640, 640]
  18. # Dataset
  19. metric: COCO
  20. num_classes: 80
  21. worker_num: 4
  22. TrainDataset:
  23. name: COCODetDataset
  24. image_dir: images
  25. anno_path: annotations/instance_train.json
  26. dataset_dir: datasets/COCO
  27. data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd']
  28. EvalDataset:
  29. name: COCODetDataset
  30. image_dir: images
  31. anno_path: annotations/instance_val.json
  32. dataset_dir: datasets/COCO
  33. allow_empty: true
  34. TestDataset:
  35. name: ImageFolder
  36. anno_path: annotations/instance_val.json
  37. dataset_dir: datasets/COCO
  38. TrainReader:
  39. sample_transforms:
  40. - Decode: {}
  41. - RandomDistort: {prob: 0.8}
  42. - RandomExpand: {fill_value: [123.675, 116.28, 103.53]}
  43. - RandomCrop: {prob: 0.8}
  44. - RandomFlip: {}
  45. batch_transforms:
  46. - BatchRandomResize: {target_size: [480, 512, 544, 576, 608, 640, 640, 640, 672, 704, 736, 768, 800], random_size: True, random_interp: True, keep_ratio: False}
  47. - NormalizeImage: {mean: [0., 0., 0.], std: [1., 1., 1.], norm_type: none}
  48. - NormalizeBox: {}
  49. - BboxXYXY2XYWH: {}
  50. - Permute: {}
  51. batch_size: 8
  52. shuffle: true
  53. drop_last: true
  54. collate_batch: false
  55. use_shared_memory: true
  56. EvalReader:
  57. sample_transforms:
  58. - Decode: {}
  59. - Resize: {target_size: [640, 640], keep_ratio: False, interp: 2}
  60. - NormalizeImage: {mean: [0., 0., 0.], std: [1., 1., 1.], norm_type: none}
  61. - Permute: {}
  62. batch_size: 4
  63. shuffle: false
  64. drop_last: false
  65. TestReader:
  66. inputs_def:
  67. image_shape: [3, 640, 640]
  68. sample_transforms:
  69. - Decode: {}
  70. - Resize: {target_size: [640, 640], keep_ratio: False, interp: 2}
  71. - NormalizeImage: {mean: [0., 0., 0.], std: [1., 1., 1.], norm_type: none}
  72. - Permute: {}
  73. batch_size: 1
  74. shuffle: false
  75. drop_last: false
  76. # Model
  77. architecture: DETR
  78. pretrain_weights: https://paddledet.bj.bcebos.com/models/pretrained/ResNet18_vd_pretrained.pdparams
  79. norm_type: sync_bn
  80. hidden_dim: 256
  81. use_focal_loss: True
  82. DETR:
  83. backbone: ResNet
  84. neck: HybridEncoder
  85. transformer: RTDETRTransformer
  86. detr_head: DINOHead
  87. post_process: DETRPostProcess
  88. ResNet:
  89. # index 0 stands for res2
  90. depth: 18
  91. variant: d
  92. norm_type: bn
  93. freeze_at: -1
  94. return_idx: [1, 2, 3]
  95. lr_mult_list: [0.1, 0.1, 0.1, 0.1]
  96. num_stages: 4
  97. freeze_stem_only: True
  98. norm_decay: 0.
  99. freeze_norm: false
  100. HybridEncoder:
  101. hidden_dim: 256
  102. use_encoder_idx: [2]
  103. num_encoder_layers: 1
  104. encoder_layer:
  105. name: TransformerLayer
  106. d_model: 256
  107. nhead: 8
  108. dim_feedforward: 1024
  109. dropout: 0.
  110. activation: 'gelu'
  111. expansion: 0.5
  112. depth_mult: 1.0
  113. RTDETRTransformer:
  114. eval_idx: -1
  115. num_queries: 300
  116. position_embed_type: sine
  117. feat_strides: [8, 16, 32]
  118. num_levels: 3
  119. nhead: 8
  120. num_decoder_layers: 3
  121. dim_feedforward: 1024
  122. dropout: 0.0
  123. activation: relu
  124. num_denoising: 100
  125. label_noise_ratio: 0.5
  126. box_noise_scale: 1.0
  127. learnt_init_query: False
  128. DINOHead:
  129. loss:
  130. name: DINOLoss
  131. loss_coeff: {class: 1, bbox: 5, giou: 2}
  132. aux_loss: true
  133. use_vfl: true
  134. matcher:
  135. name: HungarianMatcher
  136. matcher_coeff: {class: 2, bbox: 5, giou: 2}
  137. DETRPostProcess:
  138. num_top_queries: 300
  139. # Optimizer
  140. LearningRate:
  141. base_lr: 0.0001
  142. schedulers:
  143. - !PiecewiseDecay
  144. gamma: 1.0
  145. milestones: [100]
  146. use_warmup: true
  147. - !LinearWarmup
  148. start_factor: 0.001
  149. steps: 100
  150. OptimizerBuilder:
  151. clip_grad_by_norm: 0.1
  152. regularizer: false
  153. optimizer:
  154. type: AdamW
  155. weight_decay: 0.0001
  156. # Export
  157. export:
  158. post_process: true
  159. nms: true
  160. benchmark: false
  161. fuse_conv_bn: false