首页 > 解决方案 > 如何为 Edge TPU 板转换在自定义数据集上训练的模型?

问题描述

我已经使用 Tensor Flow Object Detection API 训练了我的自定义数据集。我运行我的“预测”脚本,它在 GPU 上运行良好。现在,我想将模型转换为 lite 并在 Google Coral Edge TPU Board 上运行它来检测我的自定义对象。我浏览了 Google Coral Board 网站提供的文档,但我发现它非常混乱。如何在 Google Coral Edge TPU Board 上转换和运行它?谢谢

标签: tensorflowobject-detectiontensorflow-datasetsgoogle-coraltensorflow-lite

解决方案


如果不阅读文档,将很难继续。我不确定你的“预测脚本”是什么意思,但我假设脚本加载了一个 .pb tensorflow 模型,加载了一些图像数据,并对其进行推理以产生预测结果。这意味着您在以下管道的“冻结图”阶段有一个 .pb 张量流模型:

工作流程 图片取自coral.ai

下一步是使用训练后量化技术将您的 .pb 模型转换为“完全量化的 .tflite 模型”。此处提供了执行此操作的文档。我还创建了一个 github gist,其中包含一个Post Training Quantization here的示例。生成 .tflite 模型后,您需要通过edgetpu_compiler编译模型。尽管您需要了解的有关 edgetpu 编译器的所有信息都在该链接中,但出于您的目的,编译模型非常简单:

$ edgetpu_compiler your_model_name.tflite

这将创建一个your_model_name_edgetpu.tflite与 EdgeTPU 兼容的模型。现在,如果在这个阶段,您没有创建兼容 edgetpu 的模型,而是遇到了某种类型的错误,那么这意味着您的模型不符合模型要求部分中发布的要求。

生成编译模型后,您可以将其部署在 edgetpu 设备上。目前有 2 个主要的 API 可用于对模型进行推理:

最终,这里有许多演示示例可以对模型进行推理。


推荐阅读