【问题标题】:How to convert model trained on custom data-set for the Edge TPU board?如何为 Edge TPU 板转换在自定义数据集上训练的模型?
【发布时间】:2020-05-07 20:47:45
【问题描述】:
我已经使用张量流对象检测 API 训练了我的自定义数据集。我运行我的“预测”脚本,它在 GPU 上运行良好。现在,我想将模型转换为 lite 并在 Google Coral Edge TPU 板上运行以检测我的自定义对象。我浏览了 Google Coral Board 网站提供的文档,但我发现它非常混乱。
如何在 Google Coral Edge TPU Board 上转换和运行它?
谢谢
【问题讨论】:
标签:
tensorflow
object-detection
tensorflow-datasets
google-coral
tensorflow-lite
【解决方案1】:
如果不阅读文档,将很难继续。我不确定你的“预测脚本”是什么意思,但我假设脚本加载了一个 .pb tensorflow 模型,加载了一些图像数据,并对其进行推理以产生预测结果。这意味着您在以下管道的“冻结图”阶段拥有一个 .pb 张量流模型:
图片取自coral.ai。
下一步是使用训练后量化技术将您的 .pb 模型转换为“完全量化的 .tflite 模型”。这样做的文档是here。我还创建了一个 github gist,其中包含 Post Training Quantization here 的示例。生成 .tflite 模型后,您需要通过 edgetpu_compiler 编译模型。尽管您需要了解的有关 edgetpu 编译器的所有信息都在该链接中,但出于您的目的,编译模型非常简单:
$ edgetpu_compiler your_model_name.tflite
这将创建一个与 EdgeTPU 兼容的your_model_name_edgetpu.tflite 模型。现在,如果在这个阶段,您没有创建与 edgetpu 兼容的模型,而是遇到了某种类型的错误,那么这意味着您的模型不符合 models-requirements 部分中发布的要求。
生成编译模型后,您可以将其部署到 edgetpu 设备上。目前有 2 个主要 API 可用于对模型进行推理:
最终,有许多演示示例可以在模型here 上运行推理。