Tensorflow在Android上的实现(一)Build官方Demo

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从图象的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。

    虽然Tensorflow相比其他开源API来说并没有太大的创新和太多的优势,但毕竟是Google大哥出的,而且是奔着另一个“Android”的目标去的。先不说他现在是不是第一,但是照着现在这种每日更新bug的态度,也必将称霸一片天地(吹的有点大)。

一:Tensorflow的作用

Tensorflow就是一个工具,他能够帮你实现DL和CNN的各种算法公式,并且速度很快,而且支持Android上使用。稍后附上Demo(只支持5.0及以上),虽然因为训练的原因,识别的东西不多,但是速度还是不错的,识别键盘很准。

至于什么是DL以及CNN,他们有些什么牛X的算法,就自己百度了。

二:Build APK

1.目前在tensorflow已经可以安装到windows,linux,MC,但是想要制作APK,还是必须得在linux才行,因为必须用到一个工具,bazel。所以,建议安装Ubunbu,我安装的是15.04,制作的双系统。只能附上攻略http://www.linuxdiyf.com/linux/13395.html

2.安装tensorflow了,也是附上攻略http://wiki.jikexueyuan.com/project/tensorflow-zh/get_started/os_setup.html 

在安装bazel的时候要注意,

$ git checkout tags/0.1.0 这儿要改成最新的版本,因为tensorflow官方随时可能更新,我构建时是0.1.4

bazel安装后,需要配置环境变量。

安装tensorflow的时候需要使用git clone --recurse-submodules https://github.com/tensorflow/tensorflow,否则在编译APK时会出现错误。

按照上面的攻略,安装完之后,可以用python简单的测试下tensorflow是否可以正常运行了。

3.下载Android SDK和Android NDK 并配置环境变量,注:不配置环境变量,SDK无法更新,NDK也用不了。

环境变量的配置大概如下:

echo 'export ANDROID_HOME='$HOME'/Android/android-sdk-linux'>>~/.bshrc
echo 'export PATH="$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools"'>>~/.bshrc

配置完后关闭终端再开启,更新环境变量。vi ~/.bashrc 查看最后一行变量是否正确。echo $ANDROID_HOME也可以查看

然后运行android,打开SDK Manager更新Android SDK,必须要的两个是build tools 23.0.1,以及SDK API 21。

4.接下来是要配置在64位的机子(没人会装32位的Ubunbu吧)上支持32位程序,因为build tools 23.0.1的appt就是32位的bin。

输入:

  1. sudo dpkg --add-architecture i386
  2. sudo apt -get update
  3. sudo apt-get dist-upgrade 运行此处时会出现较多的未添加依赖等,可能情况不同,所以要全部依次添加。
5.下载训练库,官方地址,并全部解压到assets文件夹内。

6.配置tensorflow中的WORKSPACE文件,打开并去掉android_sdk_repository和android_ndk_repository的#注释,替换SDK和NDK的路径,配置后

android_sdk_repository(
name = "androidsdk",
api_level = 23,
build_tools_version = "23.0.1",
# Replace with path to Android SDK on your system
path = "/home/username/android-sdk-linux/"
)
android_ndk_repository(
name = "androidndk",
path = "/home/username/android-nkd-linux/",
api_level = 21
)

7.最后,到tensorflow的根目录执行sudo bazel build //tensorflow/examples/android:tensorflow_demo --verbose_failures。最后会输出apk到tensorflow/bazel-bin/tensorflow/eexamples/android/。(切记加sudo如果不加会提示action_env 问题,) 

8.你可以到.cache中把libtensorflow_demo.so抠出来,放到Android studio中用于其他开发。

附上编译成功后的APK:链接:http://pan.baidu.com/s/1kVAMlxH 密码:l54a

你可能感兴趣的:(tensorflow)