Redhat下TensorFlow安装及bazel工具build模型生成apk文件

Redhat下TensorFlow安装及bazel工具build模型生成apk文件

一.TensorFlow安装

二.ndk、sdk安装

三.TensorFlow源码下载

四.Bazel安装

五.生成apk


一.TensorFlow安装

1.要求python2.7及以上,redhat4.4自带python2.6.升级过程见文档”python2.6升级2.7”

2.安装setuptools和pip    见文档”linux 下 pip 安装教程”

3.安装依赖  pip install numpy protobuf six wheel wsgiref xlrd

4.安装TensorFlow 

   (1)pip install tensorflow  或者

   (2)tensorflow-0.9.0-cp27-none-linux_x86_64.whl文件上传到linux下,注意权限,如果没有执行权限,chmod +x 文件名,然后./文件名执行。

   (3)进入python shell,导入TensorFlow,如果出现问题,见文档“TensorFlow安装问题”,看后半部分即可,直接升级glibc。

二.ndk、sdk安装

1. Ndk最好版本在10-16之间,选用了16,sdk版本大于23,选用了24.4.1版本,如果编译apk出现错误说版本太低,按照文档“Linux安装Android SDK 环境”修改。

2.sdk安装见文档“Linux安装Android SDK 环境”,修改环境变量

   exportANDROID_HOME=/root/ma/android-sdk-linux

export PATH=$ANDROID_HOME/tools:$PATH

3.ndk安装,下载链接https://developer.android.google.cn/ndk/downloads/。。下面有老版本下载选项。下载后解压,添加环境变量。

   NDKROOT=/root/ma/android-ndk-r16b

export NDKROOT=/root/ma/android-ndk-r16b

export PATH=$NDKROOT:$PATH

验证:在任意目录下执行ndk-build

执行结果:AndroidNDK:Could not find application project directory !   
Android NDK: Please define the NDK_PROJECT_PATH variable topoint toit.   
/home/xxx/android_env/android-ndk-r8/build/core/build-local.mk:130:*** AndroidNDK: Aborting    .  Stop.

说明配置成功。

三.TensorFlow源码下载

/tensorflow/examples/android是Camera Demo

git clone --recurse-submodules https://github.com/tensorflow/tensorflow

备注:--recurse-submodules 参数是必须得, 用于获取 TesorFlow 依赖的protobuf 库.

备注:redhat下用--recursive –submodules

四.Bazel安装

1.bazel下载https://github.com/bazelbuild/bazel/releases

2.下载好bazel安装文件后,执行如下步骤:
(1)复制到linux中, 切换到.sh文件存放的路径,文件添加可执行权限:
$ chmod +x bazel-0.13.1-installer-linux-x86_64.sh

(2)然后执行该文件:
$ ./bazel-0.13.1-installer-linux-x86_64.sh --user

注意:--user选项表示bazel安装到HOME/bin目录下,并设置.bazelrc的路径为HOME/.bazelrc。
(3)设置Bazel 环境变量,也可以添加到/etc/profile
$ vi ~/.bashrc

在 ~/.bashrc文件的末尾添加
export PATH=/root/bin:$PATH
source ~/.bashrc

五.生成apk

1.下载训练库,即pb文件及证书等,解压

https://storage.googleapis.com/download.tensorflow.org/models/inception5h.zip

# 解压到/android/assests

unzip inception5h.zip -d ~/tensorflow/tensorflow/examples/android/assets/

2.配置WORKSPACE,安装路径及版本进行设置

android_sdk_repository(

    name ="androidsdk",

    api_level = 26,

#    # Ensure that you havethe build_tools_version below installed in the

#    # SDK manager as itupdates periodically.

     build_tools_version ="26.0.1",

#    # Replace with path toAndroid SDK on your system

    path ="/root/ma/android-sdk-linux",

)

#

android_ndk_repository(

   name="androidndk",

   path="/root/ma/android-ndk-r16b",

#    # This needs to be 14 orhigher to compile TensorFlow.

#    # Please specify APIlevel to >= 21 to build for 64-bit

#    # archtectures or theAndroid NDK will automatically select biggest

#    # API level that itsupports without notice.

#    # Note that the NDKversion is not the API level.

api_level=21)

3.编译apk

(1)进入tensorflow根目录进行编译,编译成功后会输出apk到tensorflow/bazel-bin/tensorflow/eexamples/android/

bazel build //tensorflow/examples/android:tensorflow_demo

(2)如果想输出详尽的编译错误信息需要增加 --verbose_failures

bazel build//tensorflow/examples/android:tensorflow_demo --verbose_failures

(3) If you get build errors aboutprotocolbuffers, run git submodule update --init and build again

git submodule update –init

(4)执行结果

Target//tensorflow/examples/android:tensorflow_demo up-to-date:

 bazel-bin/tensorflow/examples/android/tensorflow_demo_deploy.jar

 bazel-bin/tensorflow/examples/android/tensorflow_demo_unsigned.apk

 bazel-bin/tensorflow/examples/android/tensorflow_demo.apk

INFO: Elapsed time: 3730.512s, CriticalPath: 3464.62s

生成三个文件

猜你喜欢

转载自blog.csdn.net/sheshutu6880/article/details/80568106