tensorflow - 如何为 Edge TPU 板转换在自定义数据集上训练的模型?
问题描述
我已经使用 Tensor Flow Object Detection API 训练了我的自定义数据集。我运行我的“预测”脚本,它在 GPU 上运行良好。现在,我想将模型转换为 lite 并在 Google Coral Edge TPU Board 上运行它来检测我的自定义对象。我浏览了 Google Coral Board 网站提供的文档,但我发现它非常混乱。如何在 Google Coral Edge TPU Board 上转换和运行它?谢谢
解决方案
如果不阅读文档,将很难继续。我不确定你的“预测脚本”是什么意思,但我假设脚本加载了一个 .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 可用于对模型进行推理:
最终,这里有许多演示示例可以对模型进行推理。
推荐阅读
- r - 如何在 R Flexdashboard 的多个页面中使用相同的列侧边栏?
- javascript - 无法使用 JQuery 设置 Select2 下拉值
- sql - 在 SQL 中的 sp_execute sql 语句中查找日期间隔内的条目
- html - 在不同的表中插入多个信息,Mysq,Node.js
- webpack - Webpack 构建非常缓慢
- ios - 缺少装配参考?
- python - TypeVar 和 NewType 有什么区别?
- python-3.x - 如何删除我的 Urwid 小部件之间的空格?
- postgresql - 如何在 Express 中使用 Sequelize for Postgresql 实现 IS-A 关系?
- tcl - 在调用者上下文中打印包含列表变量的表达式