训练YOLOS-S

1 数据处理

  1. 修改类别数:在models/detector.py中定位到def build(args):,将num_classes进行修改,改为最大的类别id+1。我有4个类别,类别id是从0~3,因此max_id=3,这里的num_classes=max_id+1=4

在这里插入图片描述

  1. 修改数据集位置

然后,因为我的数据集排布是:

F:/A_Publicdatasets/RDD2020-1202/train_valid/RDD2020_together
├─annotations
│  ├─instances_train.json
│  ├─instances_val.json
│  └─instances_test.json
├─images
│  ├─test
│  │  ├─xxx.jpg
│  │  ├─xxx.jpg
│  ├─train
│  └─val

因此,在datasets/coco.py中根据自己的数据集进行更改:

在这里插入图片描述

        "train": (root / "images/train", root / "annotations" / f'{mode}_train.json'),
        "val": (root / "images/val", root / "annotations" / f'{mode}_val.json'),

2 配置训练参数

官方给的训练YOLOS-S 300轮的命令:

python -m torch.distributed.launch \
    --nproc_per_node=8 \
    --use_env main.py \
    --coco_path /path/to/coco
    --batch_size 1 \
    --lr 2.5e-5 \
    --epochs 150 \
    --backbone_name small \
    --pre_trained /path/to/deit-small-300epoch.pth\
    --eval_size 800 \
    --init_pe_size 512 864 \
    --mid_pe_size 512 864 \
    --output_dir /output/path/box_model

参照着上面去修改即可,我喜欢将参数直接给修改在main.py里面,但我:

  • --init_pe_size--mid_pe_size都设置成了default=(640, 640),这应该是跟图像尺寸相关的
  • 没有使用--pre_trained,因为不想使用预训练权重

题外话

选择使用哪个?默认的是tiny,可以换成small,可对应models/backbone.py中进行查看,可以定位到tinysmall函数位置

在这里插入图片描述
对应的有这些选项:

在这里插入图片描述

3 可能会遇到的报错

可能会遇到这个报错:ImportError: cannot import name 'container_abcs' from 'torch._six' (F:\SoftWareInstall\Anaconda3\envs\torch1.10\lib\site-packages\torch\_six.py),然后参照这个篇博客【报错】cannot import name ‘container_abcs‘ from ‘torch._six‘

models/layers/helper.py中将from torch._six import container_abcs改为如下代码即可:

import collections.abc as container_abcs
  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
YOLOv5是一种目标检测算法,它是YOLO(You Only Look Once)系列的最新版本。YOLOv5是由Ultralytics开发的,它在YOLOv4的基础上进行了改进和优化。 要在Ubuntu 18上使用YOLOv5训练自己的数据集,可以按照以下步骤进行操作: 1. 安装依赖:首先,确保你的系统已经安装了Python和CUDA。然后,使用以下命令安装YOLOv5所需的依赖库: ``` pip install -r requirements.txt ``` 2. 准备数据集:将你的自定义数据集准备好,并按照YOLOv5的要求进行标注。确保每个图像都有对应的标签文件。 3. 配置训练参数:在YOLOv5的`yolov5/models`目录下,有一些预定义的模型配置文件,你可以根据自己的需求选择一个合适的模型。然后,在`yolov5/data`目录下,创建一个新的数据集配置文件,指定你的数据集路径、类别数量等信息。 4. 开始训练:使用以下命令开始训练模型: ``` python train.py --img <image_size> --batch <batch_size> --epochs <num_epochs> --data <path_to_data_config> --cfg <path_to_model_config> ``` 其中,`<image_size>`是输入图像的尺寸,`<batch_size>`是每个批次的图像数量,`<num_epochs>`是训练的轮数,`<path_to_data_config>`是数据集配置文件的路径,`<path_to_model_config>`是模型配置文件的路径。 5. 模型评估和推理:训练完成后,可以使用训练得到的模型进行评估和推理。使用以下命令进行评估: ``` python val.py --data <path_to_data_config> --weights <path_to_trained_weights> ``` 使用以下命令进行推理: ``` python detect.py --source <path_to_input_images> --weights <path_to_trained_weights> ``` 其中,`<path_to_trained_weights>`是训练得到的权重文件的路径,`<path_to_input_images>`是输入图像的路径。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟孟单单

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值