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


更多相关文章

  1. Android(安卓)studio 导入github上的源码库
  2. android Volley源码解析笔记
  3. Android(安卓)8.1 从零开始写 HAL -- (3) 实现 Bp、Bn 端
  4. Android(安卓)开发文档
  5. Android(安卓)如何在Android项目中搭建HTTP服务器
  6. Android(安卓)NDK开发(四) 将FFmpeg移植到Android平台
  7. Android(安卓)底部导航栏的两种实现(附源码)(通过FragmentTabHost +
  8. 玩转BeagleBoard xM——通过Repo下载Android(安卓)4.0 ICS源码
  9. [置顶] AIDL使用以及原理分析

随机推荐

  1. Androidの联系人群组Group操作示例
  2. android 笔记 --- 电源应用
  3. Android(安卓)Input输入系统之一:KeyEvent
  4. Android(安卓)Studio使用小结
  5. Android(安卓)Service启动(二) bindService
  6. SmartFoxServer: massive multiplayer ga
  7. Android之设置页面(PreferenceActivity使
  8. Dojo mobile TweetView 系列教程之五 —
  9. 2011.09.26(2)——— android sample之Note
  10. android 常用的数据库表以及操作说明