【问题标题】:How to run Conv3D Model in Android?如何在 Android 中运行 Conv3D 模型?
【发布时间】:2019-05-05 18:00:32
【问题描述】:

我最近深入研究了计算机视觉和深度学习领域。我在 Keras 中开发了一个用于动作识别的 3D CNN 模型,现在我有兴趣在 Android (Java) 中运行它。我使用的图层是 Conv3D 和 MaxPool3D。模型总大小为 40MB

我一直在寻找 tensorflow-lite 领域的解决方案,但似乎他们还没有实现这些操作。

使用converter.convert()函数获取tflite模型时出现如下错误

ConverterError: TOCO failed. See console for info.
2019-05-05 14:39:07.006669: I tensorflow/lite/toco/import_tensorflow.cc:1336] Converting unsupported operation: Conv3D

那么我该怎么做才能在 Java 中运行它呢?我应该:

  • 直接运行.pb文件?我什至不知道这是否可能现在(在 tflite 之后)。如果是这样,新一代智能手机运行一个 40MB 文件需要多长时间?
  • 自己实现操作?如果有,怎么做?
  • 在 tensorflow 之外尝试不同的方法?
  • 实现一个新的动作识别架构,只使用支持 tflite 的操作
  • 其他

到目前为止,我在网络上还没有在 Android 中找到任何 Conv3D 实现... 非常感谢您的关注!

【问题讨论】:

  • 您的训练数据的性质和形式是什么?
  • 输入数据是 10 个处理帧的剪辑。我只想在 Android 设备上运行预测

标签: android python tensorflow keras tensorflow-lite


【解决方案1】:
  • 如果你想使用 tensorflow 作为独立的 JAVA 代码执行, 请看一下 this。但是如果你 想要使用 JAVA 为 android 实现一些东西,唯一的方法是使用 Tensorflow Lite.

  • 对于推理时间,您可以在性能基准测试中将您的模型与一些最先进的架构进行比较。您可以找到here 基准值,它显示了与 Pixel 2 和 Pixel XL 设备的比较。

  • 对于Conv3D的实现,如果你想实现ops,你可以看看custom operators

  • 我更喜欢您关于“实施仅使用 tflite 支持的操作的新动作识别架构”的建议。 Here你可以找到使用 TF Lite 支持的操作列表。

【讨论】:

    猜你喜欢
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    相关资源
    最近更新 更多