如何在Tensorflow Mobile / Lite中训练SSD模型

时间:2018-04-27 07:32:34

标签: tensorflow tensorflow-lite

我有一个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模型?

1 个答案:

答案 0 :(得分:3)

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

2)tensorflow models存储库是值得关注的地方。请注意,图表架构和权重是分开的,因此如果您决定从头开始,请不要在开始培训时加载权重。

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