一、LINUX环境下操作:

    1.安装交叉编译SDK (仅针对该型号:i.MX6,不同芯片需要对应的交叉编译SDK)

            编译方法参考:手动编译用于i.MX6系列的交叉编译SDK

     2.下载Tensorflow

       git clone https://github.com/tensorflow/tensorflow.git

       cd tensorflow

       git checkout r1.10

      Tensorflow与Bazel编译器(及CUDA,CUDNN)之间需要对应,否则会有兼容性问题。

          tensorflowr1.10     python 2.7,3.6   Bazel:0.18.0-0.19.2

          tensorflowr1.12     python 2.7,3.6   Bazel:0.18.0-0.19.2

          tensorflowr1.14     python 2.7,3.6   Bazel:0.24.0 - 0.25.2

      3、下载并安装编译工具Bazel

          安装依赖包:

                sudo apt-get install pkg-config zip g++ zilb1g-dev unzip

          下载Bazel包:

                wget https://github.com/bazelbuild/bazel/releases/download/0.18.1/bazel-0.181-installer-linux-86_64.sh

          安装Bazel:

                 chmod +x bazel-0.18.1-installer-linux-86_64.sh

                 ./bazel-0.18.1-installer-linux-86_64.sh --user

          设置环境变量:

                 sudo vi ~/.bashrc,在文件最后添加:export PATH=$PATH":~/bin"

                 source ~/.bashrc

    (如果仅仅是测试DEMO在ARM板上使用,可直接跳过4,5,6,7,8步,直接进行第9步)

    4、编译配置:

          在Tensorflow源码根目录运行:

             ./configure     (编译LINUX平台时使用默认设置:-march=native,编译ARM平台时需设置成相应值:-march=armv7-a)

     5、编译pip:

          bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package

     7、编译包:

          ./bazel-bin/tensorflow/tools/pip__package/build_pip_package /tmp/tensorflow_pkg

     8、安装包:

          pip install /tmp/tensorflow_pkg/tensorflow-version-tags.whl

     9、下载依赖库:

         ./tensorflow/contrib/lite/tools/make/download_dependencies.sh(不同版本,位置略有不同,本文路径为r1.10版本)

     10、编译Tensorflow Lite:

         方法1:(参考网上的,但我调试了几天,并未生成该库,可行性待验证!)

                目前Tensorflow仅支持树莓派: ./tensorflow/contrib/lite/tools/make/build_rpi_lib.sh,该脚本的目标编译平台是ARMv7,即使目标平台是ARMv8,也不要更改。因为设置编译平台为ARMv7可以优化编译,提高运行速度。

                所以,需要针对iMX6,制作一份build_imx6_lib.sh

1 set -e 
2 
3 SCRIPT_DIR="$(cd "$(dirname "$(BASH_SOURCE[0]}")" && pwd)"
4 cd "$SCRIPT_DIR/../../.."
5 
6 CC_PREFIX=arm-poky-linux-gnueabi- make -j 3 -f tensorflow/contrib/lite/Makefile TARGET-imx6 TARGET_ARCH=armv7-a
View Code

相关文章: