首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Bazel构建安卓系统后的模糊TensorFlow错误

用Bazel构建安卓系统后的模糊TensorFlow错误
EN

Stack Overflow用户
提问于 2017-09-20 20:37:30
回答 1查看 176关注 0票数 0

我正在尝试基于TensorFlow Android演示构建一个简单的Android应用程序;然而,我使用的模型需要一个内核Op,在默认情况下不包括在TensorFlow aar中。这使我走上了从源代码编译库的道路。

我已经让apk通过gradle构建,使用bazel作为本机构建工具;然而,每当我尝试从.pb文件(实际上是任何原型格式的模型)加载模型时,应用程序就会崩溃,错误声称模型是“无效的TensorFlow图序列化:无效的GraphDef”。

有人经历过这个问题吗?我猜有些东西没有正确编译,但我甚至不知道从哪里开始寻找错误。

下面是我使用的Bazel命令(为了方便起见,几乎逐字从演示中提取):

代码语言:javascript
复制
/usr/local/bin/bazel build -c opt 
tensorflow/examples/android/app:tensorflow_native_libs
--crosstool_top=//external:android/crosstool --cpu=arm64-v8a
--host_crosstool_top=@bazel_tools//tools/cpp:toolchain

注意:build.gradle文件和Bazel文件基本上保持不变;我修改了一些路径(我将android示例移到子目录app/中,以允许多项目gradle设置),并包含了附加的所需内核Op.。

我尝试过的事物:

  • 经过一些研究后,我在TensorFlowSharp github页面上发现了一个问题,表明这次崩溃可能是缓冲区大小的问题,而且我的模型是相当大的(~93MB)。然而,对于一个小得多的网络(1.6MB),我得到了同样的错误。
  • 我也尝试过关闭.pb文件的压缩作为gradle构建的一部分,因为这也是推荐的地方,也没有改变。
  • 在一次绝望的尝试中,我尝试用我刚刚构建的.so文件替换JCenter提供的Tensorflow android中现有的JCenter文件,但这导致了同样的错误。
  • 脱机编译.so文件并手动将它们放在适当的android项目目录中。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-25 17:52:25

事实证明,这是我正在处理的TensorFlow提交的一个问题。当我从上游的TensorFlow回购中合并最近的变更时,错误就消失了。

我无法想象其他人会遇到这个问题;但是如果您遇到了这个问题,或者您遇到了类似的模糊错误,那么更新到更新版本的TensorFlow可能是您的解决方案。或者,您可以选择比我更聪明,并建立一个稳定的版本库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46331371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档