Spaces:
Running
Running
File size: 3,285 Bytes
29f689c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
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
|