| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- Global:
- debug: false
- use_gpu: true
- epoch_num: 200
- log_smooth_window: 20
- print_batch_step: 10
- save_model_dir: ./output/rec_svtrv2_ch
- save_epoch_step: 10
- eval_batch_step: [0, 1000]
- cal_metric_during_train: False
- pretrained_model: https://paddleocr.bj.bcebos.com/pretrained/ch_SVTRv2_rec_server_trained.pdparams
- checkpoints:
- save_inference_dir:
- use_visualdl: false
- infer_img: doc/imgs_words/ch/word_1.jpg
- character_dict_path: ppocr/utils/ppocr_keys_v1.txt
- max_text_length: &max_text_length 25
- infer_mode: false
- use_space_char: true
- distributed: true
- save_res_path: ./output/rec/predicts_svrtv2.txt
- Optimizer:
- name: AdamW
- beta1: 0.9
- beta2: 0.999
- epsilon: 1.e-8
- weight_decay: 0.05
- no_weight_decay_name: norm
- one_dim_param_no_weight_decay: True
- lr:
- name: Cosine
- learning_rate: 0.001 # 8gpus 192bs
- warmup_epoch: 5
- Architecture:
- model_type: rec
- algorithm: SVTR_HGNet
- Transform:
- Backbone:
- name: SVTRv2
- use_pos_embed: False
- dims: [128, 256, 384]
- depths: [6, 6, 6]
- 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_k: [[5, 5], [5, 5], [-1, -1]]
- sub_k: [[2, 1], [2, 1], [-1, -1]]
- last_stage: False
- use_pool: True
- Head:
- name: MultiHead
- head_list:
- - CTCHead:
- Neck:
- name: svtr
- dims: 256
- depth: 2
- hidden_dims: 256
- kernel_size: [1, 3]
- use_guide: True
- Head:
- fc_decay: 0.00001
- - NRTRHead:
- nrtr_dim: 384
- max_text_length: *max_text_length
- num_decoder_layers: 2
- Loss:
- name: MultiLoss
- loss_config_list:
- - CTCLoss:
- - NRTRLoss:
- PostProcess:
- name: CTCLabelDecode
- Metric:
- name: RecMetric
- main_indicator: acc
- Train:
- dataset:
- name: MultiScaleDataSet
- ds_width: false
- data_dir: ./train_data/
- ext_op_transform_idx: 1
- label_file_list:
- - ./train_data/train_list.txt
- transforms:
- - DecodeImage:
- img_mode: BGR
- channel_first: false
- - RecAug:
- - MultiLabelEncode:
- gtc_encode: NRTRLabelEncode
- - KeepKeys:
- keep_keys:
- - image
- - label_ctc
- - label_gtc
- - length
- - valid_ratio
- sampler:
- name: MultiScaleSampler
- scales: [[320, 32], [320, 48], [320, 64]]
- first_bs: &bs 192
- fix_bs: false
- divided_factor: [8, 16] # w, h
- is_training: True
- loader:
- shuffle: true
- batch_size_per_card: *bs
- drop_last: true
- num_workers: 8
- Eval:
- dataset:
- name: SimpleDataSet
- data_dir: ./train_data
- label_file_list:
- - ./train_data/val_list.txt
- transforms:
- - DecodeImage:
- img_mode: BGR
- channel_first: false
- - MultiLabelEncode:
- gtc_encode: NRTRLabelEncode
- - RecResizeImg:
- image_shape: [3, 48, 320]
- - KeepKeys:
- keep_keys:
- - image
- - label_ctc
- - label_gtc
- - length
- - valid_ratio
- loader:
- shuffle: false
- drop_last: false
- batch_size_per_card: 128
- num_workers: 4
|