tensorflow arm-linux移植,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(不同版本,位置略有不同)

./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)

未完待续。。。

标签:bazel,Tensorflowlite,image,label,编译,lite,tensorflow,FLC,ARM

来源: https://www.cnblogs.com/jimchen1218/p/11551380.html

你可能感兴趣的:(tensorflow,arm-linux移植)