如何使用 Tensorflow 对象检测 API 继续训练对象检测模型?

2024-02-02

我在用着Tensorflow 对象检测 API https://github.com/tensorflow/models/tree/master/research/object_detection#tensorflow-object-detection-api使用迁移学习训练对象检测模型。具体来说,我正在使用来自模型动物园的 ssd_mobilenet_v1_fpn_coco https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md#coco-trained-models,并使用提供样本管道 https://github.com/tensorflow/models/blob/master/research/object_detection/samples/configs/ssd_mobilenet_v1_fpn_shared_box_predictor_640x640_coco14_sync.config,当然用我的训练和评估 tfrecords 和标签的实际链接替换了占位符。

我能够使用上述管道在大约 5000 张图像(以及相应的边界框)上成功训练模型(如果相关的话,我主要在 TPU 上使用 Google 的 ML 引擎)。

现在,我准备了额外的约 2000 张图像,并希望继续使用这些新图像训练我的模型,而无需从头开始(训练初始模型花费了约 6 小时的 TPU 时间)。我怎样才能做到这一点?


您有两个选择,您都需要更改input_path of the train_input_reader新数据集的:

  1. 在训练配置中指定要微调的检查点时,请指定训练模型的检查点
train_config{
    fine_tune_checkpoint: <path_to_your_checkpoint>
    fine_tune_checkpoint_type: "detection"
    load_all_detection_checkpoint_vars: true
}
  1. 只需继续使用相同的配置(除了train_input_reader)与相同的model_dir您之前的型号。这样,API 将创建一个图表并检查检查点是否已存在于model_dir并拟合图形。如果是这样 - 它将恢复它并继续训练它。

编辑:fine_tune_checkpoint_type 之前被错误地设置为 true,而一般情况下它应该是“检测”或“分类”,在这种特定情况下应该是“检测”。感谢克里什的注意到。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Tensorflow 对象检测 API 继续训练对象检测模型? 的相关文章

随机推荐