59 lines
2.4 KiB
Bash
59 lines
2.4 KiB
Bash
|
#!/bin/bash
|
||
|
source test_tipc/common_func.sh
|
||
|
|
||
|
BASIC_CONFIG="./config.txt"
|
||
|
CONFIG=$1
|
||
|
|
||
|
# parser tipc config
|
||
|
IFS=$'\n'
|
||
|
TIPC_CONFIG=$1
|
||
|
tipc_dataline=$(cat $TIPC_CONFIG)
|
||
|
tipc_lines=(${tipc_dataline})
|
||
|
|
||
|
runtime_device=$(func_parser_value_lite "${tipc_lines[0]}" ":")
|
||
|
lite_arm_work_path=$(func_parser_value_lite "${tipc_lines[1]}" ":")
|
||
|
lite_arm_so_path=$(func_parser_value_lite "${tipc_lines[2]}" ":")
|
||
|
clas_model_name=$(func_parser_value_lite "${tipc_lines[3]}" ":")
|
||
|
inference_cmd=$(func_parser_value_lite "${tipc_lines[4]}" ":")
|
||
|
num_threads_list=$(func_parser_value_lite "${tipc_lines[5]}" ":")
|
||
|
batch_size_list=$(func_parser_value_lite "${tipc_lines[6]}" ":")
|
||
|
precision_list=$(func_parser_value_lite "${tipc_lines[7]}" ":")
|
||
|
|
||
|
|
||
|
# Prepare config and test.sh
|
||
|
work_path="./deploy/lite"
|
||
|
cp ${CONFIG} ${work_path}
|
||
|
cp test_tipc/test_lite_arm_cpu_cpp.sh ${work_path}
|
||
|
|
||
|
# Prepare model
|
||
|
cd ${work_path}
|
||
|
pip3 install paddlelite==2.10
|
||
|
model_url="https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/inference/${clas_model_name}_infer.tar"
|
||
|
wget --no-proxy ${model_url}
|
||
|
model_tar=$(echo ${model_url} | awk -F "/" '{print $NF}')
|
||
|
tar -xf ${model_tar}
|
||
|
paddle_lite_opt --model_dir=${clas_model_name}_infer --model_file=${clas_model_name}_infer/inference.pdmodel --param_file=${clas_model_name}_infer/inference.pdiparams --valid_targets=arm --optimize_out=${clas_model_name}
|
||
|
rm -rf ${clas_model_name}_infer*
|
||
|
|
||
|
# Prepare paddlelite library
|
||
|
paddlelite_lib_url="https://github.com/PaddlePaddle/Paddle-Lite/releases/download/v2.10/inference_lite_lib.android.armv8.clang.c++_static.with_extra.with_cv.tar.gz"
|
||
|
wget ${paddlelite_lib_url}
|
||
|
paddlelite_lib_file=$(echo ${paddlelite_lib_url} | awk -F "/" '{print $NF}')
|
||
|
tar -xzf ${paddlelite_lib_file}
|
||
|
mv ${paddlelite_lib_file%*.tar.gz} inference_lite_lib.android.armv8
|
||
|
rm -rf ${paddlelite_lib_file%*.tar.gz}*
|
||
|
|
||
|
# Compile and obtain executable binary file
|
||
|
git clone https://github.com/LDOUBLEV/AutoLog.git
|
||
|
make
|
||
|
|
||
|
# push executable binary, library, lite model, data, etc. to arm device
|
||
|
adb shell mkdir -p ${lite_arm_work_path}
|
||
|
adb push $(echo ${inference_cmd} | awk '{print $1}') ${lite_arm_work_path}
|
||
|
adb shell chmod +x ${lite_arm_work_path}/$(echo ${inference_cmd} | awk '{print $1}')
|
||
|
adb push ${lite_arm_so_path} ${lite_arm_work_path}
|
||
|
adb push ${clas_model_name}.nb ${lite_arm_work_path}
|
||
|
adb push ${BASIC_CONFIG} ${lite_arm_work_path}
|
||
|
adb push ../../ppcls/utils/imagenet1k_label_list.txt ${lite_arm_work_path}
|
||
|
adb push imgs/$(echo ${inference_cmd} | awk '{print $3}') ${lite_arm_work_path}
|