提交 0f84fc1e 编写于 作者: L LDOUBLEV

fix ci error

上级 1203276f
#!/bin/bash #!/bin/bash
FILENAME=$1
dataline=$(cat ${FILENAME}) dataline=$(cat ${FILENAME})
# parser params # parser params
IFS=$'\n' IFS=$'\n'
lines=(${dataline}) lines=(${dataline})
function func_parser(){ function func_parser(){
strs=$1 strs=$1
IFS=":" IFS=": "
array=(${strs}) array=(${strs})
tmp=${array[1]} tmp=${array[1]}
echo ${tmp} echo ${tmp}
...@@ -17,7 +17,7 @@ train_model_list=$(func_parser "${lines[0]}") ...@@ -17,7 +17,7 @@ train_model_list=$(func_parser "${lines[0]}")
slim_trainer_list=$(func_parser "${lines[3]}") slim_trainer_list=$(func_parser "${lines[3]}")
python=$(func_parser "${lines[4]}") python=$(func_parser "${lines[4]}")
# inference params # inference params
inference=$(func_parser "${lines[5]}") # inference=$(func_parser "${lines[5]}")
devices=$(func_parser "${lines[6]}") devices=$(func_parser "${lines[6]}")
use_mkldnn_list=$(func_parser "${lines[7]}") use_mkldnn_list=$(func_parser "${lines[7]}")
cpu_threads_list=$(func_parser "${lines[8]}") cpu_threads_list=$(func_parser "${lines[8]}")
...@@ -40,14 +40,15 @@ function status_check(){ ...@@ -40,14 +40,15 @@ function status_check(){
echo -e "\033[33m $case failed with command - ${run_command}! \033[0m" | tee -a ${save_log} echo -e "\033[33m $case failed with command - ${run_command}! \033[0m" | tee -a ${save_log}
fi fi
} }
IFS='|'
for train_model in ${train_model_list[*]}; do for train_model in ${train_model_list[*]}; do
if [ ${train_model} = "det" ];then if [ ${train_model} = "ocr_det" ];then
model_name="det" model_name="det"
yml_file="configs/det/det_mv3_db.yml" yml_file="configs/det/det_mv3_db.yml"
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ch_det_data_50.tar && tar xf ./inference/ch_det_data_50.tar # wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ch_det_data_50.tar
tar xf ./inference/ch_det_data_50.tar
img_dir="./inference/ch_det_data_50/" img_dir="./inference/ch_det_data_50/"
elif [ ${train_model} = "rec" ];then elif [ ${train_model} = "ocr_rec" ];then
model_name="rec" model_name="rec"
yml_file="configs/rec/rec_mv3_none_bilstm_ctc.yml" yml_file="configs/rec/rec_mv3_none_bilstm_ctc.yml"
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ch_rec_data_200.tar && tar xf ./inference/ch_rec_data_200.tar wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/test/ch_rec_data_200.tar && tar xf ./inference/ch_rec_data_200.tar
...@@ -71,7 +72,7 @@ for train_model in ${train_model_list[*]}; do ...@@ -71,7 +72,7 @@ for train_model in ${train_model_list[*]}; do
else else
eval_model_name="ch_ppocr_mobile_v2.0_rec_quant_infer" eval_model_name="ch_ppocr_mobile_v2.0_rec_quant_infer"
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/slim/ch_ppocr_mobile_v2.0_rec_quant_train.tar wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/slim/ch_ppocr_mobile_v2.0_rec_quant_train.tar
fi fi
elif [ ${slim_trainer} = "distill" ]; then elif [ ${slim_trainer} = "distill" ]; then
if [ ${model_name} = "det" ]; then if [ ${model_name} = "det" ]; then
eval_model_name="ch_ppocr_mobile_v2.0_det_distill_infer" eval_model_name="ch_ppocr_mobile_v2.0_det_distill_infer"
...@@ -89,59 +90,61 @@ for train_model in ${train_model_list[*]}; do ...@@ -89,59 +90,61 @@ for train_model in ${train_model_list[*]}; do
wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/slim/ch_ppocr_mobile_v2.0_rec_prune_train.tar wget -nc -P ./inference https://paddleocr.bj.bcebos.com/dygraph_v2.0/slim/ch_ppocr_mobile_v2.0_rec_prune_train.tar
fi fi
fi fi
save_log_path="${log_path}/${eval_model_name}"
command="${python} tools/eval.py -c ${yml_file} -o Global.pretrained_model=${eval_model_name} Global.save_model_dir=${save_log_path}"
${python} tools/eval.py -c ${yml_file} -o Global.pretrained_model=${eval_model_name} Global.save_model_dir=${save_log_path}
status_check $? "${trainer}" "${command}" "${save_log_path}/train.log"
command="${python} tools/export_model.py -c ${yml_file} -o Global.pretrained_model=${eval_model_name} Global.save_inference_dir=${log_path}/${eval_model_name}_infer Global.save_model_dir=${save_log_path}" save_log_path="${log_path}/${eval_model_name}"
${python} tools/export_model.py -c ${yml_file} -o Global.pretrained_model=${eval_model_name} Global.save_inference_dir=${log_path}/${eval_model_name}_infer Global.save_model_dir=${save_log_path} command="${python} tools/eval.py -c ${yml_file} -o Global.pretrained_model=${eval_model_name} Global.save_model_dir=${save_log_path}"
status_check $? "${trainer}" "${command}" "${save_log_path}/train.log" ${python} tools/eval.py -c ${yml_file} -o Global.pretrained_model=${eval_model_name} Global.save_model_dir=${save_log_path}
status_check $? "${trainer}" "${command}" "${save_log_path}/train.log"
if [ $? -eq 0 ]; then command="${python} tools/export_model.py -c ${yml_file} -o Global.pretrained_model=${eval_model_name} Global.save_inference_dir=${log_path}/${eval_model_name}_infer Global.save_model_dir=${save_log_path}"
echo -e "\033[33m training of $model_name successfully!\033[0m" | tee -a ${save_log}/train.log ${python} tools/export_model.py -c ${yml_file} -o Global.pretrained_model=${eval_model_name} Global.save_inference_dir="${log_path}/${eval_model_name}_infer" Global.save_model_dir=${save_log_path}
else status_check $? "${trainer}" "${command}" "${save_log_path}/train.log"
cat ${save_log}/train.log
echo -e "\033[33m training of $model_name failed!\033[0m" | tee -a ${save_log}/train.log if [ $? -eq 0 ]; then
fi echo -e "\033[33m training of $model_name successfully!\033[0m" | tee -a ${save_log}/train.log
if [ "${model_name}" = "det" ]; then else
export rec_batch_size_list=( "1" ) cat ${save_log}/train.log
inference="tools/infer/predict_det.py" echo -e "\033[33m training of $model_name failed!\033[0m" | tee -a ${save_log}/train.log
det_model_dir=${log_path}/${eval_model_name}_infer fi
rec_model_dir="" if [ "${model_name}" = "det" ]; then
elif [ "${model_name}" = "rec" ]; then export rec_batch_size_list=( "1" )
inference="tools/infer/predict_rec.py" inference="tools/infer/predict_det.py"
rec_model_dir=${log_path}/${eval_model_name}_infer det_model_dir=${log_path}/${eval_model_name}_infer
det_model_dir="" rec_model_dir=""
fi elif [ "${model_name}" = "rec" ]; then
# inference inference="tools/infer/predict_rec.py"
for device in ${devices[*]}; do rec_model_dir=${log_path}/${eval_model_name}_infer
if [ ${device} = "cpu" ]; then det_model_dir=""
for use_mkldnn in ${use_mkldnn_list[*]}; do fi
for threads in ${cpu_threads_list[*]}; do # inference
for rec_batch_size in ${rec_batch_size_list[*]}; do for device in ${devices[*]}; do
save_log_path="${log_path}/${model_name}_${slim_trainer}_cpu_usemkldnn_${use_mkldnn}_cputhreads_${threads}_recbatchnum_${rec_batch_size}_infer.log" if [ ${device} = "cpu" ]; then
command="${python} ${inference} --enable_mkldnn=${use_mkldnn} --use_gpu=False --cpu_threads=${threads} --benchmark=True --det_model_dir=${det_model_dir} --rec_batch_num=${rec_batch_size} --rec_model_dir=${rec_model_dir} --image_dir=${img_dir} --save_log_path=${save_log_path}" for use_mkldnn in ${use_mkldnn_list[*]}; do
${python} ${inference} --enable_mkldnn=${use_mkldnn} --use_gpu=False --cpu_threads=${threads} --benchmark=True --det_model_dir=${det_model_dir} --rec_batch_num=${rec_batch_size} --rec_model_dir=${rec_model_dir} --image_dir=${img_dir} --save_log_path=${save_log_path} for threads in ${cpu_threads_list[*]}; do
status_check $? "${trainer}" "${command}" "${save_log_path}" for rec_batch_size in ${rec_batch_size_list[*]}; do
save_log_path="${log_path}/${model_name}_${slim_trainer}_cpu_usemkldnn_${use_mkldnn}_cputhreads_${threads}_recbatchnum_${rec_batch_size}_infer.log"
command="${python} ${inference} --enable_mkldnn=${use_mkldnn} --use_gpu=False --cpu_threads=${threads} --benchmark=True --det_model_dir=${det_model_dir} --rec_batch_num=${rec_batch_size} --rec_model_dir=${rec_model_dir} --image_dir=${img_dir} --save_log_path=${save_log_path}"
${python} ${inference} --enable_mkldnn=${use_mkldnn} --use_gpu=False --cpu_threads=${threads} --benchmark=True --det_model_dir=${det_model_dir} --rec_batch_num=${rec_batch_size} --rec_model_dir=${rec_model_dir} --image_dir=${img_dir} --save_log_path=${save_log_path}
status_check $? "${trainer}" "${command}" "${save_log_path}"
done
done done
done done
done else
else env="CUDA_VISIBLE_DEVICES=${infer_gpu_id}"
env="CUDA_VISIBLE_DEVICES=${infer_gpu_id}" for use_trt in ${gpu_trt_list[*]}; do
for use_trt in ${gpu_trt_list[*]}; do for precision in ${gpu_precision_list[*]}; do
for precision in ${gpu_precision_list[*]}; do if [ ${use_trt} = "False" ] && [ ${precision} != "fp32" ]; then
if [ ${use_trt} = "False" ] && [ ${precision} != "fp32" ]; then continue
continue fi
fi for rec_batch_size in ${rec_batch_size_list[*]}; do
for rec_batch_size in ${rec_batch_size_list[*]}; do save_log_path="${log_path}/${model_name}_${slim_trainer}_gpu_usetensorrt_${use_trt}_usefp16_${precision}_recbatchnum_${rec_batch_size}_infer.log"
save_log_path="${log_path}/${model_name}_${slim_trainer}_gpu_usetensorrt_${use_trt}_usefp16_${precision}_recbatchnum_${rec_batch_size}_infer.log" command="${env} ${python} ${inference} --use_gpu=True --use_tensorrt=${use_trt} --precision=${precision} --benchmark=True --det_model_dir=${log_path}/${eval_model_name}_infer --rec_batch_num=${rec_batch_size} --rec_model_dir=${rec_model_dir} --image_dir=${img_dir} --save_log_path=${save_log_path}"
command="${env} ${python} ${inference} --use_gpu=True --use_tensorrt=${use_trt} --precision=${precision} --benchmark=True --det_model_dir=${log_path}/${eval_model_name}_infer --rec_batch_num=${rec_batch_size} --rec_model_dir=${rec_model_dir} --image_dir=${img_dir} --save_log_path=${save_log_path}" ${env} ${python} ${inference} --use_gpu=True --use_tensorrt=${use_trt} --precision=${precision} --benchmark=True --det_model_dir=${log_path}/${eval_model_name}_infer --rec_batch_num=${rec_batch_size} --rec_model_dir=${rec_model_dir} --image_dir=${img_dir} --save_log_path=${save_log_path}
${env} ${python} ${inference} --use_gpu=True --use_tensorrt=${use_trt} --precision=${precision} --benchmark=True --det_model_dir=${log_path}/${eval_model_name}_infer --rec_batch_num=${rec_batch_size} --rec_model_dir=${rec_model_dir} --image_dir=${img_dir} --save_log_path=${save_log_path} status_check $? "${trainer}" "${command}" "${save_log_path}"
status_check $? "${trainer}" "${command}" "${save_log_path}" done
done done
done done
done fi
fi done
done done
done done
train_model_list: ocr_det train_model_list: ocr_det
gpu_list: -1|0|0,1 gpu_list: -1|0|0,1
auto_cast_list: False auto_cast_list: False
trainer_list: norm|quant|prune trainer_list: norm|quant
python: python3.7 python: python3.7
inference: python inference: python
......
...@@ -78,7 +78,7 @@ function status_check(){ ...@@ -78,7 +78,7 @@ function status_check(){
fi fi
} }
IFS="|"
for train_model in ${train_model_list[*]}; do for train_model in ${train_model_list[*]}; do
if [ ${train_model} = "ocr_det" ];then if [ ${train_model} = "ocr_det" ];then
model_name="det" model_name="det"
...@@ -107,7 +107,7 @@ for train_model in ${train_model_list[*]}; do ...@@ -107,7 +107,7 @@ for train_model in ${train_model_list[*]}; do
env="CUDA_VISIBLE_DEVICES=${array[0]}" env="CUDA_VISIBLE_DEVICES=${array[0]}"
IFS="|" IFS="|"
fi fi
IFS="|"
for auto_cast in ${auto_cast_list[*]}; do for auto_cast in ${auto_cast_list[*]}; do
for slim_trainer in ${slim_trainer_list[*]}; do for slim_trainer in ${slim_trainer_list[*]}; do
if [ ${slim_trainer} = "norm" ]; then if [ ${slim_trainer} = "norm" ]; then
...@@ -126,13 +126,13 @@ for train_model in ${train_model_list[*]}; do ...@@ -126,13 +126,13 @@ for train_model in ${train_model_list[*]}; do
trainer="tools/train.py" trainer="tools/train.py"
export_model="tools/export_model.py" export_model="tools/export_model.py"
fi fi
save_log=${log_path}/${model_name}_${slim_trainer}_autocast_${auto_cast}_gpuid_${gpu} save_log="${log_path}/${model_name}_${slim_trainer}_autocast_${auto_cast}_gpuid_${gpu}"
command="${env} ${python} ${launch} ${trainer} -c ${yml_file} -o Global.epoch_num=${epoch} Global.eval_batch_step=${eval_batch_step} Global.auto_cast=${auto_cast} Global.save_model_dir=${save_log} Global.use_gpu=${use_gpu}" command="${env} ${python} ${launch} ${trainer} -c ${yml_file} -o Global.epoch_num=${epoch} Global.eval_batch_step=${eval_batch_step} Global.auto_cast=${auto_cast} Global.save_model_dir=${save_log} Global.use_gpu=${use_gpu}"
${env} ${python} ${launch} ${trainer} -c ${yml_file} -o Global.epoch_num=${epoch} Global.eval_batch_step=${eval_batch_step} Global.auto_cast=${auto_cast} Global.save_model_dir=${save_log} Global.use_gpu=${use_gpu} ${env} ${python} ${launch} ${trainer} -c ${yml_file} -o Global.epoch_num=${epoch} Global.eval_batch_step=${eval_batch_step} Global.auto_cast=${auto_cast} Global.save_model_dir=${save_log} Global.use_gpu=${use_gpu}
status_check $? "${trainer}" "${command}" "${save_log}/train.log" status_check $? "${trainer}" "${command}" "${save_log}/train.log"
command="${env} ${python} ${export_model} -c ${yml_file} -o Global.pretrained_model=${save_log}/best_accuracy Global.save_inference_dir=${save_log}/export_inference/ Global.save_model_dir=${save_log}" command="${env} ${python} ${export_model} -c ${yml_file} -o Global.pretrained_model=${save_log}/latest Global.save_inference_dir=${save_log}/export_inference/ Global.save_model_dir=${save_log}"
${env} ${python} ${export_model} -c ${yml_file} -o Global.pretrained_model=${save_log}/best_accuracy Global.save_inference_dir=${save_log}/export_inference/ Global.save_model_dir=${save_log} ${env} ${python} ${export_model} -c ${yml_file} -o Global.pretrained_model=${save_log}/latest Global.save_inference_dir=${save_log}/export_inference/ Global.save_model_dir=${save_log}
status_check $? "${trainer}" "${command}" "${save_log}/train.log" status_check $? "${trainer}" "${command}" "${save_log}/train.log"
if [ "${model_name}" = "det" ]; then if [ "${model_name}" = "det" ]; then
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册