跳至内容

利用YOLOv8 增强实验跟踪和可视化功能Weights & Biases

物体检测模型,如 Ultralytics YOLOv8等物体检测模型已成为许多计算机视觉应用不可或缺的一部分。然而,训练、评估和部署这些复杂的模型会带来一些挑战。跟踪关键训练指标、比较模型变体、分析模型行为和检测问题都需要大量的仪器和实验管理。

本指南展示了Ultralytics YOLOv8 与Weights & Biases' 的集成,以增强实验跟踪、模型检查点和模型性能的可视化。它还包括使用Weights & Biases' 交互式功能设置集成、训练、微调和可视化结果的说明。

Weights & Biases

Weights & Biases 概述

Weights & Biases是一个先进的 MLOps 平台,用于跟踪、可视化和管理机器学习实验。它具有自动记录训练指标以实现全面的实验可重复性、交互式用户界面以简化数据分析,以及高效的模型管理工具以用于在各种环境中部署。

YOLOv8 培训与Weights & Biases

您可以使用Weights & Biases 为您的YOLOv8 培训过程带来效率和自动化。

安装

要安装所需的软件包,请运行

安装

# Install the required packages for YOLOv8 and Weights & Biases
pip install --upgrade ultralytics==8.0.186 wandb

有关安装过程的详细说明和最佳实践,请务必查看我们的YOLOv8 安装指南。在安装YOLOv8 所需的软件包时,如果遇到任何困难,请查阅我们的常见问题指南,了解解决方案和技巧。

配置Weights & Biases

安装必要的软件包后,下一步是设置Weights & Biases 环境。这包括创建Weights & Biases 账户和获取必要的 API 密钥,以便顺利连接开发环境和 W&B 平台。

首先在工作区中初始化Weights & Biases 环境。运行以下命令并按照提示说明操作即可。

初始 SDK 设置

# Initialize your Weights & Biases environment
import wandb
wandb.login()

导航至Weights & Biases 授权页面,创建并获取您的 API 密钥。使用此密钥向 W&B 验证您的环境。

使用方法:培训YOLOv8 Weights & Biases

在使用Weights & Biases 开始YOLOv8 模型培训的使用说明之前,请务必查看 Ultralytics 提供的YOLOv8 模型范围。这将帮助您根据项目要求选择最合适的模型。

使用方法:培训YOLOv8 Weights & Biases

from ultralytics import YOLO
from wandb.integration.ultralytics import add_wandb_callback
import wandb

# Step 1: Initialize a Weights & Biases run
wandb.init(project="ultralytics", job_type="training")

# Step 2: Define the YOLOv8 Model and Dataset
model_name = "yolov8n"
dataset_name = "coco128.yaml"
model = YOLO(f"{model_name}.pt")

# Step 3: Add W&B Callback for Ultralytics
add_wandb_callback(model, enable_model_checkpointing=True)

# Step 4: Train and Fine-Tune the Model
model.train(project="ultralytics", data=dataset_name, epochs=5, imgsz=640)

# Step 5: Validate the Model
model.val()

# Step 6: Perform Inference and Log Results
model(["path/to/image1", "path/to/image2"])

# Step 7: Finalize the W&B Run
wandb.finish()

了解守则

让我们来了解一下上述使用代码片段中展示的步骤。

  • 步骤 1:初始化Weights & Biases 运行:首先初始化Weights & Biases 运行,指定项目名称和作业类型。该运行将跟踪和管理模型的训练和验证过程。

  • 第 2 步:定义YOLOv8 模型和数据集:指定要使用的模型变体和数据集。然后使用指定的模型文件初始化YOLO 模型。

  • 第 3 步:为Ultralytics 添加Weights & Biases 回调:这一步至关重要,因为它可以将训练指标和验证结果自动记录到Weights & Biases ,提供模型性能的详细视图。

  • 步骤 4:训练和微调模型:使用指定的数据集、历时次数和图像大小开始训练模型。训练过程包括在每个epoch结束时记录指标和预测,从而全面了解模型的学习进度。

  • 步骤 5:验证模型:训练完成后,对模型进行验证。这一步对于评估模型在未见数据上的性能以及确保其通用性至关重要。

  • 步骤 6:执行推理并记录结果:模型对指定图像进行预测。这些预测结果以及视觉叠加和见解会自动记录在 W&B 表中,供交互式探索。

  • 第 7 步:完成 W&B 运行:这一步标志着数据记录的结束,并在 W&B 面板中保存模型训练和验证过程的最终状态。

了解输出

运行上面的使用代码片段后,您可以得到以下主要输出结果:

  • 新运行的设置及其唯一 ID,表示训练过程的开始。
  • 模型结构的简明摘要,包括层数和参数。
  • 在每个训练周期内定期更新重要指标,如 box loss、cls loss、dfl loss、精确度、召回率和 mAP 分数。
  • 训练结束后,将显示详细的指标,包括模型的推理速度和总体准确度指标。
  • 与Weights & Biases 仪表板的链接,用于对培训过程进行深入分析和可视化,以及有关本地日志文件位置的信息。

查看Weights & Biases 控制面板

运行使用代码段后,您可以通过输出中提供的链接访问Weights & Biases (W&B) 面板。通过YOLOv8 ,可以全面查看模型的训练过程。

Weights & Biases 控制面板的主要功能

  • 实时指标跟踪:观察损失、准确率和验证分数等指标在训练过程中的变化情况,为模型调整提供即时见解。

  • 超参数优化:Weights & Biases 可帮助微调学习率、批量大小等关键参数,从而提高YOLOv8 的性能。

  • 比较分析:该平台可对不同的训练运行进行并排比较,这对评估各种模型配置的影响至关重要。

  • 训练进度可视化:关键指标的图形表示法可让用户直观地了解模型在不同时间段的表现。

  • 资源监控:跟踪 CPU、GPU 和内存的使用情况,优化训练过程的效率。

  • 模型工件管理:访问和共享模型检查点,方便部署和协作。

  • 通过图像叠加查看推理结果:使用Weights & Biases 中的交互式叠加功能,在图像上可视化预测结果,从而清晰详细地查看模型在真实世界数据上的表现。有关Weights & Biases图像叠加功能的更多详细信息,请查看此链接

通过使用这些功能,您可以有效地跟踪、分析和优化YOLOv8 模型的训练,确保最佳的性能和效率。

摘要

本指南帮助您探索Ultralytics'YOLOv8 与Weights & Biases 的集成。它说明了这种集成能够有效跟踪和可视化模型训练和预测结果。

有关使用的更多详情,请访问Weights & Biases' 官方文档

此外,请务必查看Ultralytics 集成指南页面,了解更多不同的精彩集成。



创建于 2023-12-28,更新于 2024-01-15
作者:glenn-jocher(3)、abirami-vina(1)

评论