yolov5代码阅读笔记_参数与autoanchor

该篇博客详细解读了YOLOv5模型的参数设置,包括–rect、–noautoanchor等选项,以及它们在目标检测中的作用。文章讨论了如何计算最佳锚点匹配,并介绍了如何通过–evolve参数进行超参数进化,以及–bucke用于结果上传。同时提到了学习率策略、标签平滑和早停机制等训练优化技术。
摘要由CSDN通过智能技术生成

一些个人理解,不是专业术语~~

code:

https://github.com/ultralytics/yolov5

参数设置:
–rect:开启矩形训练
–noautoanchor:触发关闭auto anchor

def metric(k):  # compute metric
        r = wh[:, None] / k[None]
        x = torch.min(r, 1 / r).min(2)[0]  # ratio metric
        best = x.max(1)[0]  # best_x
        aat = (x > 1 / thr).float().sum(1).mean()  # anchors above threshold
        bpr = (best > 1 / thr).float().mean()  # best possible recall
        return bpr, aat

wh:所有GT的宽高;
k:所有anchor的宽高;
r:w_GT/w_anchor与h_GT/h_anchor;
torch.min(r, 1 / r):将所有的w_GT/w_anchor、h_GT/h_anchor统一到小于1;
x = torch.min(r, 1 / r).min(2)[0]:看每一组对应的w_GT/w_anchor、h_GT/h_anchor两个数值,哪个更小保留下来,也就是保留和anchor最不像的那个边长特征,x的shape为(n,9);
best = x.max(1)[0]:每9个里面最不像anchor的特征已经保留下来了,现在就看保留下来的这些特征里面选一个比较接近anchor的(意思就是不需要每个anchor都像,有一个就行);
bpr:比较接近的那个特征和thr作比较,可以的就置为1,看多少GT和anchor比较像;
(后面代码)如果这个相似度大于0.98了,就不进行autoanchor了;如果小于0.98,就根据kmeans和遗传算法重新计算anchors。

–evolve:进化超参数,网上资料表明开启后会慢数倍,非研究目的建议使用默认值

–bucke:上传结果等到谷歌云盘
–image-weights:更改类权重
–linear-lr:是否使用线性学习率,默认使用cosine lr
–label-smoothing:防止过拟合,标签平滑,弱化单个标签的作用
–patience:早停机制

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值