Tensorflowlite移植ARM平台:FLC-MCM63MC

一、LINUX环境下操作:

    1.安装交叉编译工具

        sudo apt-get install g++-arm-linux-gnueabihf

        sudo apt-get install -y gcc-arm-linux-gnueabihf

     2.下载Tensorflow

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

       cd tensorflow

       git checkout r1.12   #r.14

       编译Tensorflow前需下载编译工具Bazel

       如果编译时报nnapi的错误,需要回退Tensorflow版本至1.12.0

      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

    4、编译前测试:

          bazel test -c opt -- //tensorflow/... -//tensorflow/compiler/... -//tensorflow/contrib/lite//...

           如果 告警提示支持avx,avx2,fma,sse4.1,sse4.2,则 使用如下命令:

          bazel test -c opt --copt=-mavx --copt=-avx2 --copt-=mfma --copt=-msse4.1 --copt-=msse4.2  -- //tensorflow/... -//tensorflow/compiler/... -//tensorflow/contrib/lite//...

     5、编译配置:

          在Tensorflow源码根目录运行:

             ./configure

     6、编译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(不同版本,位置略有不同)

     10、编译Tensorflow Lite:(可参考:https://www.cnblogs.com/jimchen1218/p/11460564.html

         ./tensorflow/contrib/lite/tools/make/build_rpi_lib.sh

         生成静态库位置为:

         ./tensorflow/contrib/lite/toos/make/gen/rpi_arm7l/lib/libtensorflow-lite.a

     11、编译模型:

          可以在./tensorflow/contrib/lite/tools/make/gen/rpi_arm7l/bin  下面生成可执行文件label_img

 

以下操作在ARM板子上:

      1、拷贝生成的label_image到板子上

            拷贝图片./tensorflow/examples/label_image/data/grace_hopper.jpg到板子上

      2、下载模型mobilenet_v1_1.0_224.tflite(地址./tensorflow/contrib/lite/g3doc/models.md)

            然后拷贝到板子上

      3、下载模型所需文件:

             curl -L "https://storage.googleapis.com/download.tensorflow.org/models/inception_v3_2016_08_28_frozen.pb.tar.gz" | tar -C tensorflow/examples/label_image/data -xz

             拷贝标签文件:./tensorflow/examples/label_image/data/imagenet_slim_labels.txt到板子上

      4、运行label_image

            ./label_image -v 1 -m ./mobilenet_v1_1.0_224.tflite -i ./grace_hopper.jpg -l ./imagenet_slim_labels.txt

           如果出现-sh: ./label_image: not found,可能是编译器不一致导致。

           尝试方法1:重定向:ln -s ld-linux.so.3 ld-linux-armhf.so.3  

               新报错:./label_image:/lib/libm.so.6: version 'GLIBC_2.27' not found (required by ./label_image)

     

        未完待续。。。

 

上一篇:android – “/ system / bin / linker:没有这样的文件或目录”错误尝试编译TensorFlow


下一篇:mysql 5.7 Group Replication