在ubuntu下编译tensorflow的android库的步骤:
- 安装android sdk
- 安装android ndk
- 安装 能够编译tensorflow的对应版本的bazel(我也不知道具体的对应关系,早先tensorflow版本无提示,后来版本的tensorflow有不提示),我使用的是 tensorflow-1.8.0和bazel-0.10.0
- 下载需要编译的版本的tensorflow源代码,或者git clone ,随意
- 安装python,还有protobuf等库类,这个可以在具体的编译过程查漏补缺,也可以按照官网的依赖直接安装完
- 到tensorflow的目录下, ./configure,配置相关的变量,选项,如 android SDK、NDK等
- 编译so文件,在目录bazel-bin/tensorflow/contrib/android 找到编译的 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=arm64-v8a # 根据需要修改对应的参数,主要就是target 板子的CPU架构
- 编译jar包,在目录 bazel-bin/tensorflow/contrib/android 下找到 libandroid_tensorflow_inference_java.jar,拷贝到具体的位置备用。
bazel build //tensorflow/contrib/android:android_tensorflow_inference_java
- 编译 android_demo
bazel build -c opt --config=arm-v8a //tensorflow/examples/android:tensorflow_demo