如何解决预训练模型还是从头开始训练以进行对象检测?
我有一个由 10k-15k 图片组成的数据集,用于监督目标检测,这与 Imagenet 或 Coco 非常不同(图片更暗,代表完全不同的事物,与工业相关)。
当前使用的模型是 FasterRCNN,它以 Resnet 为骨干提取特征。 是否可以在一个阶段从头开始训练模型的主干,然后在另一个阶段训练整个网络对任务有益,而不是加载在 Coco 上预训练的网络,然后在一个阶段重新训练整个网络的所有层?
解决方法
根据我的经验,这里有一些要点:
- 您的训练集不足以从头开始训练检测器(尽管取决于网络配置,fasterrcnn+resnet18 可以工作)。最好在 imagenet 上使用预先训练好的网络;
- 网络预训练的域并不是那么重要。网络,尤其是大网络,需要学习所有那些拱形、圆形和其他原始图形,以便利用这些知识检测更复杂的对象;
- 训练图像的亮度可能很重要,但并不能阻止您使用预训练网络;
- 从头开始训练需要更多的 epoch 和更多的数据。训练时间越长,你的 LR 控制算法就越复杂。至少,它不应该是常数并根据累积损失改变 LR。并且初始设置取决于多种因素,例如网络规模、增强和 epoch 数;
- 我经常使用 fastrcnn+resnet(各种层数)和其他网络。我建议您使用 maskcnn 而不是 fastrcnn。只需命令它不要使用掩码,也不要进行分割。我不知道为什么,但它提供了更好的结果。
- 不要把时间花在 mobilenet 上,因为你的训练集大小,你将无法用一些合理的 AP 和 AR 来训练它。从 maskrcnn+resnet18 主干开始。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。