重新训练Tensorflow目标检测API

5

我已经阅读了有关使用TensorFlow目标检测API训练新类的教程。但是我想做的是将一个新类添加到预先训练模型的已经训练好的类中。

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

1个回答

7

TensorFlow物体检测API支持使用预训练的MS COCO检查点开始。只需设置

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

在您的检测管道中,您需要将包含额外类别的图像添加到coco数据集中,并对所有91个类进行微调,否则您的网络可能会忘记之前学习的内容,只检测新对象。

(官方参考:https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/configuring_jobs.md


MS COCO检查点已经可以预测90个类别。我有一个新类别的数据。现在我应该将新类别的数据与MS COCO数据集合并,为所有91个类别创建TFRecords并从网络检查点进行训练吗? - Akshai
3
否则,网络可能会忘记 COCO。或者,你可以尝试实现“遗忘无忧”的论文内容,该论文展示了如何仅使用新数据进行学习而不会忘记之前的任务。来源:https://arxiv.org/abs/1606.09282 - giobatta912
1
@AndreaPisoni,你知道我需要复制哪些文件来从一台电脑移动到另一台电脑重新训练模型吗?就像你所说,我们需要文件model.ckpt-#####。所以,我将 model.ckpt-#####. data-00000-of-00001model.ckpt-#####.indexmodel.ckpt-#####.meta 这三个文件复制到新目录中。然后,我将 fine_tune_checkpoint 指向我的新检查点。但是它显示找不到我的新检查点。于是,我将旧文件夹里的 checkpoint 文件复制到新文件夹,但是又出现另一个错误:Unsuccessful TensorSliceReader constructor。我漏掉了什么吗? - Khanh Le

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接