Pytorch教程[09]Tensorboard

简介: Pytorch教程[09]Tensorboard

TensorBoard:TensorFlow中强大的可视化工具

一.SummaryWriter


功能:提供创建event file的高级接口

主要属性:

• log_dir:event file输出文件夹

• comment:不指定log_dir时,

文件夹后缀

• filename_suffix:event file文件名后缀

from torch.utils.tensorboard import SummaryWriter
import numpy as np
writer = SummaryWriter()
for n_iter in range(100):
    writer.add_scalar('Loss/train', np.random.random(), n_iter)
    writer.add_scalar('Loss/test', np.random.random(), n_iter)
    writer.add_scalar('Accuracy/train', np.random.random(), n_iter)
    writer.add_scalar('Accuracy/test', np.random.random(), n_iter)

image.png

1.1 add_scalar()


add_scalar(tag, 
       scalar_value, 
       global_step=None, 
       walltime=None, 
       new_style=False, 
       double_precision=False)

功能:记录标量

• tag:图像的标签名,图的唯一标识

• scalar_value:要记录的标量

• global_step:x轴

from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter()
x = range(100)
for i in x:
    writer.add_scalar('y=2x', i * 2, i)
writer.close()

image.png

1.2 add_scalars()


add_scalars(main_tag, 
      tag_scalar_dict, 
      global_step=None, 
      walltime=None)

• main_tag:该图的标签

• tag_scalar_dict:key是变量的tag,value是变量的值

from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter()
r = 5
for i in range(100):
    writer.add_scalars('run_14h', {'xsinx':i*np.sin(i/r),
                                    'xcosx':i*np.cos(i/r),
                                    'tanx': np.tan(i/r)}, i)
writer.close()
# This call adds three values to the same scalar plot with the tag
# 'run_14h' in TensorBoard's scalar section.

image.png

1.3 add_histogram()


add_histogram(tag, 
        values, 
        global_step=None, 
        bins='tensorflow', 
        walltime=None, 
        max_bins=None)

功能:统计直方图与多分位数折线图

• tag:图像的标签名,图的唯一标识

• values:要统计的参数

from torch.utils.tensorboard import SummaryWriter
import numpy as np
writer = SummaryWriter()
for i in range(10):
    x = np.random.random(1000)
    writer.add_histogram('distribution centers', x + i, i)
writer.close()

image.png


1.4 add_image()


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

功能:记录图像

• tag:图像的标签名,图的唯一标识

• img_tensor:图像数据,注意尺度

• global_step:x轴 • dataformats:数据形式,CHW,HWC,HW

from torch.utils.tensorboard import SummaryWriter
import numpy as np
img = np.zeros((3, 100, 100))
img[0] = np.arange(0, 10000).reshape(100, 100) / 10000
img[1] = 1 - np.arange(0, 10000).reshape(100, 100) / 10000
img_HWC = np.zeros((100, 100, 3))
img_HWC[:, :, 0] = np.arange(0, 10000).reshape(100, 100) / 10000
img_HWC[:, :, 1] = 1 - np.arange(0, 10000).reshape(100, 100) / 10000
writer = SummaryWriter()
writer.add_image('my_image', img, 0)
# If you have non-default dimension setting, set the dataformats argument.
writer.add_image('my_image_HWC', img_HWC, 0, dataformats='HWC')
writer.close()

image.png

1.5 add_images()


add_images(tag, 
       img_tensor, 
       global_step=None, 
       walltime=None, 
       dataformats='NCHW')
from torch.utils.tensorboard import SummaryWriter
import numpy as np
img_batch = np.zeros((16, 3, 100, 100))
for i in range(16):
    img_batch[i, 0] = np.arange(0, 10000).reshape(100, 100) / 10000 / 16 * i
    img_batch[i, 1] = (1 - np.arange(0, 10000).reshape(100, 100) / 10000) / 16 * i
writer = SummaryWriter()
writer.add_images('my_image_batch', img_batch, 0)
writer.close()

image.png

1.6 torchvision.utils.make_grid


功能:制作网格图像

• tensor:图像数据, BCH*W形式

• nrow:行数(列数自动计算)

• padding:图像间距(像素单位)

• normalize:是否将像素值标准化

• range:标准化范围

• scale_each:是否单张图维度标准化

• pad_value:padding的像素值

make_grid(tensor, nrow=8, padding=2, 
normalize=False, range=None, scale_each=False, 
pad_value=0)

1.7 add_graph()


add_graph(model, 
      input_to_model=None, 
      verbose=False, 
      use_strict_trace=True)

功能:可视化模型计算图

• model:模型,必须是 nn.Module

• input_to_model:输出给模型的数据

• verbose:是否打印计算图结构信息

1.8 torchsummary


功能:查看模型信息,便于调试

• model:pytorch模型

• input_size:模型输入size

• batch_size:batch size

• device:“cuda” or “cpu”

summary(model, 
    input_size, 
    batch_size=-1, 
    device="cuda")

1.9 add_text()


add_text(tag, 
     text_string, 
     global_step=None, 
     walltime=None)
writer.add_text('lstm', 'This is an lstm', 0)
writer.add_text('rnn', 'This is an rnn', 10)
相关文章
|
2月前
|
存储 物联网 PyTorch
基于PyTorch的大语言模型微调指南:Torchtune完整教程与代码示例
**Torchtune**是由PyTorch团队开发的一个专门用于LLM微调的库。它旨在简化LLM的微调流程,提供了一系列高级API和预置的最佳实践
185 59
基于PyTorch的大语言模型微调指南:Torchtune完整教程与代码示例
|
2月前
|
并行计算 监控 搜索推荐
使用 PyTorch-BigGraph 构建和部署大规模图嵌入的完整教程
当处理大规模图数据时,复杂性难以避免。PyTorch-BigGraph (PBG) 是一款专为此设计的工具,能够高效处理数十亿节点和边的图数据。PBG通过多GPU或节点无缝扩展,利用高效的分区技术,生成准确的嵌入表示,适用于社交网络、推荐系统和知识图谱等领域。本文详细介绍PBG的设置、训练和优化方法,涵盖环境配置、数据准备、模型训练、性能优化和实际应用案例,帮助读者高效处理大规模图数据。
57 5
|
5月前
|
并行计算 Ubuntu PyTorch
Ubuntu下CUDA、Conda、Pytorch联合教程
本文是一份Ubuntu系统下安装和配置CUDA、Conda和Pytorch的教程,涵盖了查看显卡驱动、下载安装CUDA、添加环境变量、卸载CUDA、Anaconda的下载安装、环境管理以及Pytorch的安装和验证等步骤。
876 1
Ubuntu下CUDA、Conda、Pytorch联合教程
|
6月前
|
数据可视化 PyTorch TensorFlow
PyTorch SummaryWriter TensorBoard 中进行可视化
PyTorch SummaryWriter TensorBoard 中进行可视化
|
8月前
|
PyTorch 算法框架/工具 异构计算
PyTorch 2.2 中文官方教程(十八)(1)
PyTorch 2.2 中文官方教程(十八)
242 2
PyTorch 2.2 中文官方教程(十八)(1)
|
8月前
|
并行计算 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十七)(4)
PyTorch 2.2 中文官方教程(十七)
241 2
PyTorch 2.2 中文官方教程(十七)(4)
|
8月前
|
PyTorch 算法框架/工具 异构计算
PyTorch 2.2 中文官方教程(十九)(1)
PyTorch 2.2 中文官方教程(十九)
149 1
PyTorch 2.2 中文官方教程(十九)(1)
|
8月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十八)(3)
PyTorch 2.2 中文官方教程(十八)
103 1
PyTorch 2.2 中文官方教程(十八)(3)
|
8月前
|
API PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十八)(2)
PyTorch 2.2 中文官方教程(十八)
212 1
PyTorch 2.2 中文官方教程(十八)(2)
|
8月前
|
异构计算 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十七)(3)
PyTorch 2.2 中文官方教程(十七)
103 1
PyTorch 2.2 中文官方教程(十七)(3)