Android 使用gradle构建并运行tensorflow lite演示
所以最近根据这个tensorflow lite现在支持 用于目标检测的mobilenet_ssd。太好了。。 我设法用bazel构建并运行了演示,但最初我想用Android Studio来实现。不幸的是我做不到 下面是我得到的错误:Android 使用gradle构建并运行tensorflow lite演示,android,android-studio,machine-learning,tensorflow-lite,Android,Android Studio,Machine Learning,Tensorflow Lite,所以最近根据这个tensorflow lite现在支持 用于目标检测的mobilenet_ssd。太好了。。 我设法用bazel构建并运行了演示,但最初我想用Android Studio来实现。不幸的是我做不到 下面是我得到的错误: Error:Plugin with id 'com.android.application' not found. 通过阅读评论,我似乎不是唯一一个对此感到困惑的人。有解决办法吗?或者目前没有gradle支持此特定更新 由于我还是人工智能领域的新手,因此非常感谢能
Error:Plugin with id 'com.android.application' not found.
通过阅读评论,我似乎不是唯一一个对此感到困惑的人。有解决办法吗?或者目前没有gradle支持此特定更新
由于我还是人工智能领域的新手,因此非常感谢能够澄清此问题的任何信息。以下是在Bazel(方法1)和Gradle(方法2)中构建和运行以下TensorFlow Lite Android示例(2018年8月22日)的说明
- (分类/检测/等)
- (分类)
如何让TensorFlow Lite Android示例运行[TensorFlow/TensorFlow/contrib/Lite/examples/Android]; (例如,对象检测/ssd型号;detect.tflite[/mobilenet\u ssd.tflite]/coco\u labels\u list.txt) 基于的指令 方法1(Bazel)
git克隆https://github.com/tensorflow/tensorflow
cd-tensorflow
- 可选:
/git签出主机
938a3b77797164db736a1006a7656326240baa59
- [这些说明基于]
,并添加对android_sdk_存储库和android_ndk_存储库的引用gedit工作区
android_sdk_repository( name = "androidsdk", api_level = 28, build_tools_version = "28.0.1", # Replace with path to Android SDK on your system path = "/[INSERTCORRECTPATHHERE]/android-sdk-linux", ) android_ndk_repository( name="androidndk", path="/[INSERTCORRECTPATHHERE]/android-ndk-r14b", api_level=28)
- [这可防止出现以下错误:
ERROR: /.../tensorflow/contrib/lite/kernels/internal/BUILD:620:1: no such package '@androidndk//': The repository could not be resolved and referenced by '//tensorflow/contrib/lite/kernels/internal:cpu_check' ERROR: Analysis of target '//tensorflow/contrib/lite/examples/android:tflite_demo' failed; build aborted: Analysis failed FAILED: Build did NOT complete successfully (60 packages loaded)]
08-22 05:03:19.470 24480-24480/org.tensorflow.lite.demo W/System.err: TensorFlowLite: failed to load native library: dlopen failed: cannot locate symbol "__android_log_vprint" referenced by "/data/app/org.tensorflow.lite.demo-2/lib/arm/libtensorflowlite_jni.so"... 08-22 02:48:55.728 29643-29643/org.tensorflow.lite.demo E/art: No implementation found for long org.tensorflow.lite.NativeInterpreterWrapper]
08-22 05:03:19.470 24480-24480/org.tensorflow.lite.demo W/System.err: TensorFlowLite: failed to load native library: dlopen failed: cannot locate symbol "__android_log_vprint" referenced by "/data/app/org.tensorflow.lite.demo-2/lib/arm/libtensorflowlite_jni.so"... 08-22 02:48:55.728 29643-29643/org.tensorflow.lite.demo E/art: No implementation found for long org.tensorflow.lite.NativeInterpreterWrapper]
- [注:根据要求,Bazel需要android-ndk-r14b]
bazel build-c opt--config=android\u arm--cxopt='--std=c++11'//tensorflow/contrib/lite/examples/android:tflite\u demo
adb安装bazel-bin/tensorflow/contrib/lite/examples/android/tflite\u demo.apk
- 在Android手机上运行示例应用程序(tflDetect)(搜索-tflDetect)
- [请求时授予应用程序权限]
git克隆https://github.com/tensorflow/tensorflow
cd-tensorflow
- 可选:
/git签出主机
938a3b77797164db736a1006a7656326240baa59
- [这些说明基于]
- 可选:从tensorflow中提取tensorflow/contrib/lite/examples/android文件夹
- 在android Studio项目中打开tensorflow/contrib/lite/examples/android目录
- [安装它请求的所有Gradle扩展。]
- 修改app/build.gradle
- 删除(注释掉)此;
jackOptions{enabled true}
- 将
更改为编译“org.tensorflow:tensorflow lite:0.0.0-nightly”
[最新工作修订](或编译“org.tensorflow:tensorflow lite:1.10.0”
编译“org.tensorflow:tensorflow lite:+”
- 删除(注释掉)此;
- [这可防止出现以下错误:
ERROR: /.../tensorflow/contrib/lite/kernels/internal/BUILD:620:1: no such package '@androidndk//': The repository could not be resolved and referenced by '//tensorflow/contrib/lite/kernels/internal:cpu_check' ERROR: Analysis of target '//tensorflow/contrib/lite/examples/android:tflite_demo' failed; build aborted: Analysis failed FAILED: Build did NOT complete successfully (60 packages loaded)]
08-22 05:03:19.470 24480-24480/org.tensorflow.lite.demo W/System.err: TensorFlowLite: failed to load native library: dlopen failed: cannot locate symbol "__android_log_vprint" referenced by "/data/app/org.tensorflow.lite.demo-2/lib/arm/libtensorflowlite_jni.so"... 08-22 02:48:55.728 29643-29643/org.tensorflow.lite.demo E/art: No implementation found for long org.tensorflow.lite.NativeInterpreterWrapper]
08-22 05:03:19.470 24480-24480/org.tensorflow.lite.demo W/System.err: TensorFlowLite: failed to load native library: dlopen failed: cannot locate symbol "__android_log_vprint" referenced by "/data/app/org.tensorflow.lite.demo-2/lib/arm/libtensorflowlite_jni.so"... 08-22 02:48:55.728 29643-29643/org.tensorflow.lite.demo E/art: No implementation found for long org.tensorflow.lite.NativeInterpreterWrapper]
- 梯度同步
- 建造
- 跑
- [请求时授予应用程序权限]
- 在Android手机上运行示例应用程序(tflDetect)(搜索-tflDetect)
Unknown failure (at android.os.Binder.execTransact(Binder.java:573))
Error while Installing APKs
...
Installation failed with message Invalid File: /.../app/build/intermediates/split-apk/debug/slices/slice_5.apk.
It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing.
WARNING: Uninstalling will remove the application data!
Do you want to uninstall the existing application?
然后尝试以下方法之一
- 重新启动手机,然后重新运行应用程序
- Build-重新生成项目,然后重新运行应用程序
libtensorflow\u demo.so
- 假设上面带有Gradle(方法2)说明的TensorFlow Lite Android示例已经完成
- 使用上面的Bazel(方法1)指令执行TensorFlow Lite Android示例-这将使用
libtensorflow_demo.so
libtensorflow\u演示。因此现在需要从安卓设备上安装的apk中提取
- 打开Android studio-视图-工具窗口-设备文件资源管理器
- 确保选择了Android设备
-右键单击/data/app/org.tensorflow.lite.demo/lib/arm
-另存为-保存到硬盘上的临时文件夹libtensorflow\u demo.so
- 创建文件夹
tensorflow/contrib/lite/examples/android/app/src/main/jniLibs
- 创建4个子文件夹(
,jniLibs/arm64-v8a
,jniLibs/armeabi-v7a
,jniLibs/x86
)jniLibs/x86\u 64
- 在所有子文件夹中放置
libtensorflow\u demo.so
- 在android Studio中打开
tensorflow/contrib/lite/examples/android
- 使用Gradle重新构建
- 运行]
如何让TensorFlow Lite Java演示运行[TensorFlow/TensorFlow/contrib/Lite/Java/Demo] (例如分类模型;mobilenet\u quant\u v1\u 224.tflite/labels\u mobilenet\u quant\u v1\u 224.txt) 基于的指令 方法1(Bazel) 见/(未测试) 方法2(梯度法)
git克隆https://github.com/tensorflow/tensorflow
cd-tensorflow
- 可选:
/git签出主机
938a3b77797164db736a1006a7656326240baa59
- [这些说明基于]
- 可选:从tensorflow中提取tensorflow/contrib/lite/java/demo文件夹
- 在Android Studio项目中打开tensorflow/contrib/lite/java/demo目录
- [安装它请求的所有Gradle扩展。]
- 编辑app-build.gradle;
- 将
更改为androidTestCompile('androidx.test.espresso:espresso-core:3.1.0-alpha3'
androidTestCompile('com.android.support.test.espresso:espresso-core:3.0.2'
- 将
更改为编译“org.tensorflow:tensorflow lite:0.0.0-nightly”
[最新工作修订](或编译“org.tensorflow:tensorflow lite:1.10.0”
编译“org.tensorflow:tensorflow lite:+”
- 将