multi-inputs models support fp16 mode and add models to the entrance guard

This commit is contained in:
zengxianglong 2021-03-24 10:37:07 +08:00
parent 12db983888
commit 33583ce794
9 changed files with 103 additions and 15 deletions

View File

@ -89,3 +89,6 @@ ml_video_edit_person_divison_pic
ml_video_edit_reid
ml_video_edit_v10_best_model_nomean_20200723
ml_handpose
ml_lable_model_hebing_device
ml_face_sex
ml_face_hat

View File

@ -18,7 +18,6 @@ efficientnet_lite3_int8_2.tflite
efficientnet_lite4_int8_2.tflite
mtk_transformer_encoder.tflite
mtk_transformer_decoder_joint.tflite
ml_ei_facedetection.onnx
quant_aware_bank_card_detection_inception.onnx
quant_aware_bank_card_recognition_fcny.onnx
quant_aware_identify_card_detect.onnx

View File

@ -41,7 +41,6 @@ ml_video_edit_img_segment_adaptise.pb 0.5 2
ml_video_edit_video_segment_gauss_adaptis_part2.pb 10 2
ml_video_edit_person_divison_pic 0.5
ml_video_edit_person_divison_video 13 2
ml_video_edit_imitate_filter.onnx 230
ml_video_edit_judge.onnx 5
ml_video_edit_vignet.onnx 0.5
hdc_Face_Aesthetic_MTI_Aesthetic 0.5
@ -73,6 +72,7 @@ densenet.tflite 3
ml_video_edit_enhance.pb 2
ml_video_edit_video_segment_gauss_adaptis_part2_pb2tflite.tflite 3 2
ml_video_edit_img_segment_adaptise_pb2tflite.tflite 0.5 2
ml_video_edit_imitate_filter.onnx 103
#the fifth value of the ml_video_edit_imitate_filter.onnx's output is very small (10-5).
ml_video_edit_imitate_filter.onnx 200
hdc_mobilenet_1w_class.onnx 20
hdc_age_medium 504

View File

@ -27,7 +27,7 @@ psenet_lite_mbv2.onnx;1,32,32,3
super-resolution-10.onnx;1,224,224,1
tinyyolov2-8.onnx;1,416,416,3
ml_2012_ocr_cn.onnx
#ml_2012_ocr_cn_noLSTM.onnx
ml_2012_ocr_cn_noLSTM.onnx
candy-9.onnx
mosaic-9.onnx
pointilism-9.onnx
@ -56,3 +56,5 @@ hdc_ocr_attention.onnx
hdc_ocr_detect.onnx
ml_edu_kit_hand_detection.onnx
ml_edu_kit_hand_key_position.onnx
ml_facedetector.onnx
ml_ei_facedetection.onnx

View File

@ -52,3 +52,6 @@ hdc_Image_Aesthetic_MTI_Aesthetic.onnx 0.5
hdc_resnet_1w_class.onnx 6
gts_text_detection.onnx;1,224,224,3 10
hdc_Face_Emotion_MTI_Aesthetic.onnx 144
ml_video_edit_imitate_filter.onnx 103
ml_facedetector.onnx 3
ml_ei_facedetection.onnx 2

View File

@ -138,3 +138,12 @@ mindspore_text_classification_tflite.tflite
# ml_location.tflite
ml_text_correction.tflite
ml_pic_shopping.tflite
ml_vision_guide_detection3_pb2tflite.tflite
ml_pic_shopping_pb2tflite.tflite
ml_ocr_jk_pb2tflite.tflite
ml_ocr_latin_pb2tflite.tflite
scan_hms_angle_pb2tflite.tflite
scan_hms_detect_pb2tflite.tflite
ml_location.tflite
ml_face_openclose_tflite.tflite
ml_object_detect_pb2tflite.tflite

View File

@ -140,3 +140,12 @@ ml_text_correction.tflite 1
# e.g. fp32: 27.5 -27.4 = 0.1
# fp16: 27.6 - 27.4 = 0.2
#ml_pic_shopping.tflite 0.1
ml_vision_guide_detection3_pb2tflite.tflite 0.5
ml_pic_shopping_pb2tflite.tflite 95
ml_ocr_jk_pb2tflite.tflite 0.5
ml_ocr_latin_pb2tflite.tflite 11
scan_hms_angle_pb2tflite.tflite 2.5
scan_hms_detect_pb2tflite.tflite 1.5
ml_location.tflite 0.5
ml_face_openclose_tflite.tflite 0.5
ml_object_detect_pb2tflite.tflite 1.5

View File

@ -0,0 +1,7 @@
ml_video_edit_video_segment_gauss_adaptis_part2_pb2tflite.tflite;2 11
ml_video_edit_video_segment_gauss_adaptis_part2.pb;2 11
ml_video_edit_img_segment_adaptise.pb;2 40
ml_video_edit_img_segment_adaptise_pb2tflite.tflite;2 0.5
ml_video_edit_person_divison_video;2 38
ml_video_edit_oneclick_adaptis.pb;3 6
hdc_tb_cn_neg.tflite;3 281

View File

@ -315,6 +315,22 @@ function Run_Converter() {
fi
done < ${models_with_multiple_inputs_config}
while read line; do
fp16_line_info=${line}
if [[ $fp16_line_info == \#* ]]; then
continue
fi
model_info=`echo ${fp16_line_info}|awk -F ' ' '{print $1}'`
model_name=${model_info%%;*}
echo 'cp '${ms_models_path}'/'${model_name}'.ms' ${ms_models_path}'/'${model_name}'.fp16.ms'
cp ${ms_models_path}/${model_name}.ms ${ms_models_path}/${model_name}.fp16.ms
if [ $? = 0 ]; then
converter_result='converter fp16 '${model_name}' pass';echo ${converter_result} >> ${run_converter_result_file}
else
converter_result='converter fp16 '${model_name}' failed';echo ${converter_result} >> ${run_converter_result_file};return 1
fi
done < ${models_multiple_inputs_fp16_config}
# Convert models which does not need to be cared about the accuracy:
while read line; do
if [[ $line == \#* ]]; then
@ -1778,6 +1794,44 @@ function Run_arm64_fp16() {
run_result='arm64_fp16: '${model_name}' failed'; echo ${run_result} >> ${run_benchmark_result_file}; return 1
fi
done < ${models_tflite_fp16_config}
# Run converted models which has multiple inputs in fp16 mode:
while read line; do
fp16_line_info=${line}
if [[ $fp16_line_info == \#* ]]; then
continue-
fi
model_info=`echo ${fp16_line_info}|awk -F ' ' '{print $1}'`
accuracy_limit=`echo ${fp16_line_info}|awk -F ' ' '{print $2}'`
model_name=`echo ${model_info}|awk -F ';' '{print $1}'`
input_num=`echo ${model_info} | awk -F ';' '{print $2}'`
input_shapes=`echo ${model_info} | awk -F ';' '{print $3}'`
input_files=''
output_file=''
data_path="/data/local/tmp/input_output/"
for i in $(seq 1 $input_num)
do
input_files=$input_files${data_path}'input/'$model_name'.ms.bin_'$i','
done
output_file=${data_path}'output/'${model_name}'.ms.out'
if [[ ${model_name##*.} == "caffemodel" ]]; then
model_name=${model_name%.*}
fi
echo "---------------------------------------------------------" >> "${run_arm64_fp16_log_file}"
echo "fp16 run: ${model_name}, accuracy limit:${accuracy_limit}" >> "${run_arm64_fp16_log_file}"
echo 'cd /data/local/tmp/benchmark_test' > adb_run_cmd.txt
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/local/tmp/benchmark_test' >> adb_run_cmd.txt
echo './benchmark --modelFile='${model_name}'.fp16.ms --inDataFile='${input_files}' --inputShapes='${input_shapes}' --benchmarkDataFile='${output_file} '--enableFp16=true --accuracyThreshold='${accuracy_limit} >> adb_run_cmd.txt
cat adb_run_cmd.txt >> "${run_arm64_fp16_log_file}"
adb -s ${device_id} shell < adb_run_cmd.txt >> "${run_arm64_fp16_log_file}"
if [ $? = 0 ]; then
run_result='arm64_fp16: '${model_name}' pass'; echo ${run_result} >> ${run_benchmark_result_file}
else
run_result='arm64_fp16: '${model_name}' failed'; echo ${run_result} >> ${run_benchmark_result_file}; return 1
fi
done < ${models_multiple_inputs_fp16_config}
}
# Run on gpu platform:
function Run_gpu() {
@ -2002,6 +2056,7 @@ models_onnx_config=${basepath}/models_onnx.cfg
models_onnx_fp16_config=${basepath}/models_onnx_fp16.cfg
models_caffe_fp16_config=${basepath}/models_caffe_fp16.cfg
models_tflite_fp16_config=${basepath}/models_tflite_fp16.cfg
models_multiple_inputs_fp16_config=${basepath}/models_with_multiple_inputs_fp16.cfg
models_mindspore_config=${basepath}/models_mindspore.cfg
models_mindspore_train_config=${basepath}/models_mindspore_train.cfg
models_mindspore_mixbit_config=${basepath}/models_mindspore_mixbit.cfg
@ -2175,17 +2230,6 @@ if [[ $backend == "all" || $backend == "gpu_npu" || $backend == "npu" ]]; then
sleep 1
fi
if [[ $backend == "all" || $backend == "x86-all" || $backend == "x86" ]]; then
wait ${Run_x86_PID}
Run_x86_status=$?
# Check benchmark result and return value
if [[ ${Run_x86_status} != 0 ]];then
echo "Run_x86 failed"
cat ${run_x86_log_file}
isFailed=1
fi
fi
if [[ $backend == "all" || $backend == "x86-all" || $backend == "x86-sse" ]]; then
wait ${Run_x86_sse_PID}
Run_x86_sse_status=$?
@ -2207,6 +2251,18 @@ if [[ $backend == "all" || $backend == "x86-all" || $backend == "x86-avx" ]]; th
fi
fi
if [[ $backend == "all" || $backend == "x86-all" || $backend == "x86" ]]; then
wait ${Run_x86_PID}
Run_x86_status=$?
# Check benchmark result and return value
if [[ ${Run_x86_status} != 0 ]];then
echo "Run_x86 failed"
cat ${run_x86_log_file}
isFailed=1
fi
fi
if [[ $backend == "all" || $backend == "arm_cpu" || $backend == "arm64_fp32" ]]; then
if [[ ${Run_arm64_fp32_status} != 0 ]];then
echo "Run_arm64_fp32 failed"