svtrv2_lnconv_smtr_gtc_stream.yml 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. Global:
  2. device: gpu
  3. epoch_num: 60
  4. log_smooth_window: 20
  5. print_batch_step: 10
  6. output_dir: ./output/rec/svtrv2_lnconv_smtr_gtc_stream
  7. save_epoch_step: [15, 1]
  8. # evaluation is run every 2000 iterations
  9. eval_batch_step: [0, 500]
  10. eval_epoch_step: [0, 1]
  11. cal_metric_during_train: True
  12. pretrained_model:
  13. checkpoints:
  14. use_tensorboard: false
  15. infer_img:
  16. # for data or label process
  17. character_dict_path: &character_dict_path ./tools/utils/EN_symbol_dict.txt # 96en
  18. # ./tools/utils/ppocr_keys_v1.txt # ch
  19. max_text_length: &max_text_length 25
  20. use_space_char: &use_space_char False
  21. save_res_path: ./output/rec/predicts_smtr.txt
  22. use_amp: True
  23. distributed: true
  24. grad_clip_val: 20
  25. Optimizer:
  26. name: AdamW
  27. lr: 0.00065
  28. weight_decay: 0.05
  29. filter_bias_and_bn: True
  30. LRScheduler:
  31. name: OneCycleLR
  32. warmup_epoch: 5 # pct_start 0.075*20 = 1.5ep
  33. cycle_momentum: False
  34. Architecture:
  35. model_type: rec
  36. algorithm: BGPD
  37. in_channels: 3
  38. Transform:
  39. Encoder:
  40. name: SVTRv2LNConvTwo33
  41. use_pos_embed: False
  42. out_channels: 256
  43. dims: [128, 256, 384]
  44. depths: [6, 6, 6]
  45. num_heads: [4, 8, 12]
  46. mixer: [['Conv','Conv','Conv','Conv','Conv','Conv'],['Conv','Conv','FGlobal','Global','Global','Global'],['Global','Global','Global','Global','Global','Global']]
  47. local_k: [[5, 5], [5, 5], [-1, -1]]
  48. sub_k: [[1, 1], [2, 1], [-1, -1]]
  49. last_stage: false
  50. feat2d: True
  51. Decoder:
  52. name: GTCDecoder
  53. infer_gtc: True
  54. detach: False
  55. gtc_decoder:
  56. name: SMTRDecoder
  57. num_layer: 1
  58. ds: True
  59. max_len: *max_text_length
  60. next_mode: &next True
  61. sub_str_len: &subsl 5
  62. infer_aug: False
  63. ctc_decoder:
  64. name: RCTCDecoder
  65. Loss:
  66. name: GTCLoss
  67. ctc_weight: 0.25
  68. gtc_loss:
  69. name: SMTRLoss
  70. PostProcess:
  71. name: GTCLabelDecode
  72. gtc_label_decode:
  73. name: SMTRLabelDecode
  74. next_mode: *next
  75. character_dict_path: *character_dict_path
  76. use_space_char: *use_space_char
  77. only_gtc: True
  78. Metric:
  79. name: RecMetric
  80. main_indicator: acc
  81. is_filter: True
  82. stream: True
  83. Train:
  84. dataset:
  85. name: RatioDataSetTVResize
  86. ds_width: True
  87. padding: false
  88. data_dir_list: ['../Union14M-L-LMDB-Filtered/filter_train_challenging',
  89. '../Union14M-L-LMDB-Filtered/filter_train_hard',
  90. '../Union14M-L-LMDB-Filtered/filter_train_medium',
  91. '../Union14M-L-LMDB-Filtered/filter_train_normal',
  92. '../Union14M-L-LMDB-Filtered/filter_train_easy',
  93. ]
  94. transforms:
  95. - DecodeImagePIL: # load image
  96. img_mode: RGB
  97. - PARSeqAugPIL:
  98. - SMTRLabelEncode: # Class handling label
  99. sub_str_len: *subsl
  100. character_dict_path: *character_dict_path
  101. use_space_char: *use_space_char
  102. max_text_length: *max_text_length
  103. - KeepKeys:
  104. keep_keys: ['image', 'label', 'label_subs', 'label_next', 'length_subs',
  105. 'label_subs_pre', 'label_next_pre', 'length_subs_pre', 'length'] # dataloader will return list in this order
  106. sampler:
  107. name: RatioSampler
  108. scales: [[128, 32]] # w, h
  109. # divide_factor: to ensure the width and height dimensions can be devided by downsampling multiple
  110. first_bs: &bs 256
  111. fix_bs: false
  112. divided_factor: [4, 16] # w, h
  113. is_training: True
  114. loader:
  115. shuffle: True
  116. batch_size_per_card: *bs
  117. drop_last: True
  118. max_ratio: &max_ratio 12
  119. num_workers: 4
  120. Eval:
  121. dataset:
  122. name: SimpleDataSet
  123. data_dir: ../ltb/
  124. label_file_list: ['../ltb/ultra_long_70_list.txt']
  125. transforms:
  126. - DecodeImagePIL: # load image
  127. img_mode: RGB
  128. - GTCLabelEncode: # Class handling label
  129. gtc_label_encode:
  130. name: ARLabelEncode
  131. character_dict_path: *character_dict_path
  132. use_space_char: *use_space_char
  133. max_text_length: *max_text_length
  134. - SliceTVResize:
  135. image_shape: [32, 128]
  136. padding: False
  137. max_ratio: 4
  138. - KeepKeys:
  139. keep_keys: ['image', 'label', 'length', 'ctc_label', 'ctc_length'] # dataloader will return list in this order
  140. loader:
  141. shuffle: False
  142. drop_last: False
  143. batch_size_per_card: 1
  144. num_workers: 2