如何在Android中运行Conv3D模型?

时间:2019-05-05 18:00:33

标签: android python tensorflow keras tensorflow-lite

我最近进入了计算机视觉和深度学习世界。我开发了一种3D CNN模型,用于在Keras中进行动作识别,现在我对在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的文件?
  • 我自己执行操作?如果是,该怎么办?
  • 在张量流之外尝试其他方法?
  • 实施仅使用tflite支持的操作的新动作识别架构
  • 其他

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

1 个答案:

答案 0 :(得分:0)

  • 如果要使用张量流以标准Java代码执行, 请看看 this。但是如果你 想要使用JAVA为Android实现某些功能,唯一的方法是使用 Tensorflow Lite

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

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

  • 我希望您的建议是“实施仅使用tflite支持的操作的新动作识别架构”。 Here可以使用TF Lite查找支持的操作的列表。