【问题标题】:Retrain Tensorflow Object detection API重新训练 TensorFlow 对象检测 API
【发布时间】:2018-05-15 11:05:33
【问题描述】:

我已阅读有关如何使用 TensorFlow 对象检测 API 训练新类的教程。但我想做的是在预训练模型的已经训练好的类中添加一个新类。

例如:MS-COCO 预训练模型有 90 个类。我想再添加一个类并检测 91 个类的对象。

【问题讨论】:

    标签: tensorflow object-detection


    【解决方案1】:

    Tensorflow 对象检测 API 支持从预训练的 MS COCO 检查点开始。只需设置

    fine_tune_checkpoint: "/usr/home/username/tmp/model.ckpt-#####"
    from_detection_checkpoint: true
    

    在您的检测管道中。 (官方参考:https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/configuring_jobs.md

    您应该将带有额外类的图像添加到 coco 数据集中,并对所有 91 个类进行微调,否则您的网络可能会忘记之前学到的内容,而只会检测到新对象。

    【讨论】:

    • MS COCO 检查点已经预测了 90 个类。我有新课程的数据。现在我应该将新班级的数据与 MS COCO 数据集结合起来,为所有 91 个班级创建 TFRecords 并从网络检查点进行训练吗?
    • 是的,否则网络可能会忘记COCO。或者,您可以尝试实现“Learning without forgetting”论文的内容,该论文展示了如何只使用新数据来学习而不忘记之前的任务。来源:arxiv.org/abs/1606.09282
    • @AndreaPisoni 你知道我从一台电脑移动到另一台电脑重新训练模型时需要复制哪些文件吗?正如你所说,我们需要文件 mode.ckpt-#####。所以我将 3 个文件 model.ckpt-#####. data-00000-of-00001model.ckpt-#####.indexmodel.ckpt-#####.meta 复制到新目录。然后,我将fine_tune_checkpoint 指向我的新检查点。但它发现错误,它找不到我的新检查点。之后,我将旧文件夹中的文件checkpoint 复制到新文件夹中,但发现另一个错误:Unsuccessful TensorSliceReader constructor。我错过了什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 2019-06-28
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 2018-01-01
    • 2019-04-05
    相关资源
    最近更新 更多