TensorFlow lite可以使用自定义CPU构建吗?

时间:2018-07-09 13:32:39

标签: tensorflow gradle bazel aar tensorflow-lite

我正在寻找TF Lite Android应用

可以在GIT上找到以下哪个:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite/java/demo

如何编译tensorflow lite框架以使用优化的“ atom” cpu类型?

是否可以通过针对“原子” cpu的CPU优化在MAC os上对其进行编译?

我想在带有“ Intel Atom”处理器的Android设备(SDK 22)上运行该应用程序。 当我通过Android Studio运行应用程序且未做任何更改时,速率约为 1200ms /帧。 编译安装在我的Galaxy S9(手臂-金鱼草处理器)上的同一个APK大约每帧30ms

在“ build.gradle”中有以下部分:

dependencies {
...    
compile 'org.tensorflow:tensorflow-lite:0.0.0-nightly'

...
}

因此,似乎正在下载框架

如何通过CPU优化在本地对其进行编译,并设置应用程序以使用它,而不是下载非优化的夜间版本?

我尝试使用cpu标志运行本教程: Installing TensorFlow from Sources,但不确定如何在Android场景中对我有帮助。

1 个答案:

答案 0 :(得分:2)

假设您的Atom设备是x86,请使用--fat_apk_cpu标志指定x86 ABI:

$ bazel build -c opt --cxxopt='--std=c++11' \ 
    --fat_apk_cpu=x86 \
    //tensorflow/contrib/lite/java/demo/app/src/main:TfLiteCameraDemo 

如果要构建64位设备,请用x86切换x86_64

bazel-bin/tensorflow/contrib/lite/java/demo/app/src/main/TfLiteCameraDemo.apk处可用的内置APK将包含x86 .so文件:

$ zipinfo bazel-bin/tensorflow/contrib/lite/java/demo/app/src/main/TfLiteCameraDemo.apk | grep lib
-rw----     2.0 fat  1434712 b- defN 80-Jan-01 00:00 lib/x86/libtensorflowlite_jni.so 

如果您的设备已连接,则可以使用bazel mobile-install代替bazel build直接安装应用程序:

$ bazel mobile-install -c opt --cxxopt='--std=c++11' \ 
  --fat_apk_cpu=x86 \ 
  --start_app \
  //tensorflow/contrib/lite/java/demo/app/src/main:TfLiteCameraDemo