相关疑难解决方法(0)

如何使用适用于 x86_64 系统的精选 TensorFlow 操作构建 TensorFlow lite?

为了能够运行TensorFlow支持本机TensorFlow操作的精简模型,libtensorflow-lite必须重新编译静态库。C++可以在此处找到执行此操作的说明。

它指出

使用 bazel 管道构建 TensorFlow Lite 库时,可以包含和启用额外的 TensorFlow ops 库,如下所示:

  • 如有必要,通过添加 --config=monolithic 构建标志来启用单体构建。

  • 将 TensorFlow ops 委托库依赖添加到构建依赖中:tensorflow/lite/delegates/flex:delegate。

请注意,只要委托链接到客户端库,在运行时创建解释器时将自动安装必要的 TfLiteDelegate。没有必要像其他委托类型通常需要的那样显式安装委托实例。

问题是构建静态库的标准方法是通过 shell 脚本/make(请参阅此处的文档;这是用于arm64,但也有脚本可用于x86_64)。我没有明显的方法可以tensorflow-lite通过bazel那里的构建命令进行构建和修改。

有没有人在尝试构建arm64/x86_64架构模型时成功构建了这个并且可以分享这个?我是新手,bazel找不到详细的演练。

编辑

在@jdehesa 提出的故障排除步骤之后,我能够构建libtensorflowlite.so,但遇到了另一个问题。我的应用程序构建成功,但在执行应用程序时,.so找不到该文件:

./myapp: error while loading shared libraries: libtensorflowlite.so: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

由于其他.so文件位于可以找到的同一目录中,因此路径是正确的。此外,如果使用静态库,该应用程序也能正常工作。

为了重现该问题,我使用了tensorflow/tensorflow:devel-gpu-py3docker 构建映像(此处提供了 …

python bazel tensorflow tensorflow-lite

6
推荐指数
1
解决办法
2337
查看次数

如何在 (Android Studio) NDK (C / C++ API) 中运行 Tensorflow-Lite 推理?

信息

  • 我从 Keras 构建了一个 Tensorflow (TF) 模型并将其转换为 Tensorflow-Lite (TFL)
  • 我在 Android Studio 中构建了一个 Android 应用程序并使用 Java API 来运行 TFL 模型
  • 在 Java 应用程序中,我使用了 TFL 支持库(请参阅此处)和来自 JCenter 的 TensorFlow Lite AAR,方法是将其包含implementation 'org.tensorflow:tensorflow-lite:+'在我的build.gradle依赖项下

推理时间不是那么好,所以现在我想在 Android 的 NDK 中使用 TFL。

所以我在 Android Studio 的 NDK 中构建了 Java 应用程序的精确副本,现在我试图在项目中包含 TFL 库。我按照TensorFlow-Lite 的 Android 指南在本地构建了 TFL 库(并获得了一个 AAR 文件),并将该库包含在我在 Android Studio 中的 NDK 项目中。

现在我试图在我的 C++ 文件中使用 TFL 库,尝试#include在代码中使用它,但我收到一条错误消息:(cannot find tensorflow或我尝试使用的任何其他名称,根据我在我的CMakeLists.txt文件)。 …

c++ gradle android-ndk android-studio tensorflow-lite

5
推荐指数
1
解决办法
3680
查看次数