0

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) for operation BATCH_TO_SPACE_ND

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

4

2 回答 2

0

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

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

于 2019-02-15T04:36:37.323 回答
-1

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

于 2020-02-21T09:29:43.107 回答