From ee6fe424e9a69f1d851f6996ca980844247049db Mon Sep 17 00:00:00 2001 From: tink2123 Date: Fri, 26 Nov 2021 06:55:48 +0000 Subject: [PATCH 1/2] fix seed --- .../transforms/tps_spatial_transformer.py | 2 +- .../rec_icdar15_train.yml | 110 ++++++++++++++++++ .../train_infer_python.txt | 51 ++++++++ test_tipc/prepare.sh | 10 +- 4 files changed, 166 insertions(+), 7 deletions(-) create mode 100644 test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/rec_icdar15_train.yml create mode 100644 test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/train_infer_python.txt diff --git a/ppocr/modeling/transforms/tps_spatial_transformer.py b/ppocr/modeling/transforms/tps_spatial_transformer.py index 4db34f7b48..043bb56b8a 100644 --- a/ppocr/modeling/transforms/tps_spatial_transformer.py +++ b/ppocr/modeling/transforms/tps_spatial_transformer.py @@ -53,7 +53,7 @@ def compute_partial_repr(input_points, control_points): 1] repr_matrix = 0.5 * pairwise_dist * paddle.log(pairwise_dist) # fix numerical error for 0 * log(0), substitute all nan with 0 - mask = repr_matrix != repr_matrix + mask = np.array(repr_matrix != repr_matrix) repr_matrix[mask] = 0 return repr_matrix diff --git a/test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/rec_icdar15_train.yml b/test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/rec_icdar15_train.yml new file mode 100644 index 0000000000..acac033258 --- /dev/null +++ b/test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/rec_icdar15_train.yml @@ -0,0 +1,110 @@ +Global: + use_gpu: True + epoch_num: 400 + log_smooth_window: 20 + print_batch_step: 10 + save_model_dir: ./output/rec/seed + save_epoch_step: 3 + # evaluation is run every 5000 iterations after the 4000th iteration + eval_batch_step: [0, 2000] + cal_metric_during_train: True + pretrained_model: + checkpoints: + save_inference_dir: + use_visualdl: False + infer_img: doc/imgs_words_en/word_10.png + # for data or label process + character_dict_path: ppocr/utils/EN_symbol_dict.txt + max_text_length: 100 + infer_mode: False + use_space_char: False + save_res_path: ./output/rec/predicts_seed.txt + + +Optimizer: + name: Adadelta + weight_deacy: 0.0 + momentum: 0.9 + lr: + name: Piecewise + decay_epochs: [4,5,8] + values: [1.0, 0.1, 0.01] + regularizer: + name: 'L2' + factor: 2.0e-05 + + +Architecture: + model_type: rec + algorithm: SEED + Transform: + name: STN_ON + tps_inputsize: [32, 64] + tps_outputsize: [32, 100] + num_control_points: 20 + tps_margins: [0.05,0.05] + stn_activation: none + Backbone: + name: ResNet_ASTER + Head: + name: AsterHead # AttentionHead + sDim: 512 + attDim: 512 + max_len_labels: 100 + +Loss: + name: AsterLoss + +PostProcess: + name: SEEDLabelDecode + +Metric: + name: RecMetric + main_indicator: acc + is_filter: True + +Train: + dataset: + name: SimpleDataSet + data_dir: ./train_data/ic15_data/ + label_file_list: ["./train_data/ic15_data/rec_gt_train.txt"] + transforms: + - Fasttext: + path: "./cc.en.300.bin" + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - SEEDLabelEncode: # Class handling label + - RecResizeImg: + character_type: en + image_shape: [3, 64, 256] + padding: False + - KeepKeys: + keep_keys: ['image', 'label', 'length', 'fast_label'] # dataloader will return list in this order + loader: + shuffle: True + batch_size_per_card: 256 + drop_last: True + num_workers: 6 + +Eval: + dataset: + name: SimpleDataSet + data_dir: ./train_data/ic15_data + label_file_list: ["./train_data/ic15_data/rec_gt_test.txt"] + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - SEEDLabelEncode: # Class handling label + - RecResizeImg: + character_type: en + image_shape: [3, 64, 256] + padding: False + - KeepKeys: + keep_keys: ['image', 'label', 'length'] # dataloader will return list in this order + loader: + shuffle: False + drop_last: True + batch_size_per_card: 256 + num_workers: 4 diff --git a/test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/train_infer_python.txt b/test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/train_infer_python.txt new file mode 100644 index 0000000000..9049dd0062 --- /dev/null +++ b/test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/train_infer_python.txt @@ -0,0 +1,51 @@ +===========================train_params=========================== +model_name:rec_resnet_stn_bilstm_att_v2.0 +python:python3.7 +gpu_list:0|0,1 +Global.use_gpu:True|True +Global.auto_cast:null +Global.epoch_num:lite_train_lite_infer=5|whole_train_whole_infer=100 +Global.save_model_dir:./output/ +Train.loader.batch_size_per_card:lite_train_lite_infer=128|whole_train_whole_infer=128 +Global.pretrained_model:null +train_model_name:latest +train_infer_img_dir:./inference/rec_inference +null:null +## +trainer:norm_train +norm_train:tools/train.py -c test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/rec_icdar15_train.yml -o +pact_train:null +fpgm_train:null +distill_train:null +null:null +null:null +## +===========================eval_params=========================== +eval:tools/eval.py -c test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/rec_icdar15_train.yml -o +null:null +## +===========================infer_params=========================== +Global.save_inference_dir:./output/ +Global.pretrained_model: +norm_export:tools/export_model.py -c test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/rec_icdar15_train.yml -o +quant_export:null +fpgm_export:null +distill_export:null +export1:null +export2:null +## +infer_model:null +infer_export:tools/export_model.py -c test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/rec_icdar15_train.yml -o +infer_quant:False +inference:tools/infer/predict_rec.py --rec_char_dict_path=./ppocr/utils/ic15_dict.txt --rec_image_shape="3,32,100" +--use_gpu:True|False +--enable_mkldnn:True|False +--cpu_threads:1|6 +--rec_batch_num:1|6 +--use_tensorrt:True|False +--precision:fp32|fp16|int8 +--rec_model_dir: +--image_dir:./inference/rec_inference +--save_log_path:./test/output/ +--benchmark:True +null:null diff --git a/test_tipc/prepare.sh b/test_tipc/prepare.sh index d72ca5409c..a0006375fd 100644 --- a/test_tipc/prepare.sh +++ b/test_tipc/prepare.sh @@ -52,7 +52,10 @@ if [ ${MODE} = "lite_train_lite_infer" ];then wget -nc -P ./train_data/ wget -nc -P ./train_data/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/total_text_lite.tar --no-check-certificate cd ./train_data && tar xf total_text_lite.tar && ln -s total_text && cd ../ fi - + if [ ${model_name} == "rec_resnet_stn_bilstm_att_v2.0" ]; then + wget -nc https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.en.300.bin.gz + gunzip cc.en.300.bin.gz + fi elif [ ${MODE} = "whole_train_whole_infer" ];then wget -nc -P ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/MobileNetV3_large_x0_5_pretrained.pdparams --no-check-certificate rm -rf ./train_data/icdar2015 @@ -128,11 +131,6 @@ elif [ ${MODE} = "whole_infer" ];then wget -nc -P ./inference/ https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_det_infer.tar --no-check-certificate cd ./inference && tar xf ${eval_model_name}.tar && tar xf ch_det_data_50.tar && cd ../ fi - elif [ ${model_name} = "ch_PPOCRv2_det" ]; then - wget -nc -P ./inference/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ch_det_data_50.tar --no-check-certificate - wget -nc -P ./inference/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/pgnet/e2e_server_pgnetA_infer.tar --no-check-certificate - cd ./inference && tar xf e2e_server_pgnetA_infer.tar && tar xf ch_det_data_50.tar && cd ../ - fi if [ ${model_name} == "en_server_pgnetA" ]; then wget -nc -P ./inference/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/pgnet/en_server_pgnetA.tar --no-check-certificate cd ./inference && tar xf en_server_pgnetA.tar && cd ../ From fb21a60aae1c97356cedc2d109c60b74a6604819 Mon Sep 17 00:00:00 2001 From: tink2123 Date: Tue, 30 Nov 2021 09:51:14 +0000 Subject: [PATCH 2/2] del fp16 in rec model --- .../train_infer_python.txt | 4 +- .../train_infer_python.txt | 2 +- .../train_infer_python.txt | 2 +- .../train_infer_python.txt | 2 +- .../train_infer_python.txt | 2 +- .../train_infer_python.txt | 2 +- .../train_infer_python.txt | 2 +- .../rec_icdar15_train.yml | 110 ------------------ .../train_infer_python.txt | 51 -------- 9 files changed, 8 insertions(+), 169 deletions(-) delete mode 100644 test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/rec_icdar15_train.yml delete mode 100644 test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/train_infer_python.txt diff --git a/test_tipc/configs/ch_ppocr_server_v2.0_rec/train_infer_python.txt b/test_tipc/configs/ch_ppocr_server_v2.0_rec/train_infer_python.txt index f35bb38767..f10985a919 100644 --- a/test_tipc/configs/ch_ppocr_server_v2.0_rec/train_infer_python.txt +++ b/test_tipc/configs/ch_ppocr_server_v2.0_rec/train_infer_python.txt @@ -37,13 +37,13 @@ export2:null infer_model:null infer_export:tools/export_model.py -c test_tipc/configs/ch_ppocr_server_v2.0_rec/rec_icdar15_train.yml -o infer_quant:False -inference:tools/infer/predict_rec.py --rec_char_dict_path=./ppocr/utils/ic15_dict.txt --rec_image_shape="3,32,100" +inference:tools/infer/predict_rec.py --use_gpu:True|False --enable_mkldnn:True|False --cpu_threads:1|6 --rec_batch_num:1|6 --use_tensorrt:True|False ---precision:fp32|fp16|int8 +--precision:fp32|int8 --rec_model_dir: --image_dir:./inference/rec_inference --save_log_path:./test/output/ diff --git a/test_tipc/configs/rec_mv3_none_bilstm_ctc_v2.0/train_infer_python.txt b/test_tipc/configs/rec_mv3_none_bilstm_ctc_v2.0/train_infer_python.txt index 698c14ee66..fdc39f1b85 100644 --- a/test_tipc/configs/rec_mv3_none_bilstm_ctc_v2.0/train_infer_python.txt +++ b/test_tipc/configs/rec_mv3_none_bilstm_ctc_v2.0/train_infer_python.txt @@ -43,7 +43,7 @@ inference:tools/infer/predict_rec.py --rec_char_dict_path=./ppocr/utils/ic15_dic --cpu_threads:1|6 --rec_batch_num:1|6 --use_tensorrt:True|False ---precision:fp32|fp16|int8 +--precision:fp32|int8 --rec_model_dir: --image_dir:./inference/rec_inference --save_log_path:./test/output/ diff --git a/test_tipc/configs/rec_mv3_none_none_ctc_v2.0/train_infer_python.txt b/test_tipc/configs/rec_mv3_none_none_ctc_v2.0/train_infer_python.txt index 53250c57e4..9810689679 100644 --- a/test_tipc/configs/rec_mv3_none_none_ctc_v2.0/train_infer_python.txt +++ b/test_tipc/configs/rec_mv3_none_none_ctc_v2.0/train_infer_python.txt @@ -43,7 +43,7 @@ inference:tools/infer/predict_rec.py --rec_char_dict_path=./ppocr/utils/ic15_dic --cpu_threads:1|6 --rec_batch_num:1|6 --use_tensorrt:True|False ---precision:fp32|fp16|int8 +--precision:fp32|int8 --rec_model_dir: --image_dir:./inference/rec_inference --save_log_path:./test/output/ diff --git a/test_tipc/configs/rec_mv3_tps_bilstm_ctc_v2.0/train_infer_python.txt b/test_tipc/configs/rec_mv3_tps_bilstm_ctc_v2.0/train_infer_python.txt index 5de24ae583..33700ad696 100644 --- a/test_tipc/configs/rec_mv3_tps_bilstm_ctc_v2.0/train_infer_python.txt +++ b/test_tipc/configs/rec_mv3_tps_bilstm_ctc_v2.0/train_infer_python.txt @@ -43,7 +43,7 @@ inference:tools/infer/predict_rec.py --rec_char_dict_path=./ppocr/utils/ic15_dic --cpu_threads:1|6 --rec_batch_num:1|6 --use_tensorrt:True|False ---precision:fp32|fp16|int8 +--precision:fp32|int8 --rec_model_dir: --image_dir:./inference/rec_inference --save_log_path:./test/output/ diff --git a/test_tipc/configs/rec_r34_vd_none_bilstm_ctc_v2.0/train_infer_python.txt b/test_tipc/configs/rec_r34_vd_none_bilstm_ctc_v2.0/train_infer_python.txt index baf306e189..857a212fe6 100644 --- a/test_tipc/configs/rec_r34_vd_none_bilstm_ctc_v2.0/train_infer_python.txt +++ b/test_tipc/configs/rec_r34_vd_none_bilstm_ctc_v2.0/train_infer_python.txt @@ -43,7 +43,7 @@ inference:tools/infer/predict_rec.py --rec_char_dict_path=./ppocr/utils/ic15_dic --cpu_threads:1|6 --rec_batch_num:1|6 --use_tensorrt:True|False ---precision:fp32|fp16|int8 +--precision:fp32|int8 --rec_model_dir: --image_dir:./inference/rec_inference --save_log_path:./test/output/ diff --git a/test_tipc/configs/rec_r34_vd_none_none_ctc_v2.0/train_infer_python.txt b/test_tipc/configs/rec_r34_vd_none_none_ctc_v2.0/train_infer_python.txt index 0d54bd5647..85804b7453 100644 --- a/test_tipc/configs/rec_r34_vd_none_none_ctc_v2.0/train_infer_python.txt +++ b/test_tipc/configs/rec_r34_vd_none_none_ctc_v2.0/train_infer_python.txt @@ -43,7 +43,7 @@ inference:tools/infer/predict_rec.py --rec_char_dict_path=./ppocr/utils/ic15_dic --cpu_threads:1|6 --rec_batch_num:1|6 --use_tensorrt:True|False ---precision:fp32|fp16|int8 +--precision:fp32|int8 --rec_model_dir: --image_dir:./inference/rec_inference --save_log_path:./test/output/ diff --git a/test_tipc/configs/rec_r34_vd_tps_bilstm_ctc_v2.0/train_infer_python.txt b/test_tipc/configs/rec_r34_vd_tps_bilstm_ctc_v2.0/train_infer_python.txt index 666c7d159b..bb49ae5977 100644 --- a/test_tipc/configs/rec_r34_vd_tps_bilstm_ctc_v2.0/train_infer_python.txt +++ b/test_tipc/configs/rec_r34_vd_tps_bilstm_ctc_v2.0/train_infer_python.txt @@ -43,7 +43,7 @@ inference:tools/infer/predict_rec.py --rec_char_dict_path=./ppocr/utils/ic15_dic --cpu_threads:1|6 --rec_batch_num:1|6 --use_tensorrt:True|False ---precision:fp32|fp16|int8 +--precision:fp32|int8 --rec_model_dir: --image_dir:./inference/rec_inference --save_log_path:./test/output/ diff --git a/test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/rec_icdar15_train.yml b/test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/rec_icdar15_train.yml deleted file mode 100644 index acac033258..0000000000 --- a/test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/rec_icdar15_train.yml +++ /dev/null @@ -1,110 +0,0 @@ -Global: - use_gpu: True - epoch_num: 400 - log_smooth_window: 20 - print_batch_step: 10 - save_model_dir: ./output/rec/seed - save_epoch_step: 3 - # evaluation is run every 5000 iterations after the 4000th iteration - eval_batch_step: [0, 2000] - cal_metric_during_train: True - pretrained_model: - checkpoints: - save_inference_dir: - use_visualdl: False - infer_img: doc/imgs_words_en/word_10.png - # for data or label process - character_dict_path: ppocr/utils/EN_symbol_dict.txt - max_text_length: 100 - infer_mode: False - use_space_char: False - save_res_path: ./output/rec/predicts_seed.txt - - -Optimizer: - name: Adadelta - weight_deacy: 0.0 - momentum: 0.9 - lr: - name: Piecewise - decay_epochs: [4,5,8] - values: [1.0, 0.1, 0.01] - regularizer: - name: 'L2' - factor: 2.0e-05 - - -Architecture: - model_type: rec - algorithm: SEED - Transform: - name: STN_ON - tps_inputsize: [32, 64] - tps_outputsize: [32, 100] - num_control_points: 20 - tps_margins: [0.05,0.05] - stn_activation: none - Backbone: - name: ResNet_ASTER - Head: - name: AsterHead # AttentionHead - sDim: 512 - attDim: 512 - max_len_labels: 100 - -Loss: - name: AsterLoss - -PostProcess: - name: SEEDLabelDecode - -Metric: - name: RecMetric - main_indicator: acc - is_filter: True - -Train: - dataset: - name: SimpleDataSet - data_dir: ./train_data/ic15_data/ - label_file_list: ["./train_data/ic15_data/rec_gt_train.txt"] - transforms: - - Fasttext: - path: "./cc.en.300.bin" - - DecodeImage: # load image - img_mode: BGR - channel_first: False - - SEEDLabelEncode: # Class handling label - - RecResizeImg: - character_type: en - image_shape: [3, 64, 256] - padding: False - - KeepKeys: - keep_keys: ['image', 'label', 'length', 'fast_label'] # dataloader will return list in this order - loader: - shuffle: True - batch_size_per_card: 256 - drop_last: True - num_workers: 6 - -Eval: - dataset: - name: SimpleDataSet - data_dir: ./train_data/ic15_data - label_file_list: ["./train_data/ic15_data/rec_gt_test.txt"] - transforms: - - DecodeImage: # load image - img_mode: BGR - channel_first: False - - SEEDLabelEncode: # Class handling label - - RecResizeImg: - character_type: en - image_shape: [3, 64, 256] - padding: False - - KeepKeys: - keep_keys: ['image', 'label', 'length'] # dataloader will return list in this order - loader: - shuffle: False - drop_last: True - batch_size_per_card: 256 - num_workers: 4 diff --git a/test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/train_infer_python.txt b/test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/train_infer_python.txt deleted file mode 100644 index 9049dd0062..0000000000 --- a/test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/train_infer_python.txt +++ /dev/null @@ -1,51 +0,0 @@ -===========================train_params=========================== -model_name:rec_resnet_stn_bilstm_att_v2.0 -python:python3.7 -gpu_list:0|0,1 -Global.use_gpu:True|True -Global.auto_cast:null -Global.epoch_num:lite_train_lite_infer=5|whole_train_whole_infer=100 -Global.save_model_dir:./output/ -Train.loader.batch_size_per_card:lite_train_lite_infer=128|whole_train_whole_infer=128 -Global.pretrained_model:null -train_model_name:latest -train_infer_img_dir:./inference/rec_inference -null:null -## -trainer:norm_train -norm_train:tools/train.py -c test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/rec_icdar15_train.yml -o -pact_train:null -fpgm_train:null -distill_train:null -null:null -null:null -## -===========================eval_params=========================== -eval:tools/eval.py -c test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/rec_icdar15_train.yml -o -null:null -## -===========================infer_params=========================== -Global.save_inference_dir:./output/ -Global.pretrained_model: -norm_export:tools/export_model.py -c test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/rec_icdar15_train.yml -o -quant_export:null -fpgm_export:null -distill_export:null -export1:null -export2:null -## -infer_model:null -infer_export:tools/export_model.py -c test_tipc/configs/rec_resnet_stn_bilstm_att_v2.0/rec_icdar15_train.yml -o -infer_quant:False -inference:tools/infer/predict_rec.py --rec_char_dict_path=./ppocr/utils/ic15_dict.txt --rec_image_shape="3,32,100" ---use_gpu:True|False ---enable_mkldnn:True|False ---cpu_threads:1|6 ---rec_batch_num:1|6 ---use_tensorrt:True|False ---precision:fp32|fp16|int8 ---rec_model_dir: ---image_dir:./inference/rec_inference ---save_log_path:./test/output/ ---benchmark:True -null:null