Global: device: gpu epoch_num: 20 log_smooth_window: 20 print_batch_step: 10 output_dir: ./output/rec/u14m_filter/resnet31_lstm_sar eval_epoch_step: [0, 1] eval_batch_step: [0, 500] cal_metric_during_train: True pretrained_model: checkpoints: use_tensorboard: false infer_img: # for data or label process character_dict_path: ./tools/utils/EN_symbol_dict.txt max_text_length: 25 use_space_char: False save_res_path: ./output/rec/u14m_filter/predicts_resnet31_lstm_sar.txt use_amp: True grad_clip_val: 1.0 Optimizer: name: Adam lr: 0.002 # for 4gpus bs256/gpu weight_decay: 0.0 filter_bias_and_bn: False LRScheduler: name: OneCycleLR warmup_epoch: 1.5 # pct_start 0.075*20 = 1.5ep cycle_momentum: False Architecture: model_type: rec algorithm: SAR Transform: Encoder: name: ResNet31 Decoder: name: SARDecoder mask: True use_lstm: True Loss: name: ARLoss PostProcess: name: ARLabelDecode Metric: name: RecMetric main_indicator: acc is_filter: True Train: dataset: name: LMDBDataSet data_dir: ../Union14M-L-LMDB-Filtered transforms: - DecodeImage: # load image img_mode: BGR channel_first: False - PARSeqAug: - ARLabelEncode: # Class handling label - RobustScannerRecResizeImg: image_shape: [3, 48, 48, 160] # h:48 w:[48,160] width_downsample_ratio: 0.25 - KeepKeys: keep_keys: ['image', 'label', 'length', 'valid_ratio'] # dataloader will return list in this order loader: shuffle: True batch_size_per_card: 256 drop_last: True num_workers: 4 Eval: dataset: name: LMDBDataSet data_dir: ../evaluation transforms: - DecodeImage: # load image img_mode: BGR channel_first: False - ARLabelEncode: # Class handling label - RobustScannerRecResizeImg: image_shape: [3, 48, 48, 160] width_downsample_ratio: 0.25 - KeepKeys: keep_keys: ['image', 'label', 'length', 'valid_ratio'] # dataloader will return list in this order loader: shuffle: False drop_last: False batch_size_per_card: 256 num_workers: 2