自定义:操作正在处理不受支持的数据类型 EDGETPU

CUSTOM : Operation is working on an unsupported data type EDGETPU

我正在尝试为 Coral USB 重新训练自定义对象检测器模型,并遵循这些 link 中的珊瑚 AI 教程; https://coral.ai/docs/edgetpu/retrain-detection/#requirements

重新训练 ssd_mobilenet_v2 模型后,使用 edge tpu 编译器转换 edge tpu 模型。 编译结果是这些;

Operator Count Status
CUSTOM 1 Operation is working on an unsupported data type
ADD 10 Mapped to Edge TPU
LOGISTIC 1 Mapped to Edge TPU
CONCATENATION 2 Mapped to Edge TPU
RESHAPE 13 Mapped to Edge TPU
CONV_2D 55 Mapped to Edge TPU
DEPTHWISE_CONV_2D 17 Mapped to Edge TPU

并从 netron 可视化;

“自定义”运算符未映射。所有操作都映射并在 tpu 上运行,但“自定义”在 cpu 上运行。 我在 ssd_mobilenet_v1

中看到了相同的运算符

如何将所有运算符转换为 edgetpu 模型?什么是自定义运算符? (您可以从此处找到支持的运算符 https://coral.ai/docs/edgetpu/models-intro/#supported-operations

这是 SSD 型号的正确输出。 TFLite_Detection_PostProcess 是自定义操作,在 EdgeTPU 上不是 运行。如果您 运行 netron 在我们 https://coral.ai/models/ 上的一种默认 SSD 型号上,在这种情况下,您会在 CPU 上看到后处理 运行s。

对于您的模型,模型的每个部分都已成功转换。最后一个阶段(获取模型输出并将其转换为各种可用输出)是 TFLite 中的自定义实现,它已经针对速度进行了优化,但属于通用计算,而不是 EdgeTPU 加速的 TFLite 操作。