PP-ShiTuV2_rec.yaml 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. # global configs
  2. Global:
  3. checkpoints: null
  4. pretrained_model: null
  5. output_dir: ./output
  6. device: gpu
  7. save_interval: 1
  8. eval_during_train: True
  9. eval_interval: 1
  10. epochs: 100
  11. print_batch_step: 20
  12. use_visualdl: False
  13. eval_mode: retrieval
  14. retrieval_feature_from: features # 'backbone' or 'features'
  15. re_ranking: False
  16. use_dali: False
  17. # used for static mode and model export
  18. image_shape: [3, 224, 224]
  19. save_inference_dir: ./inference
  20. # mixed precision
  21. AMP:
  22. use_amp: False
  23. use_fp16_test: False
  24. scale_loss: 128.0
  25. use_dynamic_loss_scaling: True
  26. use_promote: False
  27. # O1: mixed fp16, O2: pure fp16
  28. level: O1
  29. # model architecture
  30. Arch:
  31. name: RecModel
  32. infer_output_key: features
  33. infer_add_softmax: False
  34. Backbone:
  35. name: PPLCNetV2_base_ShiTu
  36. pretrained: True
  37. use_ssld: True
  38. class_expand: &feat_dim 512
  39. BackboneStopLayer:
  40. name: flatten
  41. Neck:
  42. name: BNNeck
  43. num_features: *feat_dim
  44. weight_attr:
  45. initializer:
  46. name: Constant
  47. value: 1.0
  48. bias_attr:
  49. initializer:
  50. name: Constant
  51. value: 0.0
  52. learning_rate: 1.0e-20 # NOTE: Temporarily set lr small enough to freeze the bias to zero
  53. Head:
  54. name: FC
  55. embedding_size: *feat_dim
  56. class_num: 192612
  57. weight_attr:
  58. initializer:
  59. name: Normal
  60. std: 0.001
  61. bias_attr: False
  62. # loss function config for traing/eval process
  63. Loss:
  64. Train:
  65. - CELoss:
  66. weight: 1.0
  67. epsilon: 0.1
  68. - TripletAngularMarginLoss:
  69. weight: 1.0
  70. feature_from: features
  71. margin: 0.5
  72. reduction: mean
  73. add_absolute: True
  74. absolute_loss_weight: 0.1
  75. normalize_feature: True
  76. ap_value: 0.8
  77. an_value: 0.4
  78. Eval:
  79. - CELoss:
  80. weight: 1.0
  81. Optimizer:
  82. name: Momentum
  83. momentum: 0.9
  84. lr:
  85. name: Cosine
  86. learning_rate: 0.06 # for 8gpu x 256bs
  87. warmup_epoch: 5
  88. regularizer:
  89. name: L2
  90. coeff: 0.00001
  91. # data loader for train and eval
  92. DataLoader:
  93. Train:
  94. dataset:
  95. name: ImageNetDataset
  96. image_root: ./dataset/
  97. cls_label_path: ./dataset/train_reg_all_data_v2.txt
  98. relabel: True
  99. transform_ops:
  100. - DecodeImage:
  101. to_rgb: True
  102. channel_first: False
  103. - ResizeImage:
  104. size: [224, 224]
  105. return_numpy: False
  106. interpolation: bilinear
  107. backend: cv2
  108. - RandFlipImage:
  109. flip_code: 1
  110. - Pad:
  111. padding: 10
  112. backend: cv2
  113. - RandCropImageV2:
  114. size: [224, 224]
  115. - RandomRotation:
  116. prob: 0.5
  117. degrees: 90
  118. interpolation: bilinear
  119. - ResizeImage:
  120. size: [224, 224]
  121. return_numpy: False
  122. interpolation: bilinear
  123. backend: cv2
  124. - NormalizeImage:
  125. scale: 1.0/255.0
  126. mean: [0.485, 0.456, 0.406]
  127. std: [0.229, 0.224, 0.225]
  128. order: hwc
  129. sampler:
  130. name: PKSampler
  131. batch_size: 256
  132. sample_per_id: 4
  133. drop_last: False
  134. shuffle: True
  135. loader:
  136. num_workers: 4
  137. use_shared_memory: True
  138. Eval:
  139. Query:
  140. dataset:
  141. name: ImageNetDataset
  142. image_root: ./dataset/Inshop/
  143. cls_label_path: ./dataset/Inshop/query_list.txt
  144. transform_ops:
  145. - DecodeImage:
  146. to_rgb: True
  147. channel_first: False
  148. - ResizeImage:
  149. size: [224, 224]
  150. return_numpy: False
  151. interpolation: bilinear
  152. backend: cv2
  153. - NormalizeImage:
  154. scale: 1.0/255.0
  155. mean: [0.485, 0.456, 0.406]
  156. std: [0.229, 0.224, 0.225]
  157. order: hwc
  158. sampler:
  159. name: DistributedBatchSampler
  160. batch_size: 64
  161. drop_last: False
  162. shuffle: False
  163. loader:
  164. num_workers: 4
  165. use_shared_memory: True
  166. Gallery:
  167. dataset:
  168. name: ImageNetDataset
  169. image_root: ./dataset/Inshop/
  170. cls_label_path: ./dataset/Inshop/gallery_list.txt
  171. transform_ops:
  172. - DecodeImage:
  173. to_rgb: True
  174. channel_first: False
  175. - ResizeImage:
  176. size: [224, 224]
  177. return_numpy: False
  178. interpolation: bilinear
  179. backend: cv2
  180. - NormalizeImage:
  181. scale: 1.0/255.0
  182. mean: [0.485, 0.456, 0.406]
  183. std: [0.229, 0.224, 0.225]
  184. order: hwc
  185. sampler:
  186. name: DistributedBatchSampler
  187. batch_size: 64
  188. drop_last: False
  189. shuffle: False
  190. loader:
  191. num_workers: 4
  192. use_shared_memory: True
  193. Metric:
  194. Eval:
  195. - Recallk:
  196. topk: [1, 5]
  197. - mAP: {}