TensorFlow 在android上的Demo(1)
转载时请注明出处: 修雨轩陈
系统环境说明:
------------------------------------
操作系统 : ubunt 14.03 _ x86_64 操作系统
内存: 8GB
硬盘 500G
------------------------------------
一、编译TensorFlow在android上的Demo
1.1 搭建环境
l 下载tensorFlow
首先,选择一个目录用git命令下载tensorFlow 在github上的源码, 如下所示:

TensorFlow下载完毕之后,在tensorflow/tensorflow/examples/android/ 目录下面是android的示例。
l 搭建android环境
1. 搭建Java 环境
Ubunt 64下的java环境不再赘述,给出操作说明:
http://jingyan.baidu.com/article/5d368d1e12a1af3f60c0570a.html
PS 需要说明的是最好将JRE_HOME也设置出来。
2. 搭建SDK 环境
下载并解压SDK Tools:
此处给出SDK的下载地址:
http://www.androiddevtools.cn/
如果感觉android SDK版本不够高,可以通过下载android Studio 2.1,然后用android Srtudio中的下载工具下载。给出android Studio 下载地址:(不需要设置代理或镜像地址)
https://developer.android.com/studio/index.html

SDK下载之后,使用unzip 命令解压目录如下:
下载SDKTools之后,会得到这样的目录

查看android-sdk-linux目录:
其目录中有一下文件:
android-sdk-linux
|----add-ons : Google API
|----platforms : 用于存放android Level API .
|----platform-tools: 各版本SDK。根据API Level划分的SDK版本
|----tools : 各版本SDK通用工具。比如adb、和aapt、aidl、dx等文件
|----temp : 临时夹,一般在SDK更新安装时用到.
如图所示(PS 图中标红的目录是搭建android完整环境随后手动添加的,这些目录和文件随后也会用到)

接下来是安装Build_tools , 这个文件是android 开发所需的Build_Tools,下载并解压出整个文件夹赋值或者是移动到<你的SDK的目录>/build-tools 文件夹即可.
如果感觉麻烦, 可以通过安装Android Studio IDE , 并利用IDE自带的android pakage Manager
帮助下载.
3. 搭建NDK环境
NDK的话 ,我在一个中文地址上找到了, 在ubuntu中下载android-ndk-r11b-linux-x86_64.zip 即可.
http://www.androiddevtools.cn/

NDK的目录很全 , 自行解压即可 , 不需要添加任何文件.
l 安装Bazel
Bazel是一个构建工具,即一个可以运行编译和测试来组装软件的工具,跟Make、Ant、Gradle、Buck、Pants和Maven一样。这个工具将在以后编译的时候用到.
根据阅读ReadME可知:
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android
如何在Bazel .
1.2 编译Demo
首先修改tensorflow的根目录中的WORKSPACE


修改完毕之后 , 可以在目录先用bazel构建

1.3 运行
在编译成功之后 , 默认会在tensorflow/bazel-bin/tensorflow/examples/android 目录下面
生成我们想要的tensorFlow Demo

二、错误以及解决方法
bazel-out/host/bin/external/androidsdk/aapt_binary.runfiles/androidsdk/build-tools/23.0.1/aapt: erro

ERROR: /home/master/programes/android/tensorflow/tensorflow/examples/android/BUILD:47:1: Processing Android resources for //tensorflow/examples/android:tensorflow_demo failed: namespace-sandbox failed: error executing command /home/master/.cache/bazel/_bazel_master/65c2377a99cb38c469b4db23ae21783d/execroot/tensorflow/_bin/namespace-sandbox ... (remaining 28 argument(s) skipped).
解决方案 :
自习查看 log 可以知道:
error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or dir
于是猜测 : error的原因是:
1 在WORKSPACE中配置的时候有问题.
2 ubuntu自身的问题
于是知道了: 是ubuntu64 bit中缺少32位的部分类库 , 于是执行一下命令进行安装:



最后编译成功: 如图所示:

参考文献:
http://www.cnblogs.com/tao560532/p/4249084.html
https://developer.android.com/studio/releases/build-tools.html
http://blog.csdn.net/g457499940/article/details/38718549
http://blog.csdn.net/wei220000/article/details/50985609
TensorFlow 在android上的Demo(1)的更多相关文章
- android上部署tensorflow
https://www.jianshu.com/p/ddeb0400452f 按照这个博客就可以 https://github.com/CrystalChen1017/TSFOnAndroid 这个博 ...
- 在android上跑 keras 或 tensorflow 模型
https://groups.google.com/forum/#!topic/keras-users/Yob7mIDmTFs http://talc1.loria.fr/users/cerisara ...
- 通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击
通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击 大家肯定知道前几天刚爆出来一个linux内核(Android也用的linux内核)的dirtycow漏洞.此洞可 ...
- [转]收集android上开源的酷炫的交互动画和视觉效果:Interactive-animation
原文链接:http://www.open-open.com/lib/view/open1411443332703.html 描述:收集android上开源的酷炫的交互动画和视觉效果. 1.交互篇 2. ...
- Android学习小Demo(19)利用Loader来实时接收短信
之前写过一篇文章<Android学习小Demo(13)Android中关于ContentObserver的使用>,在里面利用ContentOberver去监測短信URI内容的变化.我们先来 ...
- android JNI 简单demo(2)它JNI demo 写
android JNI 简单demo(2)它JNI demo 写 一.搭建Cygwin 环境:http://blog.csdn.net/androidolblog/article/details/25 ...
- Android上的Badge,快速实现给应用添加角标
应用角标是iOS的一个特色,原生Android并不支持.或许是因为当时iOS的通知栏比较鸡肋(当然现在已经改进了很多),而Android的通知栏功能强大?所以才出现了一方依赖于数字角标,一方坚持强大的 ...
- android上instant app介绍 类似于微信小程序
android上instant app介绍 类似于微信小程序instant app 是谷歌推出的类似于微信小程序(或者说小程序类似于instant app)的一项技术,用户无须安装应用,用完就走,同时 ...
- Android组件化demo实现以及遇坑分享
首先贴出demo的github地址:GitHub - TenzLiu/TenzModuleDemo: android组件化demo 作者:TenzLiu原文链接:https://www.jianshu ...
随机推荐
- JavaScript界面传值与前后台互调
话说曾在校时,前端的第一门课程HTML静态网页设计,其老师,真是应了他的名字: 路遥知马力. 整个学期硬是全部在 Dreamwear 中进行拖拽控件来教学,未曾教授一句代码.成功忽悠了全体学生,课上一 ...
- Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli :
1.匹配jdk和maven的版本http://www.bubuko.com/infodetail-1757416.html jdk1.6 要匹配maven3.2.5 maven版本下载地址: ...
- jQuery使用serialize()表单序列化时出现中文乱码问题&js获取url中的参数,并保证获取到的参数不乱码
序列化中文时之所以乱码是因为.serialize()调用了encodeURLComponent方法将数据编码了 解决方法就是进行解码 原因:.serialize()自动调用了encodeURIComp ...
- T-sql 查询
------------------case---when-------的使用--------------------- select userAccount , eatingDate , c ...
- Android ProgressBar分析及自定义ProgressBar
ProgressBar是在执行耗时操作时的一种人性化设计.分为两种形式:转圈的,能显示进度的. 而能取决于是什么样式的PregressBar,当然就是PregressBar的样式啦~ Widget.P ...
- GDUFE-OJ 1359校庆素数 埃氏筛法
Problem Description: 包含33的素数称为校庆素数. 她想知道在L和R之间(包含L和R)有多少个校庆素数. 比如 2333 就是一个校庆素数. Input: 输入的第一行包括一个T( ...
- async和await
总结下博客园中看到的async和await public static class TaskAsyncHelper { /// <summary> /// 将一个方法function异步运 ...
- angular源码阅读,依赖注入的原理:injector,provider,module之间的关系。
最开始使用angular的时候,总是觉得它的依赖注入方式非常神奇. 如果你跳槽的时候对新公司说,我曾经使用过angular,那他们肯定会问你angular的依赖注入原理是什么? 这篇博客其实是angu ...
- winform 移动窗体,和窗体阴影(引用)
无边框窗体移动://窗体移动API [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [D ...
- Excel图表的基本类型与选择
图表类型分成4大类:1. 比较 2. 分布 3. 构成 4. 联系 转载自:https://zhuanlan.zhihu.com/peter-zhang-jie