yolo --- 参数(训练、验证、预测)解释
模型训练参数
from ultralytics import YOLO # Load a model model = YOLO('yolov8n.pt') # load a pretrained model (recommended for training) # Train the model with 2 GPUs results = model.train(data='coco8.yaml', epochs=100, imgsz=640, device=[0, 1])
model
model: 模型文件的路径。这个参数指定了所使用的模型文件的位置,例如 yolov8n.pt 或 yolov8n.yaml。
选择.pt和.yaml的区别
若我们选择 yolov8n.pt这种.pt类型的文件,其实里面是包含了模型的结构和训练好的参数的,也就是说拿来就可以用,就已经具备了检测目标的能力了,yolov8n.pt能检测coco中的80个类别。但如果你需要检测的类别不在其中,例如口罩检测,那么就需要重新训练。
训练自己的数据集,我们一般采用yolov8n.yaml这种.yaml文件的形式,包含模型的结构。
data
data: 数据文件的路径。该参数指定了数据集文件的位置,例如 coco128.yaml。数据集文件包含了训练和验证所需的图像、标签。
epochs
epochs: 训练的轮数。这个参数确定了模型将会被训练多少次,每一轮都遍历整个训练数据集。训练的轮数越多,模型对数据的学习就越充分,但也增加了训练时间。
选取策略
默认是100轮数。但一般对于新数据集,我们还不知道这个数据集学习的难易程度,可以加大轮数,例如300,来找到更佳性能。
batch
batch: 每个批次中的图像数量。在训练过程中,数据被分成多个批次进行处理,每个批次包含一定数量的图像。这个参数确定了每个批次中包含的图像数量。特殊的是,如果设置为**-1**,则会自动调整批次大小,至你的显卡能容纳的最多图像数量。
- 小
batch_size
:适用于显存较小的 GPU,但训练速度可能较慢,梯度估计可能不稳定。 - 大
batch_size
:适用于显存较大的 GPU,训练速度较快,梯度估计较稳定,但可能会超出显存限制。
device
device: 训练运行的设备。该参数指定了模型训练所使用的设备,例如使用 GPU 运行可以指定为 device=0,或者使用多个 GPU 运行可以指定为 device=0,1,2,3,如果没有可用的 GPU,可以指定为 device=cpu 使用 CPU 进行训练。
imgsz
训练的目标图像大小。所有图像在输入模型之前都会被调整到这个尺寸。影响模型准确性和计算复杂度
workers
在每个epoch加载数据时,dataloader一次性创建workers数量个工作进程,并且每个进行负责调度一个batch的数据,worker负责将batch加载到内存中,dataloader从RAM中找到这个epoch所需要的batch,如果找到就使用,如果没有就要继续加载batch到RAM。
如果workers设置的很大,优点是找batch的速度快,因为RAM中可能有好多个batch的数据在等待处理。缺点是CPU、内存开销大,因为是CPU负责调度进程加载数据到RAM中。
模型验证参数
from ultralytics import YOLO # Load a model model = YOLO('yolov8n.pt') # Customize validation settings validation_results = model.val(data='coco8.yaml', imgsz=640, batch=16, conf=0.25, iou=0.6, device='0')
模型预测参数
from ultralytics import YOLO # ---------- 加载模型 ---------- model = YOLO('runs/detect/train3/weights/best.pt') # ---------- 模型预测 ---------- model.predict( source='https://ultralytics.com/images/bus.jpg', save=True )
source
输入源包括静态图像、视频流和各种数据格式
stream
对于处理长视频或大型数据集,为了有效地管理内存,请使用 stream=True。当 stream=False 时,所有帧或数据点的结果都存储在内存中,这对于大型输入来说会迅速增加并可能导致内存不足错误。相比之下,stream=True 使用生成器,它只保留当前帧或数据点的结果在内存中,显著减少内存消耗并防止内存不足问题。
save
启用将标注的图像或视频保存到文件。这对于文档、进一步分析或分享结果非常有用。
imgsz
imgsz 是指宽,如下图的2560
实测:640*640的图片,imgsz=640识别不到,imgsz=1280识别的到,不填默认是1280
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
2017-11-18 C++ ------ 创建对象 new 和不 new 的区别