Global:
  use_gpu: false
  epoch_num: 500
  log_smooth_window: 20
  print_batch_step: 10
  save_model_dir: ./output/rec/mv3_none_bilstm_ctc/
  save_epoch_step: 500
  # evaluation is run every 5000 iterations after the 4000th iteration
  eval_batch_step: 127
  # if pretrained_model is saved in static mode, load_static_weights must set to True
  load_static_weights: True
  cal_metric_during_train: True
  pretrained_model:
  checkpoints:
  save_inference_dir:
  use_visualdl: False
  infer_img: doc/imgs_words/ch/word_1.jpg
  # for data or label process
  max_text_length: 80
  character_dict_path: ppocr/utils/ppocr_keys_v1.txt
  character_type: 'ch'
  use_space_char: False
  infer_mode: False
  use_tps: False


Optimizer:
  name: Adam
  beta1: 0.9
  beta2: 0.999
  learning_rate:
    lr: 0.001
  regularizer:
    name: 'L2'
    factor: 0.00001

Architecture:
  type: rec
  algorithm: CRNN
  Transform:
  Backbone:
    name: MobileNetV3
    scale: 0.5
    model_name: small
    small_stride: [ 1, 2, 2, 2 ]
  Neck:
    name: SequenceEncoder
    encoder_type: fc
    hidden_size: 96
  Head:
    name: CTC
    fc_decay: 0.00001

Loss:
  name: CTCLoss

PostProcess:
  name: CTCLabelDecode

Metric:
  name: RecMetric
  main_indicator: acc

TRAIN:
  dataset:
    name: SimpleDataSet
    data_dir: ./rec
    file_list:
      - ./rec/train.txt # dataset1
    ratio_list: [ 0.4,0.6 ]
    transforms:
      - DecodeImage: # load image
          img_mode: BGR
          channel_first: False
      - CTCLabelEncode: # Class handling label
      - RecAug:
      - RecResizeImg:
          image_shape: [ 3,32,320 ]
      - keepKeys:
          keep_keys: [ 'image','label','length' ] # dataloader will return list in this order
  loader:
    batch_size: 256
    shuffle: True
    drop_last: True
    num_workers: 8

EVAL:
  dataset:
    name: SimpleDataSet
    data_dir: ./rec
    file_list:
      - ./rec/val.txt
    transforms:
      - DecodeImage: # load image
          img_mode: BGR
          channel_first: False
      - CTCLabelEncode: # Class handling label
      - RecResizeImg:
          image_shape: [ 3,32,320 ]
      - keepKeys:
          keep_keys: [ 'image','label','length' ] # dataloader will return list in this order
  loader:
    shuffle: False
    drop_last: False
    batch_size: 256
    num_workers: 8
