From d3d03b309c8381c275547ce1cab45a1e05b688da Mon Sep 17 00:00:00 2001 From: Emir Haleva Date: Wed, 14 Jul 2021 12:35:24 +0300 Subject: [PATCH] add code examples to CI tests --- cmake/package_lite.cmake | 1 - .../train_lenet/model/prepare_model.sh | 20 +++-- .../examples/train_lenet/prepare_and_run.sh | 57 ++++++------- .../train_lenet_java/model/prepare_model.sh | 26 +++--- .../train_lenet_java/prepare_and_run.sh | 16 +++- .../unified_api/model/prepare_model.sh | 2 +- .../examples/unified_api/prepare_and_run.sh | 2 + .../unified_api/scripts/batch_of32.dat | Bin 0 -> 131072 bytes .../lite/src/cxx_api/tensor/tensor_impl.h | 8 +- .../lite/test/st/scripts/run_net_train.sh | 78 ++++++++++++++++++ 10 files changed, 152 insertions(+), 58 deletions(-) create mode 100644 mindspore/lite/examples/unified_api/scripts/batch_of32.dat diff --git a/cmake/package_lite.cmake b/cmake/package_lite.cmake index d3d2556adcc..639270e3d1e 100644 --- a/cmake/package_lite.cmake +++ b/cmake/package_lite.cmake @@ -7,7 +7,6 @@ set(CONVERTER_ROOT_DIR ${RUNTIME_PKG_NAME}/tools/converter) set(OBFUSCATOR_ROOT_DIR ${RUNTIME_PKG_NAME}/tools/obfuscator) set(CROPPER_ROOT_DIR ${RUNTIME_PKG_NAME}/tools/cropper) set(TEST_CASE_DIR ${TOP_DIR}/mindspore/lite/test/build) -set(TEST_DIR ${TOP_DIR}/mindspore/lite/test) set(RUNTIME_DIR ${RUNTIME_PKG_NAME}/runtime) set(RUNTIME_INC_DIR ${RUNTIME_PKG_NAME}/runtime/include) diff --git a/mindspore/lite/examples/train_lenet/model/prepare_model.sh b/mindspore/lite/examples/train_lenet/model/prepare_model.sh index 0eca26da2e4..6987d2964d0 100755 --- a/mindspore/lite/examples/train_lenet/model/prepare_model.sh +++ b/mindspore/lite/examples/train_lenet/model/prepare_model.sh @@ -1,13 +1,15 @@ #!/bin/bash -echo "============Exporting==========" - rm -f lenet_tod.mindir -if [ -n "$2" ]; then - DOCKER_IMG=$2 - docker run -w $PWD --runtime=nvidia -v /home/$USER:/home/$USER --privileged=true ${DOCKER_IMG} /bin/bash -c "PYTHONPATH=../../../../../model_zoo/official/cv/lenet/src python lenet_export.py '$1'; chmod 444 lenet_tod.mindir; rm -rf __pycache__" -else - echo "MindSpore docker was not provided, attempting to run locally" - PYTHONPATH=../../../../../model_zoo/official/cv/lenet/src python lenet_export.py $1 +if [[ -z ${EXPORT} ]]; then + echo "============Exporting==========" + rm -f lenet_tod.mindir + if [ -n "$2" ]; then + DOCKER_IMG=$2 + docker run -w $PWD --runtime=nvidia -v /home/$USER:/home/$USER --privileged=true ${DOCKER_IMG} /bin/bash -c "PYTHONPATH=../../../../../model_zoo/official/cv/lenet/src python lenet_export.py '$1'; chmod 444 lenet_tod.mindir; rm -rf __pycache__" + else + echo "MindSpore docker was not provided, attempting to run locally" + PYTHONPATH=../../../../../model_zoo/official/cv/lenet/src python lenet_export.py $1 + fi fi @@ -33,5 +35,5 @@ if [[ ! -z ${QUANTIZE} ]]; then echo "Quantizing weights" QUANT_OPTIONS="--quantType=WeightQuant --bitNum=8 --quantWeightSize=100 --quantWeightChannel=15" fi -LD_LIBRARY_PATH=./ $CONVERTER --fmk=MINDIR --trainModel=true --modelFile=lenet_tod.mindir --outputFile=lenet_tod $QUANT_OPTIONS +LD_LIBRARY_PATH=./:${LD_LIBRARY_PATH} $CONVERTER --fmk=MINDIR --trainModel=true --modelFile=lenet_tod.mindir --outputFile=lenet_tod $QUANT_OPTIONS diff --git a/mindspore/lite/examples/train_lenet/prepare_and_run.sh b/mindspore/lite/examples/train_lenet/prepare_and_run.sh index 0dfdf502533..8bfc23011a3 100755 --- a/mindspore/lite/examples/train_lenet/prepare_and_run.sh +++ b/mindspore/lite/examples/train_lenet/prepare_and_run.sh @@ -2,26 +2,42 @@ display_usage() { - echo -e "\nUsage: prepare_and_run.sh -D dataset_path [-d mindspore_docker] [-r release.tar.gz] [-t arm64|x86] [-q] [-o] [-b virtual_batch]\n" + echo -e "\nUsage: prepare_and_run.sh -D dataset_path [-d mindspore_docker] [-r release.tar.gz] [-t arm64|x86] [-q] [-o] [-b virtual_batch] [-m mindir]\n" } checkopts() { TARGET="arm64" DOCKER="" + MINDIR_FILE="" MNIST_DATA_PATH="" QUANTIZE="" - ENABLEFP16=false + FP16_FLAG="" VIRTUAL_BATCH=-1 - while getopts 'D:d:r:t:qob:' opt + while getopts 'D:b:d:m:oqr:t:' opt do case "${opt}" in + b) + VIRTUAL_BATCH=$OPTARG + ;; D) MNIST_DATA_PATH=$OPTARG ;; d) DOCKER=$OPTARG ;; + m) + MINDIR_FILE=$OPTARG + ;; + o) + FP16_FLAG="-o" + ;; + q) + QUANTIZE="QUANTIZE" + ;; + r) + TARBALL=$OPTARG + ;; t) if [ "$OPTARG" == "arm64" ] || [ "$OPTARG" == "x86" ]; then TARGET=$OPTARG @@ -31,18 +47,6 @@ checkopts() exit 1 fi ;; - r) - TARBALL=$OPTARG - ;; - q) - QUANTIZE="QUANTIZE" - ;; - o) - ENABLEFP16=true - ;; - b) - VIRTUAL_BATCH=$OPTARG - ;; *) echo "Unknown option ${opt}!" display_usage @@ -81,10 +85,15 @@ else BATCH=1 fi +EXPORT="" +if [ "$MINDIR_FILE" != "" ]; then + cp -f $MINDIR_FILE model/lenet_tod.mindir + EXPORT="DONT_EXPORT" +fi cd model/ || exit 1 rm -f *.ms -QUANTIZE=${QUANTIZE} ./prepare_model.sh $BATCH $DOCKER || exit 1 +EXPORT=${EXPORT} QUANTIZE=${QUANTIZE} ./prepare_model.sh $BATCH $DOCKER || exit 1 cd ../ # Copy the .ms model to the package folder @@ -109,6 +118,8 @@ fi rm -rf msl mv mindspore-* msl/ +rm -rf msl/tools/ +rm ${PACKAGE}/lib/*.a # Copy the dataset to the package cp -r $MNIST_DATA_PATH ${PACKAGE}/dataset || exit 1 @@ -127,21 +138,11 @@ if [ "${TARGET}" == "arm64" ]; then adb push ${PACKAGE} /data/local/tmp/ echo "========Training on Device=====" - if "$ENABLEFP16"; then - echo "Training fp16.." - adb shell "cd /data/local/tmp/package-arm64 && /system/bin/sh train.sh -o -b ${VIRTUAL_BATCH}" - else - adb shell "cd /data/local/tmp/package-arm64 && /system/bin/sh train.sh -b ${VIRTUAL_BATCH}" - fi + adb shell "cd /data/local/tmp/package-arm64 && /system/bin/sh train.sh ${FP16_FLAG} -b ${VIRTUAL_BATCH}" echo echo "===Evaluating trained Model=====" - if "$ENABLEFP16"; then - echo "Evaluating fp16 Model.." - adb shell "cd /data/local/tmp/package-arm64 && /system/bin/sh eval.sh -o" - else - adb shell "cd /data/local/tmp/package-arm64 && /system/bin/sh eval.sh" - fi + adb shell "cd /data/local/tmp/package-arm64 && /system/bin/sh eval.sh ${FP16_FLAG}" echo else cd ${PACKAGE} || exit 1 diff --git a/mindspore/lite/examples/train_lenet_java/model/prepare_model.sh b/mindspore/lite/examples/train_lenet_java/model/prepare_model.sh index e1ea1ab252f..0afa69172b6 100755 --- a/mindspore/lite/examples/train_lenet_java/model/prepare_model.sh +++ b/mindspore/lite/examples/train_lenet_java/model/prepare_model.sh @@ -1,17 +1,19 @@ #!/bin/bash -echo "============Exporting==========" -if [ -n "$1" ]; then - DOCKER_IMG=$1 - docker run -w $PWD --runtime=nvidia -v /home/$USER:/home/$USER --privileged=true ${DOCKER_IMG} /bin/bash -c "PYTHONPATH=../../../../../model_zoo/official/cv/lenet/src python lenet_export.py; chmod 444 lenet_tod.mindir; rm -rf __pycache__" -else - echo "MindSpore docker was not provided, attempting to run locally" - PYTHONPATH=../../../../../model_zoo/official/cv/lenet/src python lenet_export.py -fi - -if [ ! -f "$CONVERTER" ]; then - echo "converter_lite could not be found in MindSpore build directory nor in system path" - exit 1 +if [[ -z ${EXPORT} ]]; then + echo "============Exporting==========" + if [ -n "$1" ]; then + DOCKER_IMG=$1 + docker run -w $PWD --runtime=nvidia -v /home/$USER:/home/$USER --privileged=true ${DOCKER_IMG} /bin/bash -c "PYTHONPATH=../../../../../model_zoo/official/cv/lenet/src python lenet_export.py; chmod 444 lenet_tod.mindir; rm -rf __pycache__" + else + echo "MindSpore docker was not provided, attempting to run locally" + PYTHONPATH=../../../../../model_zoo/official/cv/lenet/src python lenet_export.py + fi + + if [ ! -f "$CONVERTER" ]; then + echo "converter_lite could not be found in MindSpore build directory nor in system path" + exit 1 + fi fi echo "============Converting=========" diff --git a/mindspore/lite/examples/train_lenet_java/prepare_and_run.sh b/mindspore/lite/examples/train_lenet_java/prepare_and_run.sh index c07467c0dcd..2b02f6ab5ec 100755 --- a/mindspore/lite/examples/train_lenet_java/prepare_and_run.sh +++ b/mindspore/lite/examples/train_lenet_java/prepare_and_run.sh @@ -18,14 +18,15 @@ display_usage() { - echo -e "\nUsage: prepare_and_run.sh -D dataset_path [-d mindspore_docker] [-r release.tar.gz]\n" + echo -e "\nUsage: prepare_and_run.sh -D dataset_path [-d mindspore_docker] [-r release.tar.gz] [-m mindir]\n" } checkopts() { DOCKER="" + MINDIR_FILE="" MNIST_DATA_PATH="" - while getopts 'D:d:r:' opt + while getopts 'D:d:m:r:' opt do case "${opt}" in D) @@ -34,6 +35,9 @@ checkopts() d) DOCKER=$OPTARG ;; + m) + MINDIR_FILE=$OPTARG + ;; r) TARBALL="-r $OPTARG" ;; @@ -56,12 +60,18 @@ fi BASEPATH=$(cd "$(dirname $0)" || exit; pwd) +EXPORT="" +if [ "$MINDIR_FILE" != "" ]; then + cp -f $MINDIR_FILE model/lenet_tod.mindir + EXPORT="DONT_EXPORT" +fi + cd model/ || exit 1 MSLITE_LINUX=$(ls -d ${BASEPATH}/build/mindspore-lite-*-linux-x64) CONVERTER=${MSLITE_LINUX}/tools/converter/converter/converter_lite rm -f *.ms LD_LIBRARY_PATH=${MSLITE_LINUX}/tools/converter/lib/:${MSLITE_LINUX}/tools/converter/third_party/glog/lib -LD_LIBRARY_PATH=${LD_LIBRARY_PATH} CONVERTER=${CONVERTER} ./prepare_model.sh $DOCKER || exit 1 +EXPORT=${EXPORT} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} CONVERTER=${CONVERTER} ./prepare_model.sh $DOCKER || exit 1 cd ../ cd target || exit 1 diff --git a/mindspore/lite/examples/unified_api/model/prepare_model.sh b/mindspore/lite/examples/unified_api/model/prepare_model.sh index bc6e46758e1..6987d2964d0 100755 --- a/mindspore/lite/examples/unified_api/model/prepare_model.sh +++ b/mindspore/lite/examples/unified_api/model/prepare_model.sh @@ -35,5 +35,5 @@ if [[ ! -z ${QUANTIZE} ]]; then echo "Quantizing weights" QUANT_OPTIONS="--quantType=WeightQuant --bitNum=8 --quantWeightSize=100 --quantWeightChannel=15" fi -LD_LIBRARY_PATH=./ $CONVERTER --fmk=MINDIR --trainModel=true --modelFile=lenet_tod.mindir --outputFile=lenet_tod $QUANT_OPTIONS +LD_LIBRARY_PATH=./:${LD_LIBRARY_PATH} $CONVERTER --fmk=MINDIR --trainModel=true --modelFile=lenet_tod.mindir --outputFile=lenet_tod $QUANT_OPTIONS diff --git a/mindspore/lite/examples/unified_api/prepare_and_run.sh b/mindspore/lite/examples/unified_api/prepare_and_run.sh index 82fe5989309..c2c5ea13c79 100755 --- a/mindspore/lite/examples/unified_api/prepare_and_run.sh +++ b/mindspore/lite/examples/unified_api/prepare_and_run.sh @@ -114,6 +114,8 @@ fi rm -rf msl mv mindspore-* msl/ +rm -rf msl/tools/ +rm ${PACKAGE}/lib/*.a # Copy the dataset to the package cp -r $MNIST_DATA_PATH ${PACKAGE}/dataset || exit 1 diff --git a/mindspore/lite/examples/unified_api/scripts/batch_of32.dat b/mindspore/lite/examples/unified_api/scripts/batch_of32.dat new file mode 100644 index 0000000000000000000000000000000000000000..5e79e95ef231f61613a0f9603a380bc645753e98 GIT binary patch literal 131072 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 literal 0 HcmV?d00001 diff --git a/mindspore/lite/src/cxx_api/tensor/tensor_impl.h b/mindspore/lite/src/cxx_api/tensor/tensor_impl.h index dceec3bc167..f54a74577c7 100644 --- a/mindspore/lite/src/cxx_api/tensor/tensor_impl.h +++ b/mindspore/lite/src/cxx_api/tensor/tensor_impl.h @@ -113,9 +113,9 @@ class MSTensor::Impl { return empty; } auto shape = lite_tensor_->shape(); - lite_shape.resize(shape.size()); - std::transform(shape.begin(), shape.end(), lite_shape.begin(), [](int c) { return static_cast(c); }); - return lite_shape; + lite_shape_.resize(shape.size()); + std::transform(shape.begin(), shape.end(), lite_shape_.begin(), [](int c) { return static_cast(c); }); + return lite_shape_; } virtual std::shared_ptr Clone() const { return nullptr; } @@ -221,7 +221,7 @@ class MSTensor::Impl { private: tensor::MSTensor *lite_tensor_ = nullptr; std::string tensor_name_ = ""; - mutable std::vector lite_shape; + mutable std::vector lite_shape_; bool own_data_ = false; bool from_session_ = false; }; diff --git a/mindspore/lite/test/st/scripts/run_net_train.sh b/mindspore/lite/test/st/scripts/run_net_train.sh index 70f5417e9bc..22b843e8439 100755 --- a/mindspore/lite/test/st/scripts/run_net_train.sh +++ b/mindspore/lite/test/st/scripts/run_net_train.sh @@ -342,6 +342,60 @@ ENDM return ${fail} } +function Run_CodeExamples() { + ls ${basepath}/../../ + fail=0 + target="x86" + tarball_path=${x86_path}/mindspore-lite-${version}-linux-x64.tar.gz + if [[ $backend == "arm64_train" ]]; then + target="arm64" + tarball_path=${arm64_path}/mindspore-lite-${version_arm64}-android-aarch64.tar.gz + export ANDROID_SERIAL=${device_id} + fi + export PATH=${x86_path}/mindspore-lite-${version}-linux-x64/tools/converter/converter/:$PATH + export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${x86_path}/mindspore-lite-${version}-linux-x64/tools/converter/lib/:${x86_path}/mindspore-lite-${version}-linux-x64/tools/converter/third_party/glog/lib + + if [[ $backend == "all" || $backend == "x86-all" || $backend == "x86-java" ]]; then + cd ${basepath}/../../examples/train_lenet_java || exit 1 + chmod 777 ./prepare_and_run.sh + ./prepare_and_run.sh -D ${datasets_path}/mnist -r ${tarball_path} -m ${models_path}/code_example.mindir >> ${run_code_examples_log_file} + accurate=$(tail -10 ${run_code_examples_log_file} | awk -F= 'NF==2 && /accuracy/ { sum += $2} END { print (sum > 0.95) }') + cd - + fi + + if [[ $backend == "all" || $backend == "train" || $backend == "x86_train" || $backend == "codegen&train" || $backend == "arm64_train" ]]; then + cd ${basepath}/../../examples/unified_api || exit 1 + chmod 777 ./prepare_and_run.sh + chmod 777 ./*/*.sh + ./prepare_and_run.sh -D ${datasets_path}/mnist -r ${tarball_path} -t ${target} -m ${models_path}/code_example.mindir >> ${run_code_examples_log_file} + accurate=$(tail -20 ${run_code_examples_log_file} | awk 'NF==3 && /Accuracy is/ { sum += $3} END { print (sum > 1.9) }') + if [ $accurate -eq 1 ]; then + echo "Unified API Trained and reached accuracy" >> ${run_code_examples_log_file} + else + echo "Unified API demo failure" >> ${run_code_examples_log_file} + fail=1 + fi + rm -rf package*/dataset + cd - + + cd ${basepath}/../../examples/train_lenet || exit 1 + chmod 777 ./prepare_and_run.sh + chmod 777 ./*/*.sh + ./prepare_and_run.sh -D ${datasets_path}/mnist -r ${tarball_path} -t ${target} -m ${models_path}/code_example.mindir >> ${run_code_examples_log_file} + accurate=$(tail -10 ${run_code_examples_log_file} | awk 'NF==3 && /Accuracy is/ { sum += $3} END { print (sum > 1.9) }') + if [ $accurate -eq 1 ]; then + echo "Lenet Trained and reached accuracy" >> ${run_code_examples_log_file} + else + echo "Train Lenet demo failure" >> ${run_code_examples_log_file} + fail=1 + fi + rm -rf package*/dataset + cd - + fi + return ${fail} +} + + function Print_Result() { MS_PRINT_TESTCASE_END_MSG while read line; do @@ -419,6 +473,8 @@ if [[ $train_io_path == "" ]]; then fi echo $train_io_path +datasets_path=${models_path}/../datasets/ + arm64_path=${release_path}/android_aarch64/npu file=$(ls ${arm64_path}/*android-aarch64.tar.gz) file_name="${file##*/}" @@ -512,6 +568,9 @@ adb_push_arm32_log_file=${logs_path}/adb_push_arm32_log.txt adb_cmd_arm32_file=${logs_path}/adb_arm32_cmd.txt adb_cmd_arm32_run_file=${logs_path}/adb_arm32_cmd_run.txt +run_code_examples_log_file=${logs_path}/run_code_examples_log.txt +echo 'run code examlpe logs: ' > ${run_code_examples_log_file} + # Copy the MindSpore models: echo "Push files to benchmark_train_test folder and run benchmark_train" benchmark_train_test_path=${basepath}/benchmark_train_test @@ -528,6 +587,14 @@ if [[ $backend == "all" || $backend == "train" || $backend == "x86_train" || $ba Run_x86_PID=$! sleep 1 fi +if [[ $backend == "all" || $backend == "train" || $backend == "x86_train" || $backend == "x86-java" || $backend == "codegen&train" || $backend == "arm64_train" ]]; then + # Run Code Examples + echo "Start Code Examples ..." + Run_CodeExamples & + Run_CodeExamples_status=$? + Run_CodeExamples_PID=$! + sleep 1 +fi if [[ $backend == "all" || $backend == "train" || $backend == "arm64_train" || $backend == "codegen&train" ]]; then # Run on arm64 echo "Start Run arm64 ..." @@ -554,6 +621,17 @@ if [[ $backend == "all" || $backend == "train" || $backend == "x86_train" || $ba isFailed=1 fi fi +if [[ $backend == "all" || $backend == "train" || $backend == "x86_train" || $backend == "x86-java" || $backend == "codegen&train" || $backend == "arm64_train" ]]; then + wait ${Run_CodeExamples_PID} + Run_CodeExamples_status=$? + if [[ ${Run_CodeExamples_status} != 0 ]];then + echo "Run CodeExamples failed" + cat ${run_code_examples_log_file} + isFailed=1 + fi +fi + + if [[ $backend == "all" || $backend == "train" || $backend == "arm64_train" || $backend == "codegen&train" ]]; then # wait ${Run_arm64_PID} # Run_arm64_status=$?