(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 模型微调实操