1

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

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

操作员 数数 地位
风俗 1 操作正在处理不受支持的数据类型
添加 10 映射到边缘 TPU
物流 1 映射到边缘 TPU
级联 2 映射到边缘 TPU
重塑 13 映射到边缘 TPU
CONV_2D 55 映射到边缘 TPU
DEPTHWISE_CONV_2D 17 映射到边缘 TPU

并从 netron 可视化;

在此处输入图像描述

“自定义”运算符未映射。所有操作都在 tpu 上映射和工作,但“自定义”在 cpu 上工作。我在 ssd_mobilenet_v1 中看到了相同的运营商

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

4

1 回答 1

1

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

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

于 2021-03-30T06:00:42.733 回答