diff --git a/test/infer.sh b/test/infer.sh index 4c49dde7700cc51a038f1e2f0d376590844da2bb..db8b788c071a2f00f6e0270a8bedcb7d3ca51762 100644 --- a/test/infer.sh +++ b/test/infer.sh @@ -14,8 +14,6 @@ function func_parser(){ IFS=$'\n' # The training params train_model_list=$(func_parser "${lines[0]}") -gpu_list=$(func_parser "${lines[1]}") -auto_cast_list=$(func_parser "${lines[2]}") slim_trainer_list=$(func_parser "${lines[3]}") python=$(func_parser "${lines[4]}") # inference params @@ -27,13 +25,15 @@ rec_batch_size_list=$(func_parser "${lines[9]}") gpu_trt_list=$(func_parser "${lines[10]}") gpu_precision_list=$(func_parser "${lines[11]}") +infer_gpu_id=$(func_parser "${lines[12]}") +log_path=$(func_parser "${lines[13]}") + function status_check(){ last_status=$1 # the exit code run_model=$2 run_command=$3 save_log=$4 - echo ${case3} if [ $last_status -eq 0 ]; then echo -e "\033[33m $run_model successfully with command - ${run_command}! \033[0m" | tee -a ${save_log} else @@ -45,11 +45,13 @@ for train_model in ${train_model_list[*]}; do if [ ${train_model} = "det" ];then model_name="det" yml_file="configs/det/det_mv3_db.yml" - img_dir="" + 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/" elif [ ${train_model} = "rec" ];then model_name="rec" yml_file="configs/rec/rec_mv3_none_bilstm_ctc.yml" - img_dir="" + 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 + img_dir="./inference/ch_rec_data_200/" fi # eval @@ -126,6 +128,7 @@ for train_model in ${train_model_list[*]}; do done done else + env="CUDA_VISIBLE_DEVICES=${infer_gpu_id}" for use_trt in ${gpu_trt_list[*]}; do for precision in ${gpu_precision_list[*]}; do if [ ${use_trt} = "False" ] && [ ${precision} != "fp32" ]; then @@ -133,8 +136,8 @@ for train_model in ${train_model_list[*]}; do fi 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" - command="${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}" - ${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} status_check $? "${trainer}" "${command}" "${save_log_path}" done done diff --git a/test/params.txt b/test/params.txt index e94b21e7b1711c32ec9b1b0a3680a7df9db61ff0..ff1cc008f1ad3d9c322c782f12a37435446d794f 100644 --- a/test/params.txt +++ b/test/params.txt @@ -11,5 +11,5 @@ cpu_threads_list: 1|6 rec_batch_size_list: 1|6 gpu_trt_list: True|False gpu_precision_list: fp32|fp16|int8 - +infer_gpu_id: 0 log_path: ./output diff --git a/test/test.sh b/test/test.sh index a7bb76f312e683f93781f48e293538776f0b7f51..cc1aee923a92467bb2beed679aa5e449d201058d 100644 --- a/test/test.sh +++ b/test/test.sh @@ -64,14 +64,13 @@ rec_batch_size_list=$(func_parser "${lines[9]}") gpu_trt_list=$(func_parser "${lines[10]}") gpu_precision_list=$(func_parser "${lines[11]}") -log_path=$(func_parser "${lines[12]}") +log_path=$(func_parser "${lines[13]}") function status_check(){ last_status=$1 # the exit code run_model=$2 run_command=$3 save_log=$4 - echo ${case3} if [ $last_status -eq 0 ]; then echo -e "\033[33m $run_model successfully with command - ${run_command}! \033[0m" | tee -a ${save_log} else @@ -97,10 +96,16 @@ for train_model in ${train_model_list[*]}; do if [ ${gpu} = "-1" ];then lanuch="" use_gpu=False + env="" elif [ ${#gpu} -le 1 ];then launch="" + env="CUDA_VISIBLE_DEVICES=${gpu}" else launch="-m paddle.distributed.launch --log_dir=./debug/ --gpus ${gpu}" + IFS="," + array=(${gpu}) + env="CUDA_VISIBLE_DEVICES=${array[0]}" + IFS="|" fi for auto_cast in ${auto_cast_list[*]}; do @@ -122,13 +127,13 @@ for train_model in ${train_model_list[*]}; do export_model="tools/export_model.py" fi save_log=${log_path}/${model_name}_${slim_trainer}_autocast_${auto_cast}_gpuid_${gpu} - command="${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}" - echo ${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" + 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} + status_check $? "${trainer}" "${command}" "${save_log}/train.log" - command="${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}" - echo ${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} - # 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}" + ${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} + status_check $? "${trainer}" "${command}" "${save_log}/train.log" if [ "${model_name}" = "det" ]; then export rec_batch_size_list=( "1" ) @@ -148,8 +153,8 @@ for train_model in ${train_model_list[*]}; do 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=${save_log}/export_inference/ --rec_batch_num=${rec_batch_size} --rec_model_dir=${rec_model_dir} --image_dir=${img_dir} --save_log_path=${save_log_path}" - echo ${python} ${inference} --enable_mkldnn=${use_mkldnn} --use_gpu=False --cpu_threads=${threads} --benchmark=True --det_model_dir=${save_log}/export_inference/ --rec_batch_num=${rec_batch_size} --rec_model_dir=${rec_model_dir} --image_dir=${img_dir} --save_log_path=${save_log_path} - # status_check $? "${inference}" "${command}" "${save_log}" + ${python} ${inference} --enable_mkldnn=${use_mkldnn} --use_gpu=False --cpu_threads=${threads} --benchmark=True --det_model_dir=${save_log}/export_inference/ --rec_batch_num=${rec_batch_size} --rec_model_dir=${rec_model_dir} --image_dir=${img_dir} --save_log_path=${save_log_path} + status_check $? "${inference}" "${command}" "${save_log}" done done done @@ -161,8 +166,9 @@ for train_model in ${train_model_list[*]}; do fi 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" - echo ${python} ${inference} --use_gpu=True --use_tensorrt=${use_trt} --precision=${precision} --benchmark=True --det_model_dir=${save_log}/export_inference/ --rec_batch_num=${rec_batch_size} --rec_model_dir=${rec_model_dir} --image_dir=${img_dir} --save_log_path=${save_log_path} - # status_check $? "${inference}" "${command}" "${save_log}" + command="${env} ${python} ${inference} --use_gpu=True --use_tensorrt=${use_trt} --precision=${precision} --benchmark=True --det_model_dir=${save_log}/export_inference/ --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=${save_log}/export_inference/ --rec_batch_num=${rec_batch_size} --rec_model_dir=${rec_model_dir} --image_dir=${img_dir} --save_log_path=${save_log_path} + status_check $? "${inference}" "${command}" "${save_log}" done done done