yolov8训练

介绍

        训练深度学习模型包括向其提供数据并调整其参数,以便其能够做出准确的预测。Ultralytics YOLOv8中的训练模式旨在充分利用现代硬件功能,对目标检测模型进行有效和高效的训练。本指南旨在涵盖使用YOLOv8强大的一组功能开始训练自己的模型所需的所有细节。

为什么选择Ultralytics YOLO进行训练?

以下是选择YOLOv8的Train模式的一些令人信服的理由:

效率:充分利用您的硬件,无论您是使用单个GPU设置还是跨多个GPU扩展。

多功能性:除了COCO、VOC和ImageNet等现成的数据集外,还可以在自定义数据集上进行培训。

用户友好型:简单而强大的CLI和Python界面,提供直观的培训体验。

超参数灵活性:广泛的可定制超参数,可微调模型性能。

训练模式的主要特点

以下是YOLOv8列车模式的一些显著特点:

自动数据集下载:标准数据集,如COCO、VOC和ImageNet,在首次使用时自动下载。

多GPU支持:跨多个GPU无缝扩展您的培训工作,以加快过程。

超参数配置:通过YAML配置文件或CLI参数修改超参数的选项。

可视化和监控:实时跟踪训练指标,可视化学习过程,以获得更好的见解。

提示

YOLOv8数据集,如COCO、VOC、ImageNet和许多其他数据集,在首次使用时自动下载,即yolo train data=COCO.yaml

用法示例

        在COCO128数据集上以640尺寸的图像大小训练YOLOv8n 100个周期。可以使用设备参数指定训练设备。如果没有传递任何参数并且GPU加速可用,将使用GPU设备=0,否则将使用设备=cpu。有关训练参数的完整列表,请参阅下面的“参数”部分。

单GPU和CPU训练示例

设备是自动确定的。如果GPU可用,则将使用它,否则将在CPU上开始训练。

训练代码示例如下:

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.yaml')  # build a new model from YAML
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)
model = YOLO('yolov8n.yaml').load('yolov8n.pt')  # build from YAML and transfer weights

# Train the model
results = model.train(data='coco128.yaml', epochs=100, imgsz=640)

使用命令训练(CLI)示例如下:

# Build a new model from YAML and start training from scratch
yolo detect train data=coco128.yaml model=yolov8n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco128.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640

多GPU训练

        通过在多个GPU之间分配训练负载,多GPU训练允许更有效地利用可用硬件资源。此功能可通过Python API和命令行界面使用。要启用多GPU训练,请指定要使用的GPU设备ID。

python代码训练demo:

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='coco128.yaml', epochs=100, imgsz=640, device=[0, 1])

命令训练(CLI)示例如下:

# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640 device=0,1

Apple M1和M2 MPS培训

        随着对集成在Ultralytics YOLO型号中的Apple M1和M2芯片的支持,现在可以在使用强大的金属性能着色器(MPS)框架的设备上训练您的型号。MPS提供了一种在苹果定制硅上执行计算和图像处理任务的高性能方式。要在Apple M1和M2芯片上进行培训,在启动培训过程时应将“mps”指定为您的设备。以下是如何在Python中通过命令行执行此操作的示例:

python代码训练demo:

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='coco128.yaml', epochs=100, imgsz=640, device='mps')

命令训练(CLI)示例如下:

# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640 device=mps

在利用M1/M2芯片的计算能力的同时,这使得能够更有效地处理训练任务。有关更详细的指导和高级配置选项,请参阅PyTorch MPS文档。

恢复中断的培训

在使用深度学习模型时,从以前保存的状态恢复训练是一个关键功能。这在各种情况下都很有用,比如当训练过程意外中断时,或者当您希望用新数据或更多时期继续训练模型时。

恢复训练时,Ultralytics YOLO从上次保存的模型加载权重,还恢复优化器状态、学习率调度器和历元数。这使您能够从中断的地方无缝地继续培训过程。

通过在调用train方法时将resume参数设置为True,并指定包含部分训练的模型权重的.pt文件的路径,可以轻松地在Ultralytics YOLO中恢复训练。

以下是如何使用Python并通过命令行恢复中断的培训的示例:

python代码训练demo:

from ultralytics import YOLO

# Load a model
model = YOLO('path/to/last.pt')  # load a partially trained model

# Resume training
results = model.train(resume=True)

命令训练(CLI)示例如下: 

# Resume an interrupted training
yolo train resume model=path/to/last.pt

通过设置resume=True,train函数将使用存储在“path/to/last.pt”文件中的状态,从停止的位置继续训练。如果省略了简历参数或将其设置为False,则培训功能将开始新的培训课程。

请记住,默认情况下,检查点保存在每个epoch的末尾,或者使用save_period参数以固定的间隔保存,因此您必须至少完成1个epoch才能恢复训练运行。

参数

参数详细讲解部分请见我的另一篇博客,链接是:

日志记录

在训练YOLOv8模型时,您可能会发现随着时间的推移跟踪模型的性能是很有价值的。这就是日志记录发挥作用的地方。Ultralytics的YOLO支持三种类型的记录器——Comet、ClearML和TensorBoard。

要使用记录器,请从上面代码段的下拉菜单中选择它并运行它。所选的记录器将被安装并初始化。

Comet

Comet是一个允许数据科学家和开发人员跟踪、比较、解释和优化实验和模型的平台。它提供了实时度量、代码差异和超参数跟踪等功能。

要使用Comet:

# pip install comet_ml
import comet_ml

comet_ml.init()

请记住在他们的网站上登录您的Comet帐户并获取您的API密钥。您需要将其添加到环境变量或脚本中,以记录您的实验。

ClearML

ClearML是一个开源平台,可以自动跟踪实验,并有助于有效共享资源。它旨在帮助团队更有效地管理、执行和复制他们的ML工作。要使用ClearML:

# pip install clearml
import clearml

clearml.browser_login()

运行此脚本后,您需要在浏览器上登录ClearML帐户并验证会话。

TensorBoard

TensorBoard是TensorFlow的可视化工具包。它允许您可视化TensorFlow图,绘制有关图执行的定量指标,并显示通过它的其他数据,如图像。

在谷歌可乐中使用TensorBoard:

load_ext tensorboard
tensorboard --logdir ultralytics/runs  # replace with 'runs' directory

要在本地使用TensorBoard,请运行以下命令并在http://localhost:6006/.

tensorboard --logdir ultralytics/runs  # replace with 'runs' directory

这将加载TensorBoard,并将其引导到保存培训日志的目录中。

设置好记录器后,您可以继续进行模型培训。所有培训指标都将自动记录在您选择的平台中,您可以访问这些日志来监控您的模型在一段时间内的性能,比较不同的模型,并确定需要改进的领域。

 

你可能感兴趣的:(YOLO,训练,yolov8训练,人工智能)