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

TensorBoard的使用 小土堆pytorch记录

 1.TensorBoard 简介

  • TensorBoard 是 TensorFlow 提供的可视化工具,PyTorch 通过 torch.utils.tensorboard 模块支持

  • 主要功能:可视化训练过程、模型结构、图像数据等

2. SummaryWriter 核心功能

  • 创建日志记录器SummaryWriter("logs") 会在指定目录创建日志文件

  • 记录图像add_image() 方法

    • 支持 numpy 数组格式的图像

    • 必须指定正确的 dataformats(如 'HWC' 表示高度-宽度-通道)

  • 记录标量add_scalar() 方法

    • 用于记录损失、准确率等标量数据

    • 参数:(标签名, y值, x值)

3. 图像处理流程

  1. 使用 PIL 的 Image.open() 加载图像

  2. 转换为 numpy 数组:np.array(PIL_image)

  3. 检查数组形状:(高度, 宽度, 通道数)

  4. 确保数据类型为 uint8(0-255范围)

4. 数据格式说明

  • 图像数据格式

    • 'CHW':通道-高度-宽度(PyTorch默认)

    • 'HWC':高度-宽度-通道(OpenCV/PIL默认)

  • 标量数据格式

    • 通常用于记录训练指标随epoch/iteration的变化

5. 使用流程

  1. 创建 SummaryWriter 对象

  2. 在训练循环中使用 add_* 方法记录数据

  3. 训练完成后关闭 writer

  4. 在终端运行:tensorboard --logdir=logs 查看可视化结果

from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image# 1. 创建SummaryWriter对象,指定日志保存目录为"logs"
writer = SummaryWriter("logs")# 2. 图像数据记录示例
image_path = "dataset/train/bees/39747887_42df2855ee.jpg"
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)  # 将PIL图像转为numpy数组# 打印图像数组的类型和形状
print(type(img_array))
print(img_array.shape)  # 输出: (高度, 宽度, 通道数) 如(512, 768, 3) 图形RGB保存一般都是三通道# 将图像添加到TensorBoard
# 参数说明:
# "train" - 图像在TensorBoard中的标签名
# img_array - 图像数据(numpy数组)
# 1 - 全局步数(可用于区分不同训练阶段的图像)
# dataformats='HWC' - 指定数据格式为(Height, Width, Channels)
writer.add_image("train", img_array, 1, dataformats='HWC')# 3. 标量数据记录示例
# 记录y=2x函数的100个点
# y = 2x
for i in range(100):writer.add_scalar("y=2x", 2*i, i)# 4. 关闭SummaryWriter
writer.close()

启动命令

tensorboard --logdir=logs --port=6006

扩展应用

  1. 记录模型结构

    writer.add_graph(model, input_tensor)
  2. 记录直方图

    writer.add_histogram("layer1/weights", model.layer1.weight, global_step)
  3. 记录多组数据对比

    writer.add_scalars("loss", {"train":train_loss, "val":val_loss}, epoch)
  4. 记录嵌入向量

    writer.add_embedding(features, metadata=labels, label_img=images)

通过TensorBoard的这些功能,可以全面监控和可视化深度学习模型的训练过程,更好地理解和优化模型。

http://www.xdnf.cn/news/17597.html

相关文章:

  • 猫头虎AI分享|腾讯新开源了一个轻量级、即插即用的身份保留视频生成框架:Stand-In,也支持换头像视频
  • PostgreSQL 范围、空间唯一性约束
  • Linux 常用命令大全:覆盖日常 99% 操作需求
  • UserController类讲解
  • 2025年Java后端秋招面试宝典:高频题库+场景解析
  • 国产3D大型装配设计新突破②:装配约束智能推断 | 中望3D 2026
  • 【Redis与缓存预热:如何通过预加载减少数据库压力】
  • Ansible 基本使用
  • 02-Ansible 基本使用
  • Day 38: Dataset类和DataLoader类
  • 计算机网络摘星题库800题笔记 第5章 传输层
  • 达梦数据闪回查询-快速恢复表
  • 燕山大学计算机网络实验(2025最新)
  • SpringMVC的原理及执行流程?
  • uv 配置和简单使用
  • 飞算JavaAI全流程实操指南:从需求到部署的智能开发体验
  • 虚拟机高级玩法-网页也能运行虚拟机——WebAssembly
  • code-inspector-plugin插件
  • [ue5 shader] 路由申明和路由引用
  • 【SpringBoot】05 容器功能 - SpringBoot底层注解的应用与实战 - @Configuration + @Bean
  • 智能家居Agent:物联网设备的统一控制与管理
  • 无人机航拍数据集|第13期 无人机城市斑马线目标检测YOLO数据集963张yolov11/yolov8/yolov5可训练
  • 无人机智能返航模块技术分析
  • 无人机航拍数据集|第14期 无人机水体污染目标检测YOLO数据集3000张yolov11/yolov8/yolov5可训练
  • k8s-scheduler 解析
  • 让齿轮与斑马线共舞:汽车文化驿站及安全教育基地的展陈实践
  • 【工作笔记】win11系统docker desktop配置国内mirror不生效解决方案汇总整理
  • 7 种最佳 DBAN 替代方案,彻底擦除硬盘数据
  • 【实时Linux实战系列】实时环境监测系统架构设计
  • 思科、华为、华三如何切换三层端口?