ch_SVTRv2_rec.yaml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. Global:
  2. debug: false
  3. use_gpu: true
  4. epoch_num: 200
  5. log_smooth_window: 20
  6. print_batch_step: 10
  7. save_model_dir: ./output/rec_svtrv2_ch
  8. save_epoch_step: 10
  9. eval_batch_step: [0, 1000]
  10. cal_metric_during_train: False
  11. pretrained_model: https://paddleocr.bj.bcebos.com/pretrained/ch_SVTRv2_rec_server_trained.pdparams
  12. checkpoints:
  13. save_inference_dir:
  14. use_visualdl: false
  15. infer_img: doc/imgs_words/ch/word_1.jpg
  16. character_dict_path: ppocr/utils/ppocr_keys_v1.txt
  17. max_text_length: &max_text_length 25
  18. infer_mode: false
  19. use_space_char: true
  20. distributed: true
  21. save_res_path: ./output/rec/predicts_svrtv2.txt
  22. d2s_train_image_shape: [3,48,320]
  23. Optimizer:
  24. name: AdamW
  25. beta1: 0.9
  26. beta2: 0.999
  27. epsilon: 1.e-8
  28. weight_decay: 0.05
  29. no_weight_decay_name: norm
  30. one_dim_param_no_weight_decay: True
  31. lr:
  32. name: Cosine
  33. learning_rate: 0.001 # 8gpus 192bs
  34. warmup_epoch: 5
  35. Architecture:
  36. model_type: rec
  37. algorithm: SVTR_HGNet
  38. Transform:
  39. Backbone:
  40. name: SVTRv2
  41. use_pos_embed: False
  42. dims: [128, 256, 384]
  43. depths: [6, 6, 6]
  44. num_heads: [4, 8, 12]
  45. mixer: [['Conv','Conv','Conv','Conv','Conv','Conv'],['Conv','Conv','Global','Global','Global','Global'],['Global','Global','Global','Global','Global','Global']]
  46. local_k: [[5, 5], [5, 5], [-1, -1]]
  47. sub_k: [[2, 1], [2, 1], [-1, -1]]
  48. last_stage: False
  49. use_pool: True
  50. Head:
  51. name: MultiHead
  52. head_list:
  53. - CTCHead:
  54. Neck:
  55. name: svtr
  56. dims: 256
  57. depth: 2
  58. hidden_dims: 256
  59. kernel_size: [1, 3]
  60. use_guide: True
  61. Head:
  62. fc_decay: 0.00001
  63. - NRTRHead:
  64. nrtr_dim: 384
  65. max_text_length: *max_text_length
  66. num_decoder_layers: 2
  67. Loss:
  68. name: MultiLoss
  69. loss_config_list:
  70. - CTCLoss:
  71. - NRTRLoss:
  72. PostProcess:
  73. name: CTCLabelDecode
  74. Metric:
  75. name: RecMetric
  76. main_indicator: acc
  77. Train:
  78. dataset:
  79. name: MultiScaleDataSet
  80. ds_width: false
  81. data_dir: ./train_data/
  82. ext_op_transform_idx: 1
  83. label_file_list:
  84. - ./train_data/train_list.txt
  85. transforms:
  86. - DecodeImage:
  87. img_mode: BGR
  88. channel_first: false
  89. - RecAug:
  90. - MultiLabelEncode:
  91. gtc_encode: NRTRLabelEncode
  92. - KeepKeys:
  93. keep_keys:
  94. - image
  95. - label_ctc
  96. - label_gtc
  97. - length
  98. - valid_ratio
  99. sampler:
  100. name: MultiScaleSampler
  101. scales: [[320, 32], [320, 48], [320, 64]]
  102. first_bs: &bs 192
  103. fix_bs: false
  104. divided_factor: [8, 16] # w, h
  105. is_training: True
  106. loader:
  107. shuffle: true
  108. batch_size_per_card: *bs
  109. drop_last: true
  110. num_workers: 8
  111. Eval:
  112. dataset:
  113. name: SimpleDataSet
  114. data_dir: ./train_data
  115. label_file_list:
  116. - ./train_data/val_list.txt
  117. transforms:
  118. - DecodeImage:
  119. img_mode: BGR
  120. channel_first: false
  121. - MultiLabelEncode:
  122. gtc_encode: NRTRLabelEncode
  123. - RecResizeImg:
  124. image_shape: [3, 48, 320]
  125. - KeepKeys:
  126. keep_keys:
  127. - image
  128. - label_ctc
  129. - label_gtc
  130. - length
  131. - valid_ratio
  132. loader:
  133. shuffle: false
  134. drop_last: false
  135. batch_size_per_card: 128
  136. num_workers: 4