1
+ #! /bin/bash
2
+ source test_tipc/utils_func.sh
3
+
4
+ FILENAME=$1
5
+
6
+ # parser model_name
7
+ dataline=$( cat ${FILENAME} )
8
+ IFS=$' \n '
9
+ lines=(${dataline} )
10
+ model_name=$( func_parser_value " ${lines[1]} " )
11
+ echo " ppdet onnx_infer: ${model_name} "
12
+ python=$( func_parser_value " ${lines[2]} " )
13
+ filename_key=$( func_parser_key " ${lines[3]} " )
14
+ filename_value=$( func_parser_value " ${lines[3]} " )
15
+
16
+ # export params
17
+ save_export_key=$( func_parser_key " ${lines[5]} " )
18
+ save_export_value=$( func_parser_value " ${lines[5]} " )
19
+ export_weight_key=$( func_parser_key " ${lines[6]} " )
20
+ export_weight_value=$( func_parser_value " ${lines[6]} " )
21
+ norm_export=$( func_parser_value " ${lines[7]} " )
22
+ pact_export=$( func_parser_value " ${lines[8]} " )
23
+ fpgm_export=$( func_parser_value " ${lines[9]} " )
24
+ distill_export=$( func_parser_value " ${lines[10]} " )
25
+ export_key1=$( func_parser_key " ${lines[11]} " )
26
+ export_value1=$( func_parser_value " ${lines[11]} " )
27
+ export_key2=$( func_parser_key " ${lines[12]} " )
28
+ export_value2=$( func_parser_value " ${lines[12]} " )
29
+ kl_quant_export=$( func_parser_value " ${lines[13]} " )
30
+
31
+ # parser paddle2onnx
32
+ padlle2onnx_cmd=$( func_parser_value " ${lines[15]} " )
33
+ infer_model_dir_key=$( func_parser_key " ${lines[16]} " )
34
+ infer_model_dir_value=$( func_parser_value " ${lines[16]} " )
35
+ model_filename_key=$( func_parser_key " ${lines[17]} " )
36
+ model_filename_value=$( func_parser_value " ${lines[17]} " )
37
+ params_filename_key=$( func_parser_key " ${lines[18]} " )
38
+ params_filename_value=$( func_parser_value " ${lines[18]} " )
39
+ save_file_key=$( func_parser_key " ${lines[19]} " )
40
+ save_file_value=$( func_parser_value " ${lines[19]} " )
41
+ opset_version_key=$( func_parser_key " ${lines[20]} " )
42
+ opset_version_value=$( func_parser_value " ${lines[20]} " )
43
+
44
+ # parser onnx inference
45
+ inference_py=$( func_parser_value " ${lines[22]} " )
46
+ model_file_key=$( func_parser_key " ${lines[23]} " )
47
+ model_file_value=$( func_parser_value " ${lines[23]} " )
48
+ img_fold_key=$( func_parser_key " ${lines[24]} " )
49
+ img_fold_value=$( func_parser_value " ${lines[24]} " )
50
+ results_fold_key=$( func_parser_key " ${lines[25]} " )
51
+ results_fold_value=$( func_parser_value " ${lines[25]} " )
52
+ onnx_infer_mode_list=$( func_parser_value " ${lines[26]} " )
53
+
54
+ LOG_PATH=" ./test_tipc/output"
55
+ mkdir -p ${LOG_PATH}
56
+ status_log=" ${LOG_PATH} /results_paddle2onnx.log"
57
+
58
+ function func_paddle2onnx(){
59
+ IFS=' |'
60
+ _script=$1
61
+
62
+ # paddle2onnx
63
+ echo " ################### run onnx export ###################"
64
+ _save_log_path=" ${LOG_PATH} /paddle2onnx_infer_cpu.log"
65
+ set_dirname=$( func_set_params " ${infer_model_dir_key} " " ${infer_model_dir_value} " )
66
+ set_model_filename=$( func_set_params " ${model_filename_key} " " ${model_filename_value} " )
67
+ set_params_filename=$( func_set_params " ${params_filename_key} " " ${params_filename_value} " )
68
+ set_save_model=$( func_set_params " ${save_file_key} " " ${save_file_value} " )
69
+ set_opset_version=$( func_set_params " ${opset_version_key} " " ${opset_version_value} " )
70
+ trans_model_cmd=" ${padlle2onnx_cmd} ${set_dirname} ${set_model_filename} ${set_params_filename} ${set_save_model} ${set_opset_version} "
71
+ eval $trans_model_cmd
72
+ last_status=${PIPESTATUS[0]}
73
+ status_check $last_status " ${trans_model_cmd} " " ${status_log} "
74
+ # python inference
75
+ echo " ################### run infer ###################"
76
+ cd ./deploy/third_engine/demo_onnxruntime/
77
+ model_file=$( func_set_params " ${model_file_key} " " ${model_file_value} " )
78
+ img_fold=$( func_set_params " ${img_fold_key} " " ${img_fold_value} " )
79
+ results_fold=$( func_set_params " ${results_fold_key} " " ${results_fold_value} " )
80
+ infer_model_cmd=" ${python} ${inference_py} ${model_file} ${img_fold} ${results_fold} "
81
+ eval $infer_model_cmd
82
+ last_status=${PIPESTATUS[0]}
83
+ status_check $last_status " ${infer_model_cmd} " " ${status_log} "
84
+ }
85
+
86
+ export Count=0
87
+ IFS=" |"
88
+ echo " ################### run paddle export ###################"
89
+ for infer_mode in ${onnx_infer_mode_list[*]} ; do
90
+
91
+ # run export
92
+ case ${infer_mode} in
93
+ norm) run_export=${norm_export} ;;
94
+ quant) run_export=${pact_export} ;;
95
+ fpgm) run_export=${fpgm_export} ;;
96
+ distill) run_export=${distill_export} ;;
97
+ kl_quant) run_export=${kl_quant_export} ;;
98
+ * ) echo " Undefined infer_mode!" ; exit 1;
99
+ esac
100
+ if [ ${run_export} = " null" ]; then
101
+ continue
102
+ fi
103
+ set_export_weight=$( func_set_params " ${export_weight_key} " " ${export_weight_value} " )
104
+ set_save_export_dir=$( func_set_params " ${save_export_key} " " ${save_export_value} " )
105
+ set_filename=$( func_set_params " ${filename_key} " " ${model_name} " )
106
+ export_cmd=" ${python} ${run_export} ${set_export_weight} ${set_filename} ${set_save_export_dir} "
107
+ echo $export_cmd
108
+ eval $export_cmd
109
+ status_export=$?
110
+ status_check $status_export " ${export_cmd} " " ${status_log} "
111
+ done
112
+ func_paddle2onnx
0 commit comments