【问题标题】:Tensor Flow Could not load custom protobuf files inTensorflow 无法加载自定义 protobuf 文件
【发布时间】:2016-04-06 11:03:21
【问题描述】:

我刚刚使用TensorFlow tutorial为我自己的自定义图像创建了一个protobuf文件(.pb文件)。

但是当我将相同的文件替换到 tensorflow/examples/android/assets 的 assets 文件夹中并尝试构建和生成 APK 时,会生成 APK,但是当我在 Android 设备上运行 APK 时,APK 会崩溃。

如果我从 Python 运行 classify_image,它会给我正确的结果。

感谢任何帮助。

【问题讨论】:

  • 你能检查一下 APK 是否包含你期望的 PB 文件吗?此外,它可能有助于获取一些错误跟踪和更多详细信息。

标签: android python-2.7 protocol-buffers tensorflow


【解决方案1】:

由于不支持将 DecodeJpeg 作为核心的一部分,因此您需要先将其从图中剥离。

bazel build tensorflow/python/tools:strip_unused && \
bazel-bin/tensorflow/python/tools/strip_unused \
--input_graph=your_retrained_graph.pb \
--output_graph=stripped_graph.pb \
--input_node_names=Mul \
--output_node_names=final_result \
--input_binary=true

更改此文件中的一些参数

/tensorflow/examples/android/src/org/tensorflow/demo/TensorFlowImageListener.java

输入大小需要为 299,而不是 224。您还需要将均值和标准值都更改为 128。

INPUT_NAME 到 "Mul:0" , OUTPUT_NAME 到“final_result:0”

之后,您将能够编译 apk。

祝你好运

【讨论】:

  • 嗨 Rohit,您使用的是 TensorFlow 0.10.0rc0 吗?当我运行bazel-bin/tensorflow/python/tools/strip_unused 时,我收到错误from tensorflow.python.tools import strip_unused_lib ImportError: No module named tools.. 谢谢,杰夫
  • 我在 r0.9。它的“tools:strip_unused”不是“tools/strip_unused”,只需从您的工作区在终端上一次运行整个命令,并确保您的 .pb 文件也存在于您的工作区中
猜你喜欢
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多