【问题标题】:Tensorflow Object Detection API Untrained Faster-RCNN ModelTensorflow Object Detection API Untrained Faster-RCNN 模型
【发布时间】:2019-12-08 23:07:48
【问题描述】:

我目前正在尝试使用带有 python 的 Tensorflow 对象检测 API 构建对象检测器。我已经按照 here 和 here 发布的说明重新训练了 faster-rcnn model

但是,据我所知,培训时间相当长。我知道我使用的是迁移学习,而不是从头开始训练更快的 rcnn 模型。我想知道是否有办法下载未经训练的 fast-rcnn 模型并从头开始(端到端)进行训练,而不必求助于迁移学习。

我熟悉迁移学习的优点,但是,我的对象检测器旨在快速训练、范围狭窄,并且针对字母而不是对象进行训练,因此我不认为迁移学习是最佳途径。

我相信解决这个问题与pipeline.config 文件有关,尤其是在这部分:

fine_tune_checkpoint: "PATH/TO/PRETRAINED/model.ckpt"
from_detection_checkpoint: true
num_steps: 200000

但我不确定如何指定没有fine_tune_checkpoint

【问题讨论】:

  • 即使使用迁移学习,您也可以选择步数 (num_steps)。例如,您可以将其设置为 20000 甚至更少,具体取决于您拥有的数据量。使用高性能硬件从头开始训练需要几天时间。
  • 您好,您介意解释一下您的意思吗?更改 num_steps 变量不会导致准确性降低吗?
  • 我的意思是:你可以根据你的数据集调整步数。例如,如果您的数据集有 5000 张图像,则无需为 200000 步训练模型。当您开始训练模型时,您将在每次迭代中显示损失。如果损失接近于零(即损失
  • 这就是我的想法,这是可以实现的,但问题是它需要的时间太长了。我相信这是因为我的数据集(字母)与预训练数据集(coco)有很大不同。
  • 1- 你想检测字母/书写(字母和数字)吗?,如果是,你应该使用text-detection-CTPN 2- 迁移学习确实没有完全适应新的训练,但是当你使用迁移学习时,预训练的模型并没有完全加载。当你使用自己的数据集重新训练它时,只加载了其中的一部分。这就是使迁移学习成为可能的原因。您可以微调预训练模型以更适合您的需求..

标签: python tensorflow object-detection object-detection-api faster-rcnn


【解决方案1】:

要从头开始训练您自己的模型,请执行以下操作:

  1. 注释掉以下几行
    # fine_tune_checkpoint: <YOUR PATH>
    # from_detection_checkpoint: true
  1. 删除您下载的预训练模型或重命名其路径,以防您按照教程进行操作。

您不必下载“空”模型。相反,您可以在配置文件中指定自己的权重初始化,例如,如下所示:How to initialize weight for convolution layers in Tensorflow Object Detection API?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    • 1970-01-01
    • 2018-01-28
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多