在Android上跑TensorFlow之接入TensorFlow
TensorFlow对移动设备的支持,挺好。
今天我们就来说说如何在Android应用中接入TensorFlow的运行框架。
在TensorFlow源码中,已经很好的包含了对支持Android运行的源码。
我们知道,要在Android中调用Native接口,需要so包和jar包(jni接口),
所以,我们先说说如何在TensorFlow源码中编译so包和jar包:
一、编译so包:
在TensorFlow源码根目录下运行:
bazel build -c opt //tensorflow/contrib/android:libtensorflow_inference.so \
--crosstool_top=//external:android/crosstool \
--host_crosstool_top=@bazel_tools//tools/cpp:toolchain \
--cpu=armeabi-v7a
编译好的so包,会存在:
bazel-bin/tensorflow/contrib/android/libtensorflow_inference.so
二、编译jar包:
在TensorFlow源码根目录下运行:
bazel build //tensorflow/contrib/android:android_tensorflow_inference_java
编译好的jar包,会存在:
bazel-bin/tensorflow/contrib/android/libandroid_tensorflow_inference_java.jar
三、调用步骤:
调用的接口,都封装在TensorFlowInferenceInterface类中,在 tensorflow\contrib\android\java\org\tensorflow\contrib\android\TensorFlowInferenceInterface.java文件里
调用TensorFlow的步骤总结为这几点:加载、输入、运行、输出
1、加载:就是加载模型,生成实例。使用 loadGraph。
2、输入:就是传入参数。使用feed接口。
3、运行:就是运行推理流程。使用run接口。
4、输出:就是获取返回。使用fetch接口。
具体的实现和使用,请参见 tensorflow/examples/android/src/org/tensorflow/demo/TensorFlowImageClassifier.java
备注:
网方源码里也有文档介绍:
tensorflow\contrib\android\README.md
更多相关文章
- Android(安卓)studio 导入github上的源码库
- android Volley源码解析笔记
- Android(安卓)8.1 从零开始写 HAL -- (3) 实现 Bp、Bn 端
- Android(安卓)开发文档
- Android(安卓)如何在Android项目中搭建HTTP服务器
- Android(安卓)NDK开发(四) 将FFmpeg移植到Android平台
- Android(安卓)底部导航栏的两种实现(附源码)(通过FragmentTabHost +
- 玩转BeagleBoard xM——通过Repo下载Android(安卓)4.0 ICS源码
- [置顶] AIDL使用以及原理分析