Global: device: gpu epoch_num: 100 log_smooth_window: 20 print_batch_step: 10 output_dir: ./output/rec/ch/svtr_base_cppd/ save_epoch_step: 1 # evaluation is run every 2000 iterations eval_batch_step: [0, 2000] eval_epoch_step: [0, 1] cal_metric_during_train: False pretrained_model: checkpoints: use_tensorboard: false infer_img: # for data or label process character_dict_path: &character_dict_path ./tools/utils/ppocr_keys_v1.txt # ./tools/utils/EN_symbol_dict.txt # 96en # ./tools/utils/ppocr_keys_v1.txt # ch max_text_length: &max_text_length 25 use_space_char: &use_space_char False save_res_path: ./output/rec/ch/predicts_svtr_base_cppd.txt use_amp: True Optimizer: name: AdamW lr: 0.0005 # for 4gpus bs128/gpu weight_decay: 0.05 filter_bias_and_bn: True LRScheduler: name: CosineAnnealingLR warmup_epoch: 5 Architecture: model_type: rec algorithm: CPPD in_channels: 3 Transform: Encoder: name: SVTRNet img_size: [32, 256] patch_merging: 'Conv' embed_dim: [128, 256, 384] depth: [6, 6, 4] num_heads: [4, 8, 12] mixer: ['Conv','Conv','Conv','Conv','Conv','Conv', 'Conv','Conv', 'Global','Global','Global','Global','Global','Global','Global','Global','Global','Global'] local_mixer: [[5, 5], [5, 5], [5, 5]] last_stage: False prenorm: True Decoder: name: CPPDDecoder vis_seq: 128 num_layer: 3 pos_len: False rec_layer: 1 ch: True Loss: name: CPPDLoss ignore_index: 7000 smoothing: True pos_len: False sideloss_weight: 1.0 PostProcess: name: CPPDLabelDecode character_dict_path: *character_dict_path use_space_char: *use_space_char Metric: name: RecMetric main_indicator: acc Train: dataset: name: LMDBDataSet data_dir: ../benchmark_bctr/benchmark_bctr_train transforms: - DecodeImage: # load image img_mode: BGR channel_first: False - CPPDLabelEncode: # Class handling label pos_len: False ch: True ignore_index: 7000 character_dict_path: *character_dict_path use_space_char: *use_space_char max_text_length: *max_text_length - SVTRResize: image_shape: [3, 32, 256] padding: True - KeepKeys: keep_keys: ['image', 'label', 'label_node', 'label_index', 'length'] # dataloader will return list in this order loader: shuffle: True batch_size_per_card: 128 drop_last: True num_workers: 8 Eval: dataset: name: LMDBDataSet data_dir: ../benchmark_bctr/benchmark_bctr_test/scene_test transforms: - DecodeImage: # load image img_mode: BGR channel_first: False - CPPDLabelEncode: # Class handling label pos_len: False ch: True ignore_index: 7000 character_dict_path: *character_dict_path use_space_char: *use_space_char max_text_length: *max_text_length - SVTRResize: image_shape: [3, 32, 256] padding: True - KeepKeys: keep_keys: ['image', 'label', 'label_node', 'length'] # dataloader will return list in this order loader: shuffle: False drop_last: False batch_size_per_card: 256 num_workers: 4