小土堆pytorch学习笔记 之数据可视化

pytorch 之数据可视化

损失函数(Loss Function),在机器学习和深度学习中也常被称为代价函数(Cost Function),是一种衡量模型预测值与实际值之间差异的函数。损失函数的核心作用是为模型训练提供反馈,指导模型参数的优化过程。

tensorboard 是一个 pytorch 下的可视化工具,我们可以使用 tensorboard 来绘制损失函数。

1 安装 tensorboard,并导入 SummaryWriter 类。

进入当前虚拟环境
pip install tensorboard

from torch.utils.tensorboard import SummaryWriter

2 使用 SummaryWriter 类创建实例,三步走!

  1. 创建 SummaryWriter 实例
  2. 记录数据
  3. 关闭 SummaryWriter

😎:补充

SummaryWriter 是 PyTorch 中 torch.utils.tensorboard 模块的一个类,它用于与 TensorBoard 交互,允许你将训练过程中的各种数据写入到日志文件中。这些数据可以包括

标量 add_scalar、图像 add_image、直方图 add_histogram、嵌入式向量 add_embedding

from torch.utils.tensorboard import SummaryWriter
_#1.创建 SummaryWriter 实例,指定日志文件的保存目录_
writer = SummaryWriter('runs/experiment_1')
_#2.记录数据_
for epoch in range(100):
    loss = ...  _假设这是计算得到的损失值_
    writer.add_scalar('Loss/train', loss, epoch) _这里采用add.scalar记录标量数据,参数分别为图像名称、横轴数值、纵轴数值_
    _记录图像数据_
    if epoch % 10 == 0:
        image = ...  _假设这是要记录的图像数据_
        writer.add_image('Image/train', image, epoch)
_#3.关闭 SummaryWriter,关闭 SummaryWriter 以确保所有数据都被正确写入日志文件_
writer.close()

注意事项:

  • 日志目录SummaryWriter 的构造函数中指定的目录用于存放日志文件,TensorBoard 会读取这个目录下的日志文件进行可视化。
  • 线程安全SummaryWriter 不是线程安全的,如果你在多线程环境中使用,需要确保适当的同步控制。
  • 资源管理:确保在训练结束后调用 close() 方法,以释放资源并确保数据完整写入。

3 如何打开事件文件,打开图片

tensorboard --logdir="logs" --port=6007(改端口)

4 实例一:绘制 y=x 图像(add_scalar)

from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("logs")  _#创建SummaryWriter实例,并指定日志路径_

_#下面绘制一个最简单的y=x的图像_
for i in range(1,1000):
    writer.add_scalar("y=x",i,i)

writer.close()

5 实例二:绘制图片(add_image)

函数原型

SummaryWriter.add_image(tag, img_tensor, global_step=None, walltime=None, dataformats='CHW')

参数

  • tag:字符串,用于在 TensorBoard 中标识图像的名称。
  • img_tensor**(torch.Tensor, numpy.ndarray, or string/blobname)**:一个形状为 (C, H, W)(B, C, H, W) 的张量,其中 C 是通道数,H 是高度,W 是宽度,B 是批处理大小。图像数据可以是浮点数或整数,但需要在 0 到 1(浮点数)或 0 到 255(整数)的范围内。
  • global_step:(可选)整数,表示当前的训练步骤。这有助于在 TensorBoard 中跟踪图像随训练过程的变化。
  • walltime:(可选)以秒为单位的时间戳,表示记录的时间点。
  • dataformats:(可选)字符串,指定张量的形状格式。默认是 'CHW',表示通道、高度、宽度的顺序。对于批量图像,可以是 'BCHW''NCHW'

实例代码

from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image

writer = SummaryWriter("logs")  _#创建SummaryWriter实例,并指定日志路径_
image_path = "dataset/train/ants_image/0013035.jpg"
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)

writer.add_image("test",img_array,1,dataformats='HWC') ##注意图片格式需要标注
_#下面绘制一个最简单的y=x的图像_
for i in range(1,1000):
    writer.add_scalar("y=x",i,i)

writer.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值