yolo训练步骤

训练部分

数据集的划分

必须要按照如下格式:

yolo查找标签时会自动在“训练集”和“验证集”的上一级目录的labels下对应目录下的对应标签文件
总之这样划分就行了

修改data配置文件

随便选一个.yaml文件,都不影响

把不必要的部分删掉(下载数据的部分),把数据集的路径填进去,标注类别填进去。这里可以不要test数据,不填就行了。

修改model配置文件

将nc改为你的类别数

下载权重文件

去官网下载,为.pt文件,有的权重还比较大

在releases下的assets(资源)中

修改train

在此我们主要设置如下参数

weight:将下载好的权重路径放入,也可以空,表示不用预训练的权重

cft:模型路径

data:数据集路径 

根据自己的配置修改相应的batchsize、epochs

这些参数做一个简单说明:

  1. --weights: 初始权重的路径。

  2. --cfg: 模型配置文件的路径。

  3. --data: 数据集配置文件的路径。

  4. --hyp: 超参数文件的路径。

  5. --epochs: 训练的总轮数。

  6. --batch-size: 所有 GPU 上的总批量大小。

  7. --img-size: 训练和测试图像的大小。默认为 [640, 640]。

  8. --rect: 如果设置,表示使用矩形训练。

  9. --resume: 如果设置,表示继续最近的训练。

  10. --nosave: 如果设置,表示只保存最终的检查点。

  11. --notest: 如果设置,表示只测试最终的轮次。

  12. --noautoanchor: 如果设置,表示禁用自动anchor检查。

  13. --evolve: 如果设置,表示演化超参数。

  14. --bucket: gsutil bucket。

  15. --cache-images: 如果设置,表示缓存图像以加快训练速度。

  16. --image-weights: 如果设置,表示使用加权图像选择进行训练。

  17. --device: 训练设备,可以是 cuda 设备(例如,'0' 或 '0,1,2,3')或者 'cpu'。

  18. --multi-scale: 如果设置,表示变化 img-size +/- 50%。

  19. --single-cls: 如果设置,表示将多类数据训练为单类。

  20. --adam: 如果设置,表示使用 torch.optim.Adam() 优化器。

  21. --sync-bn: 如果设置,表示使用 SyncBatchNorm,只在 DDP 模式下可用。

  22. --local_rank: DDP 参数,不要修改。

  23. --workers: 数据加载器工作线程的最大数量。默认为 8。

  24. --project: 保存结果的项目路径。默认为 'runs/train'。

  25. --entity: W&B 实体。

  26. --name: 保存结果的项目名称。默认为 'exp'。

  27. --exist-ok: 如果设置,表示存在的项目/名称是允许的,不会自动递增编号。

  28. --quad: 如果设置,表示使用 quad 数据加载器。

  29. --linear-lr: 如果设置,表示使用线性学习率。

  30. --label-smoothing: 标签平滑的 epsilon 值。默认为 0.0。

  31. --upload_dataset: 如果设置,表示将数据集上传为 W&B artifact 表。

  32. --bbox_interval: 设置用于 W&B 的边界框图像记录间隔。

  33. --save_period: 设置每个 "save_period" 轮后记录模型。

  34. --artifact_alias: 用于选择数据集 artifact 版本的别名。默认为 "latest"。

好!开始炼丹(训练)

接下来所遇到的问题

wandb.errors.UsageError: api_key not configured (no-tty). call wandb.login(key=[your_api_

参考此篇

具体原因:未设置api-key值

RuntimeError: result type Float can‘t be cast to the desired output type long int

参考此篇

找到utils下的loss.py

# gain = torch.ones(7, device=targets.device) # 注释此行
gain = torch.ones(7, device=targets.device).long() # 修改为此行

具体原因:新版本的torch无法自动执行此转换,旧版本torch可以

Images sizes do not match. This will causes images to be display incorrectly in the UI

参考此篇

未解决,但不影响使用

训练完后会在run/train下保存有.pt的训练权重模型和一些结果图片

推理模式

  1. --weights: 模型权重的路径,可以指定一个或多个权重文件。

  2. --source: 推理的输入源,可以是文件路径、文件夹路径,或者使用摄像头时为 0。

  3. --img-size: 推理时的图像大小(像素)。默认值为 640。

  4. --conf-thres: 目标置信度阈值,低于此阈值的目标将被过滤。

  5. --iou-thres: 非极大值抑制(NMS)的 IoU 阈值,用于去除重叠较大的边界框。默认值为 0.45。

  6. --device: 推理设备,可以是 cuda 设备(例如,'0' 或 '0,1,2,3')或者 'cpu'。默认为空字符串,表示使用默认设备。

  7. --view-img: 如果设置,将显示推理结果。

  8. --save-txt: 如果设置,将结果保存为文本文件(*.txt)。

  9. --save-conf: 如果设置,将置信度信息保存到 --save-txt 指定的标签文件中。

  10. --nosave: 如果设置,将不保存推理结果的图像或视频。

  11. --classes: 指定要过滤的目标类别。可以指定一个或多个类别的索引,例如,--classes 0 或 --classes 0 2 3。

  12. --agnostic-nms: 如果设置,使用类别无关的 NMS。

  13. --augment: 如果设置,进行推理时使用数据增强。

  14. --update: 如果设置,将更新所有模型。

  15. --project: 保存结果的项目路径。默认为 'runs/detect'。

  16. --name: 保存结果的项目名称。默认为 'exp'。

  17. --exist-ok: 如果设置,表示存在的项目/名称是允许的,不会自动递增编号。

设置一个好的置信度和iou还挺重要的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值