android - 将 BATCH_TO_SPACE_ND 和 SPACE_TO_BATCH_ND 添加到 tensorflow lite
问题描述
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?谢谢!
解决方案
找到了答案,要做到这一点,你必须花一些时间来了解他们的代码架构,然后尝试从 tftensor 到 NNAPI 进行“翻译”:
例如:ANEURALNETWORKS_BATCH_TO_SPACE_ND (NNAPI) 需要 2 个参数(输入张量,block_shape),而 TFLite 需要 3 个参数(输入张量,block_shape,crops),因此您需要处理它以绕过错误。
推荐阅读
- python - Python嵌套for循环比单个for循环快
- symfony - 如何将新列添加到现有表 symfony - orocommerce
- r - 根据 R 中的内部列表变量对列表列表进行排序
- javascript - 使用 javascript 在 Enter 上单击 mat-option
- c# - SQL 到 LINQ 转换 C#
- java - How to check if the user has called a number within the last week?
- html - Html 照片库 - 删除空间
- angular - How can I create an Angular brand new component into this folder? Why am I obtaining this error message using Angular CLI?
- vega-lite - Customise vega-lite Line Graph Axis Labels
- oracle-apex - Oracle Apex- Interactive Grid- Reset Button