YOLOv7训练记录——权重使用问题

文章目录

  • 前言
  • 权重
    • 使用预训练权重
  • 总结

前言

YOLOv7论文链接:YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
官方github代码链接:https://github.com/WongKinYiu/yolov7

YOLOv7于2022.07发布,一经发布,很多人应该有共同的想法——v7的效果是否和论文一致?v7的效果跟v5相比如何?

此贴记录自己YOLOv7的训练过程。

权重

一般训练,我都会优先使用官方提供的权重进行训练,而且v7和v5代码架构相同,同样可以自动判断继承权重。(具体什么意思呢?简单概括就是,加载预训练权重时,会先对你真正使用主干网络跟预训练权重包含的主干网络参数进行比较,观察有多少层是相同的,然后就只会加载相同的层数训练。所以,后面即使更改了主干结构,依旧可以使用预训练权重。PS:如果存在以为,自己可以测试,亦或者不用预训练权重

使用预训练权重

yolov7官方提供了很多种权重,而且有的结构提供了多种结构?比如:yolov7.ptyolov7_training.pt

YOLOv7训练记录——权重使用问题_第1张图片
这两个权重到底用哪个?什么区别?
使用时,会发现两个权重都可以训练,而且都有预训练的效果,结果好像差不多,那设置两个权重的意义是?
yolov7_traing.pt结构是未重参数化的结构;而yolov7.pt是合并分支后的网络结构,也就是重参数化后的模型结构,为什么也可以训练?
yolov7_traing.pt训练的时候用的是training中的yolov7.yaml,yolov7.pt训练的时候用的是deploy中的yolov7.yaml

作者在代码里的解释:
YOLOv7训练记录——权重使用问题_第2张图片

总结

说了一堆,总结就是,训练时用yolov7_training.pt作预训练权重

你可能感兴趣的:(深度学习,人工智能,机器学习)