首页 > 解决方案 > 如何在 Tensorflow Mobile/Lite 中训练 SSD 模型

问题描述

我有一个 300*300 图像的数据集以及其中的对象的框和标签。我想使用 SSD 网络来检测图像上的这些对象。我也想在移动设备上做,所以我需要最终模型与 TF Mobile/Lite 兼容。问题是:我应该从哪里开始?

我知道 TF Mobile/Lite 支持 SSD(例如,请参阅https://github.com/tensorflow/tensorflow/issues/15633 )。而且我认为不应该有针对 TF 训练的 SSD 模型,我只需要在我自己的数据集上进行训练。但我只能找到预训练的。我也找不到任何教程,它解释了如何在他自己的数据集上训练现有模型。

所以,更准确地说:

  1. 我的假设是,我应该获得未经训练的模型并使用一些简单的脚本在我自己的数据集上对其进行训练,对吗?
  2. 如果,那么我在哪里可以得到这个模型和训练脚本?
  3. 我是否需要使用桌面 TF 对其进行训练,然后转换为 Mobile/Lite 模型?

标签: tensorflowtensorflow-lite

解决方案


1)除非您拥有大量数据,否则您的假设是错误的。今天的大多数应用程序都从在 Imagenet 上预训练的模型开始,然后根据您的数据集对其进行微调。这样做的原因是,虽然数据集不同,但从 Imagenet 中学到的许多特征对新数据集也很有用,因此您可以对其进行微调,从而避免需要拥有大量数据(以及大量时间/计算能力) )。

2)tensorflow模型存储库是查看的地方。请注意,图形架构和权重是分开的,因此如果您决定从头开始,请不要在开始训练时加载权重。

3) 是的,tflite 是一个面向移动设备的优化运行时,图形仍然在桌面上使用普通的 Tensorflow 进行训练,冻结,然后您可以.pb在使用 tflite 构建的应用程序中使用冻结图形的文件。有关如何执行所有这些操作的更多详细信息,您应该查看 Tensorflow 的网站,他们有许多涵盖每个步骤的指南(在这里详细介绍所有这些步骤是不可能的)。


推荐阅读