yolov5训练模型
一个0到1的案例 后续会继续补充
环境python3.8.10
First
- github下载项目:https://github.com/ultralytics/yolov5/tree/master
- cd yolov5, pip install -r requirements.txt -i 清华源
- pip install lambelimg (打标签用的)
Second
- 本地创建文件夹(yolov5同目录),如下图(仅供参考)
- 利用labelimg打标签完后,开始训练
时间挺漫长,建议gpu跑
test_train代码如下:
import train
# if __name__ == '__main__':
# train.run(data=r'D:\develop2\python_virtuals\3\datasets\coco128\test.yaml',
# batch=8, epochs=100, single_cls=True,
# weights=r'D:\develop2\python_virtuals\3\yolov5-master\yolov5s.pt')
# test
if __name__ == '__main__':
train.run(data=r'E:\Code\Python\yolov5py38\yolov5\data\dog_and_cat.yaml',
batch=1, epochs=100, single_cls=False, resume=True, workers=1, device='cpu',
weights=r'E:\Code\Python\yolov5py38\yolov5\yolov5s.pt')
"YOLOv5"的训练参数可以通过命令行参数或配置文件来设置。以下是一些常见的
yolov5train
训练参数示例:
-
--data
:指定训练数据集的配置文件路径,该文件描述了数据集的位置、类别等信息。 -
--cfg
:指定模型的配置文件路径,该文件定义了网络架构和超参数。 -
--weights
:可选参数,用于加载预训练模型权重。 -
--batch-size
:指定训练时的批处理大小。 -
--epochs
:指定训练的迭代次数(轮数)。 -
--img-size
:指定输入图像的尺寸,通常以像素为单位(例如,--img-size 640
)。 -
--project
:指定保存训练结果和日志的项目目录。 -
--name
:为训练实验指定一个名称,用于生成保存模型的文件名。 -
--device
:指定训练所使用的设备,例如--device 0
表示使用GPU 0。 -
--multi-scale
:在训练过程中使用多尺度输入图像,有助于提升模型的鲁棒性。 -
--accumulate
:指定梯度累积的步数,有助于在内存较小的设备上训练大批次大小。 -
--hyp
:指定超参数文件的路径,该文件包含了调整训练过程中的各种超参数。 -
--nosave
:不保存训练过程中的模型权重。 -
--notest
:在训练结束后不进行测试集上的评估。 -
--cache
:缓存数据加载,以加速训练过程。 -
--rect
:使用矩形数据增强,将图像缩放到固定的长宽比。 -
--resume
:从先前的训练中恢复,继续进行训练。 -
--notest
:在每个训练周期结束后不进行测试集上的评估。 -
--cfg
:指定模型的配置文件路径,定义网络架构和超参数。 -
--adam
:使用Adam优化器进行训练。 -
--optimizer
:选择优化器,可以是sgd
、adam
等。 -
--momentum
:当使用SGD优化器时,指定动量值。 -
--weight-decay
:权重衰减,用于控制正则化项的强度。 -
--label-smoothing
:标签平滑,有助于防止过拟合。 -
--augment
:启用数据增强。 -
--mixed-precision
:使用混合精度训练,加速训练过程。 -
--local_rank
:多GPU训练时,指定当前GPU的排名。 -
--save-period
:指定多少个训练周期保存一次模型权重。 -
--cache-images
:缓存图像,提高数据加载效率。 -
--workers
:数据加载的并行工作数。 -
--image-weight
:样本权重,用于平衡类别不平衡问题。 -
--class-balance
:启用类别平衡的损失计算。 -
--upload_dataset
:上传训练数据集到wandb(一个用于跟踪实验的工具)。
这些参数只是其中的一部分。具体的参数和用法可以在YOLOv5的官方文档或代码库中找到。可以选择适当的参数进行配置。
- 训练完后,生成属于自己的best.pt or last.pt文件(自行百度介绍)
Thrid
- 将
best.pt
复制到yolov5目录下,如图
- 使用命令:
python detect.py --weights best.pt --source ../dataset/dog_and_cat/images/val
(val存放验证集图片),效果如下:
可参考
https://github.com/ultralytics/yolov5/tree/master
https://zhuanlan.zhihu.com/p/501798155
https://blog.csdn.net/weixin_42377570/article/details/128675221
https://lightningleader.github.io/posts/15.html
本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/17647880.html