Android 项目使用TensorFlow
首先需要搭建TensorFlow编译环境
参考:(http://www.cnblogs.com/dyufei/p/8027764.html)
TensorFlow的Android编译 参考
参考:(http://www.cnblogs.com/dyufei/p/8028218.html)
一、编译TensorFlow库和jar包
1)编译TensorFlow库libtensorflow_inference.so
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
编译后生成的文件在bazel-bin/tensorflow/contrib/android目录下
2)编译android_tensorflow_inference_java.jar包
bazel build //tensorflow/contrib/android:android_tensorflow_inference_java
编译后生成的文件在bazel-bin/tensorflow/contrib/android目录下
二、Android 工程中TensorFlow配置
1)将训练好的模型保存为pb文件,将其放到android项目的 assets文件夹下
2)将上面编译的so 和jar 放在 android项目的libs目录下
3)配置app:gradle以及gradle.properties
A :在android节点下添加soureSets,用于制定jniLibs的路径
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
B:在defaultConfig节点下添加
defaultConfig {
ndk {
abiFilters "armeabi"
}
}
C: 在gradle.properties中添加下面一行
android.useDeprecatedNdk=true
三、Android 使用TensorFlow
使用可以参考官方的Demo:
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android/
另一个开源Demo:
https://github.com/MindorksOpenSource/AndroidTensorFlowMachineLearningExample