当前位置: 首页 > news >正文

(13)机器学习小白入门YOLOv:YOLOv8-cls中用TensorBoard实时监控指标

YOLOv8-cls中用TensorBoard实时监控学习

在 YOLOv8-cls 的评估与微调过程中,TensorBoard 是监控训练动态、分析模型性能的重要工具。以下是具体操作步骤:

一、安装 TensorBoard

首先确保已安装 TensorBoard 依赖:


pip install tensorboard

二、在训练 / 评估中生成 TensorBoard 日志

YOLOv8 会自动在训练和评估过程中生成 TensorBoard 兼容的日志文件,无需额外配置。日志默认保存在训练 / 评估结果目录中:

在这里插入图片描述

from ultralytics import YOLO
from torch.utils.tensorboard import SummaryWriter# 初始化TensorBoard
writer = SummaryWriter('runs/cls_train')  # 路径与project/name保持一致# 加载预训练模型
model = YOLO('yolov8s-cls.pt')def log_to_tensorboard(trainer):# 记录训练指标#  writer.add_scalar('Loss/train', float(trainer.loss), trainer.epoch)  # Convert to floatwriter.add_scalar('Accuracy/train', trainer.metrics.get('accuracy_top1', 0), trainer.epoch)# 获取第一个参数组的学习率if trainer.lr:lr = list(trainer.lr.values())[0]  # Get first learning rate valuewriter.add_scalar('Learning Rate', lr, trainer.epoch)# 记录验证指标if trainer.validator:# 使用正确的验证指标路径# writer.add_scalar('Loss/val', trainer.metrics.get('val_loss', 0), trainer.epoch)writer.add_scalar('Accuracy/val', trainer.metrics.get('val_accuracy_top1', 0), trainer.epoch)# ... rest of the code remains unchanged ...# Bug fix: Use direct attribute access instead of dictionary get methodwriter.add_scalar('Accuracy/val', trainer.validator.metrics.top1, trainer.epoch)# 注册回调函数
model.add_callback('on_train_epoch_end', log_to_tensorboard)results = model.train(data='G:/temp/img/val_split',epochs=2,patience=5,imgsz=224,batch=16,lr0=0.001,weight_decay=0.0005,device='-1',project='runs',name='cls_train',  # 自动生成日志路径: runs/cls_train/freeze=0,pretrained=True,plots=True,)
# 关闭TensorBoard写入器
writer.close()

关键参数说明
tensorboard --logdir=runs/cls_finetune/exp- plots=True:
在训练过程中保存可视化结果,像混淆矩阵、PR 曲线等,这些结果会被记录到 TensorBoard 日志里。

  • save_json=True:把评估结果保存到 JSON 文件,TensorBoard 能读取这些数据并进行可视化展示。

三、启动 TensorBoard 并查看指标

打开终端 / 命令行,导航到项目根目录(与runs文件夹同级)。

启动 TensorBoard,指定日志目录:

tensorboard --logdir=runs/classify

在这里插入图片描述
效果图
在这里插入图片描述

若只需监控特定训练实验,可指定具体路径:

tensorboard --logdir=runs/classify/train/exp
  • 访问监控界面: 终端会显示访问地址(通常为终端会显示访问地址(通常为http://localhost:6006/),在浏览器中打开该地址即可。

四、关键监控指标及查看方式

  • 标量(Scalars)
    包含训练 / 验证的损失值(train/loss、val/loss)、准确率(train/top1_acc、val/top1_acc、val/top5_acc)等。
    :判断模型是否收敛(损失是否稳定下降)、是否过拟合(训练准确率远高于验证准确率)。

  • 图像(Images)
    展示训练 / 验证过程中的样本图片及预测结果(如val_batch0_pred)。
    作用:直观查看模型对样本的预测效果,发现误判案例的共性(如特定角度、光照下的样本易误判)。

  • 直方图(Histograms)
    展示模型各层权重、偏置的分布及变化趋势。
    作用:分析网络参数是否正常更新,判断是否存在梯度消失 / 爆炸问题。

  • 计算图(Graphs)
    可视化 YOLOv8-cls 的网络结构。

作用:理解模型各层连接关系,辅助优化网络结构。

五、实用技巧

多实验对比:若进行了多次训练(不同参数配置),TensorBoard 会自动将多个exp文件夹的日志合并展示,便于对比不同参数对性能的影响。

实时更新:TensorBoard 会自动刷新日志(默认每 30 秒),无需重启即可查看最新训练状态。

远程访问:若在服务器上训练,可通过端口映射实现本地访问:

# 服务器端启动(指定端口和允许远程访问)
tensorboard --logdir=runs/classify --port=6006 --host=0.0.0.0

本地终端通过 SSH 映射端口:

ssh -L 6006:localhost:6006 用户名@服务器IP
之后在本地浏览器访问http://localhost:6006/即可。

通过 TensorBoard 的实时监控,能及时发现训练中的问题(如过拟合、学习率不合适等),并针对性调整微调参数,提高模型优化效率

传送门

(1)机器学习小白入门YOLOv :从概念到实践
(2)机器学习小白入门 YOLOv:从模块优化到工程部署
(3)机器学习小白入门 YOLOv: 解锁图片分类新技能
(4)机器学习小白入门YOLOv :图片标注实操手册
(5)机器学习小白入门 YOLOv:数据需求与图像不足应对策略
(6)机器学习小白入门 YOLOv:图片的数据预处理
(7)机器学习小白入门 YOLOv:模型训练详解
(8)机器学习小白入门 YOLO:无代码实现分类模型训练全流程
(9)机器学习小白入门 YOLOv:YOLOv8-cls 技术解析与代码实现
(10)机器学习小白入门 YOLOv:YOLOv8-cls 模型评估实操
(11)机器学习小白入门YOLOv:YOLOv8-cls epochs与数据量的关系
(12)机器学习小白入门YOLOv:YOLOv8-cls 模型微调实操

http://www.dtcms.com/a/293692.html

相关文章:

  • 深入浅出理解 Reactor:响应式编程的利器​
  • Github上传文件流程图
  • Docker 应用数据备份、迁移方案
  • Redis原理之分布式锁
  • 武德物业和浑元科技-《软件方法》第2章业务建模之愿景03
  • Oracle物化视图详解
  • 计算机网络第四章(4)——网络层《无分类编址CIDR、路由聚合》
  • ESP32-CAM实战:DIY基于OpenAI的AI视觉识别相机
  • 校园后勤服务平台小程序的设计与实现
  • Android埋点实现方案深度分析
  • 新手向:Idea的使用技巧
  • Android 架构演进:从 MVC 到 MVVM 的设计之道
  • SpringCloud seata全局事务
  • python在windows电脑找回WiFi密码
  • LinkedList的模拟实现+LinkedList和ArrayList的区别
  • 使用 Maven 的 `maven-assembly-plugin` 插件打包zip
  • UE5实现NPC头部朝向玩家功能
  • 旧手机部署轻量级服务器
  • HakcMyVM-Luz
  • 解构未来金融:深入剖析DeFi与去中心化交易所(DEX)的技术架构
  • ZooKeeper在Hadoop中的协同应用:从NameNode选主到分布式锁实现
  • CSS 基础
  • Web 服务器和Web 中间件
  • Apache POI 介绍与使用指南
  • 思路探索:当大型语言模型遇见数据分析的现实挑战
  • 利用中间件实现任务去重与分发精细化:股吧舆情数据采集与分析实战
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 主页-最近七天微博发布量实现
  • java设计模式 -【装饰器模式】
  • C study notes[3]
  • JavaWeb笔记12