yolov5_config.py 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. # YOLOv5 Config
  2. yolov5_cfg = {
  3. 'yolov5_nano':{
  4. # input
  5. 'trans_type': 'yolov5_weak',
  6. 'multi_scale': [0.5, 1.0],
  7. # model
  8. 'backbone': 'cspdarknet',
  9. 'pretrained': True,
  10. 'bk_act': 'silu',
  11. 'bk_norm': 'BN',
  12. 'bk_dpw': False,
  13. 'stride': [8, 16, 32], # P3, P4, P5
  14. 'width': 0.25,
  15. 'depth': 0.34,
  16. # fpn
  17. 'fpn': 'yolo_pafpn',
  18. 'fpn_act': 'silu',
  19. 'fpn_norm': 'BN',
  20. 'fpn_depthwise': False,
  21. # head
  22. 'head': 'decoupled_head',
  23. 'head_act': 'silu',
  24. 'head_norm': 'BN',
  25. 'num_cls_head': 2,
  26. 'num_reg_head': 2,
  27. 'head_depthwise': False,
  28. 'anchor_size': [[10, 13], [16, 30], [33, 23], # P3
  29. [30, 61], [62, 45], [59, 119], # P4
  30. [116, 90], [156, 198], [373, 326]], # P5
  31. # matcher
  32. 'anchor_thresh': 4.0,
  33. # loss weight
  34. 'loss_obj_weight': 1.0,
  35. 'loss_cls_weight': 1.0,
  36. 'loss_box_weight': 5.0,
  37. # training configuration
  38. 'no_aug_epoch': 10,
  39. # optimizer
  40. 'optimizer': 'sgd', # optional: sgd, adam, adamw
  41. 'momentum': 0.937, # SGD: 0.937; AdamW: invalid
  42. 'weight_decay': 5e-4, # SGD: 5e-4; AdamW: 5e-2
  43. 'clip_grad': 10, # SGD: 10.0; AdamW: -1
  44. # model EMA
  45. 'ema_decay': 0.9999, # SGD: 0.9999; AdamW: 0.9998
  46. 'ema_tau': 2000,
  47. # lr schedule
  48. 'scheduler': 'linear',
  49. 'lr0': 0.01, # SGD: 0.01; AdamW: 0.004
  50. 'lrf': 0.01, # SGD: 0.01; AdamW: 0.05
  51. 'warmup_momentum': 0.8,
  52. 'warmup_bias_lr': 0.1,
  53. },
  54. 'yolov5_small':{
  55. # input
  56. 'trans_type': 'yolov5_weak',
  57. 'multi_scale': [0.5, 1.0],
  58. # model
  59. 'backbone': 'cspdarknet',
  60. 'pretrained': True,
  61. 'bk_act': 'silu',
  62. 'bk_norm': 'BN',
  63. 'bk_dpw': False,
  64. 'stride': [8, 16, 32], # P3, P4, P5
  65. 'width': 0.50,
  66. 'depth': 0.34,
  67. # fpn
  68. 'fpn': 'yolo_pafpn',
  69. 'fpn_act': 'silu',
  70. 'fpn_norm': 'BN',
  71. 'fpn_depthwise': False,
  72. # head
  73. 'head': 'decoupled_head',
  74. 'head_act': 'silu',
  75. 'head_norm': 'BN',
  76. 'num_cls_head': 2,
  77. 'num_reg_head': 2,
  78. 'head_depthwise': False,
  79. 'anchor_size': [[10, 13], [16, 30], [33, 23], # P3
  80. [30, 61], [62, 45], [59, 119], # P4
  81. [116, 90], [156, 198], [373, 326]], # P5
  82. # matcher
  83. 'anchor_thresh': 4.0,
  84. # loss weight
  85. 'loss_obj_weight': 1.0,
  86. 'loss_cls_weight': 1.0,
  87. 'loss_box_weight': 5.0,
  88. # training configuration
  89. 'no_aug_epoch': 10,
  90. # optimizer
  91. 'optimizer': 'sgd', # optional: sgd, adam, adamw
  92. 'momentum': 0.937, # SGD: 0.937; AdamW: invalid
  93. 'weight_decay': 5e-4, # SGD: 5e-4; AdamW: 5e-2
  94. 'clip_grad': 10, # SGD: 10.0; AdamW: -1
  95. # model EMA
  96. 'ema_decay': 0.9999, # SGD: 0.9999; AdamW: 0.9998
  97. 'ema_tau': 2000,
  98. # lr schedule
  99. 'scheduler': 'linear',
  100. 'lr0': 0.01, # SGD: 0.01; AdamW: 0.004
  101. 'lrf': 0.01, # SGD: 0.01; AdamW: 0.05
  102. 'warmup_momentum': 0.8,
  103. 'warmup_bias_lr': 0.1,
  104. },
  105. 'yolov5_medium':{
  106. # input
  107. 'trans_type': 'yolov5_strong',
  108. 'multi_scale': [0.5, 1.0],
  109. # model
  110. 'backbone': 'cspdarknet',
  111. 'pretrained': True,
  112. 'bk_act': 'silu',
  113. 'bk_norm': 'BN',
  114. 'bk_dpw': False,
  115. 'stride': [8, 16, 32], # P3, P4, P5
  116. 'width': 0.75,
  117. 'depth': 0.67,
  118. # fpn
  119. 'fpn': 'yolo_pafpn',
  120. 'fpn_act': 'silu',
  121. 'fpn_norm': 'BN',
  122. 'fpn_depthwise': False,
  123. # head
  124. 'head': 'decoupled_head',
  125. 'head_act': 'silu',
  126. 'head_norm': 'BN',
  127. 'num_cls_head': 2,
  128. 'num_reg_head': 2,
  129. 'head_depthwise': False,
  130. 'anchor_size': [[10, 13], [16, 30], [33, 23], # P3
  131. [30, 61], [62, 45], [59, 119], # P4
  132. [116, 90], [156, 198], [373, 326]], # P5
  133. # matcher
  134. 'anchor_thresh': 4.0,
  135. # loss weight
  136. 'loss_obj_weight': 1.0,
  137. 'loss_cls_weight': 1.0,
  138. 'loss_box_weight': 5.0,
  139. # training configuration
  140. 'no_aug_epoch': 10,
  141. # optimizer
  142. 'optimizer': 'sgd', # optional: sgd, adam, adamw
  143. 'momentum': 0.937, # SGD: 0.937; AdamW: invalid
  144. 'weight_decay': 5e-4, # SGD: 5e-4; AdamW: 5e-2
  145. 'clip_grad': 10, # SGD: 10.0; AdamW: -1
  146. # model EMA
  147. 'ema_decay': 0.9999, # SGD: 0.9999; AdamW: 0.9998
  148. 'ema_tau': 2000,
  149. # lr schedule
  150. 'scheduler': 'linear',
  151. 'lr0': 0.01, # SGD: 0.01; AdamW: 0.004
  152. 'lrf': 0.01, # SGD: 0.01; AdamW: 0.05
  153. 'warmup_momentum': 0.8,
  154. 'warmup_bias_lr': 0.1,
  155. },
  156. 'yolov5_large':{
  157. # input
  158. 'trans_type': 'yolov5_strong',
  159. 'multi_scale': [0.5, 1.0],
  160. # model
  161. 'backbone': 'cspdarknet',
  162. 'pretrained': True,
  163. 'bk_act': 'silu',
  164. 'bk_norm': 'BN',
  165. 'bk_dpw': False,
  166. 'stride': [8, 16, 32], # P3, P4, P5
  167. 'width': 1.0,
  168. 'depth': 1.0,
  169. # fpn
  170. 'fpn': 'yolo_pafpn',
  171. 'fpn_act': 'silu',
  172. 'fpn_norm': 'BN',
  173. 'fpn_depthwise': False,
  174. # head
  175. 'head': 'decoupled_head',
  176. 'head_act': 'silu',
  177. 'head_norm': 'BN',
  178. 'num_cls_head': 2,
  179. 'num_reg_head': 2,
  180. 'head_depthwise': False,
  181. 'anchor_size': [[10, 13], [16, 30], [33, 23], # P3
  182. [30, 61], [62, 45], [59, 119], # P4
  183. [116, 90], [156, 198], [373, 326]], # P5
  184. # matcher
  185. 'anchor_thresh': 4.0,
  186. # loss weight
  187. 'loss_obj_weight': 1.0,
  188. 'loss_cls_weight': 1.0,
  189. 'loss_box_weight': 5.0,
  190. # training configuration
  191. 'no_aug_epoch': 10,
  192. # optimizer
  193. 'optimizer': 'sgd', # optional: sgd, adam, adamw
  194. 'momentum': 0.937, # SGD: 0.937; AdamW: invalid
  195. 'weight_decay': 5e-4, # SGD: 5e-4; AdamW: 5e-2
  196. 'clip_grad': 10, # SGD: 10.0; AdamW: -1
  197. # model EMA
  198. 'ema_decay': 0.9999, # SGD: 0.9999; AdamW: 0.9998
  199. 'ema_tau': 2000,
  200. # lr schedule
  201. 'scheduler': 'linear',
  202. 'lr0': 0.01, # SGD: 0.01; AdamW: 0.004
  203. 'lrf': 0.01, # SGD: 0.01; AdamW: 0.05
  204. 'warmup_momentum': 0.8,
  205. 'warmup_bias_lr': 0.1,
  206. },
  207. 'yolov5_huge':{
  208. # input
  209. 'trans_type': 'yolov5_strong',
  210. 'multi_scale': [0.5, 1.0],
  211. # model
  212. 'backbone': 'cspdarknet',
  213. 'pretrained': True,
  214. 'bk_act': 'silu',
  215. 'bk_norm': 'BN',
  216. 'bk_dpw': False,
  217. 'stride': [8, 16, 32], # P3, P4, P5
  218. 'width': 1.25,
  219. 'depth': 1.34,
  220. # fpn
  221. 'fpn': 'yolo_pafpn',
  222. 'fpn_act': 'silu',
  223. 'fpn_norm': 'BN',
  224. 'fpn_depthwise': False,
  225. # head
  226. 'head': 'decoupled_head',
  227. 'head_act': 'silu',
  228. 'head_norm': 'BN',
  229. 'num_cls_head': 2,
  230. 'num_reg_head': 2,
  231. 'head_depthwise': False,
  232. 'anchor_size': [[10, 13], [16, 30], [33, 23], # P3
  233. [30, 61], [62, 45], [59, 119], # P4
  234. [116, 90], [156, 198], [373, 326]], # P5
  235. # matcher
  236. 'anchor_thresh': 4.0,
  237. # loss weight
  238. 'loss_obj_weight': 1.0,
  239. 'loss_cls_weight': 1.0,
  240. 'loss_box_weight': 5.0,
  241. # training configuration
  242. 'no_aug_epoch': 10,
  243. # optimizer
  244. 'optimizer': 'sgd', # optional: sgd, adam, adamw
  245. 'momentum': 0.937, # SGD: 0.937; AdamW: invalid
  246. 'weight_decay': 5e-4, # SGD: 5e-4; AdamW: 5e-2
  247. 'clip_grad': 10, # SGD: 10.0; AdamW: -1
  248. # model EMA
  249. 'ema_decay': 0.9999, # SGD: 0.9999; AdamW: 0.9998
  250. 'ema_tau': 2000,
  251. # lr schedule
  252. 'scheduler': 'linear',
  253. 'lr0': 0.01, # SGD: 0.01; AdamW: 0.004
  254. 'lrf': 0.01, # SGD: 0.01; AdamW: 0.05
  255. 'warmup_momentum': 0.8,
  256. 'warmup_bias_lr': 0.1,
  257. },
  258. }