【问题标题】:Adding BATCH_TO_SPACE_ND and SPACE_TO_BATCH_ND to tensorflow lite将 BATCH_TO_SPACE_ND 和 SPACE_TO_BATCH_ND 添加到 tensorflow lite
【发布时间】:2019-02-13 12:01:28
【问题描述】:

NNAPI 1.1 已经支持 SPACE_TO_BATCH_ND 和 BATCH_TO_SPACE_ND 操作,但当前的 TFLite 代码尚未实现。见:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/nnapi_delegate.cc#L607

我尝试像这样添加它们:

case tflite::BuiltinOperator_SPACE_TO_BATCH_ND:
   nn_op_type = ANEURALNETWORKS_SPACE_TO_BATCH_ND;
   break;
case tflite::BuiltinOperator_BATCH_TO_SPACE_ND:
   nn_op_type = ANEURALNETWORKS_BATCH_TO_SPACE_ND;
   break;

但它不起作用,当我在 android 设备上运行它时出现错误消息:E/Utils: Invalid number of input operands (3, expected 2) or output operands (1, expected 1 ) 用于操作 BATCH_TO_SPACE_ND

如何正确地将这些操作添加到 tensorflow lite?谢谢!

【问题讨论】:

    标签: android c++ tensorflow nnapi


    【解决方案1】:

    找到了答案,要做到这一点,你得花一些时间去了解他们的代码架构,然后尝试从 tftensor 到 NNAPI 进行“翻译”:

    例如:ANEURALNETWORKS_BATCH_TO_SPACE_ND (NNAPI) 需要 2 个参数(输入张量,block_shape),而 TFLite 需要 3 个参数(输入张量,block_shape,crops),因此您需要处理它以绕过错误。

    【讨论】:

      【解决方案2】:

      前面的答案是正确的。当时 NNAPI 不支持裁剪,所以代码只是委派操作员with zero crops

      【讨论】:

      • 这没有回答原始问题。如果您发现其他答案有用,您可以投票。如果您对答案有任何建议,您应该对此发表评论。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多