首页 > 其他分享 >【pytorch】土堆pytorch教程学习(三)TensorBoard的使用

【pytorch】土堆pytorch教程学习(三)TensorBoard的使用

时间:2023-05-01 13:11:12浏览次数:40  
标签:教程 img SummaryWriter writer add pytorch TensorBoard 日志

TensorBoard 是TensorFlow的可视化工具包,提供机器学习实验所需的可视化功能和工具:

  • 跟踪和可视化损失及准确率等指标
  • 可视化模型图(操作和层)
  • 查看权重、偏差或其他张量随时间变化的直方图
  • 将嵌入投射到较低的维度空间
  • 显示图片、文字和音频数据
  • 剖析 TensorFlow 程序

安装 TensorBoard

pip install tensorboard

启动 TensorBoard

log_dir(日志目录)相关请看SummaryWriter API

从命令行进入'log_dir'所在目录,然后运行如下命令来启动 TensorBoard:

tensorboard --logdir=日志目录名

默认在6006端口启动,也可以通过以下命令指定 TensorBoard 的启动端口:

tensorboard --logdir=日志目录名 --port=6007

SummaryWriter API

SummaryWriter API用于在给定日志目录中创建事件文件,并向其中添加摘要和事件,以供 TensorBoard 使用。

创建 SummaryWriter 实例

from torch.utils.tensorboard import SummaryWriter

'''
writer = SummaryWriter(log_dir=None, comment="")
log_dir:事件文件保存的目录地址,默认是 runs/**CURRENT_DATETIME_HOSTNAME**。、
comment:注释日志目录后缀附加到默认的“log_dir”。如果指定了“log_dir”,则此参数不起作用。
'''

# 日志目录地址:runs/Apr30_23-04-41_DESKTOP-56I3UUD
writer = SummaryWriter()

# 日志目录地址:runs/Apr30_23-04-43_DESKTOP-56I3UUDtest-comment
writer = SummaryWriter(comment='test-comment')

# 日志目录地址:logs
writer = SummaryWriter('logs')
# 在命令行中通过 tensorboard --logdir=logs 启动 TensorBoard

add_scalar()

add_scalar 方法向摘要中添加标量数据,通常用来可视化网络训练中的各类标量参数,例如损失、学习率和准确率等。

from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter('logs')
'''
writer.add_scalar(tag, scalar_value, global_step=None)
tag(str): 标签,标识数据
scalar_value(float/str):要保存的标量值
global_step(int):要记录的全局步长值
'''
for i in range(100):
    writer.add_scalar('y=2x', 2*i, i)
writer.close()

如果再创建一个新的事件文件,tag也是y=2x

from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter('logs')
for i in range(100):
    writer.add_scalar('y=2x', 3*i, i)
writer.close()

可以看到他们被可视化到同一个图里,怎么解决这个问题呢?

方法一:删除 log_dir 下的原事件文件并杀死程序重新启动。这会摧毁训练历史信息。

方法二:建一个顶层的日志目录,每个新的训练工作都在顶层日志目录下新建一个子目录。

add_image()的使用

add_image 方法将图片数据添加到摘要,常用来观察训练结果,可视化相应的像素矩阵,例如本地图片,或者是特征图等。

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

writer = SummaryWriter('logs') # 创建目录文件
'''
writer.add_image(tag, img_tensor, global_step=None, dataformats='CHW')
tag(str):数据标识
img_tensor(torch.Tensor/numpy.ndarray/str/blobbane):图片数据
global_step(int):要记录的全局步长值
dataformats:图片数据格式规范的表单CHW,HWC,HW,WH等(C即channels通道,H即特征图的高,W即特征图的宽)
'''
img = np.random.randn(1, 100, 100)
writer.add_image('test-img', img)

img_path = 'dataset/train/ants/5650366_e22b7e1065.jpg'  # 图片路径
img_pil = Image.open(img_path)  # 读取图片
img_arr = np.array(img_pil)  # 将图片转化为numpy.ndarray类型
writer.add_image('test-img', img_arr, 1, dataformats='HWC')  # 添加图片数据
writer.close()

注意:从PIL转到numpy,在add_image()中要指定维度信息HWCdataformats默认是CHW

还可以通过 opencv 读取图片来获得 numpy 型图片数据。

标签:教程,img,SummaryWriter,writer,add,pytorch,TensorBoard,日志
From: https://www.cnblogs.com/hzyuan/p/17366090.html

相关文章

  • 关于pytorch包的测试问题
    pytorch的官方github项目有个文件专门用于测试torch是否安装成功,例如:https://github.com/pytorch/pytorch/blob/v1.11.0/test/test_torch.py但是我们平时测试一个pip包是否安装成功,都是直接import来测试,这样的测试方式显然是不够全面,上面的测试方法就是对很多个方法来测试。但是......
  • ReSharper 2019.2.3安装教程
    摘抄:ReSharper2019破解版-ReSharperUltimatev2019.2.3完美破解版下载(附注册补丁)-艾薇下载站(aiweibk.com)安装准备文件:1、运行安装程序,JetBrains.ReSharper.2019.1.1.exe选择你需要的工具组件,并勾选接受协议,点next我这里就选了第一项组件,其他组件不知道什么意思 2......
  • 轻量GIT服务器Gogs搭建教程(梭哈版)
    轻量GIT服务器Gogs搭建教程(梭哈版)Gogs(/gɑgz/)项目旨在打造一个以最简便的方式搭建简单、稳定和可扩展的自助Git服务。使用Go语言开发使得Gogs能够通过独立的二进制分发,并且支持Go语言支持的所有平台,包括Linux、macOS、Windows和基于ARM的操作系统。作者提供了多种......
  • PyTorch常用操作
    数据集加载1.网络数据集加载数据集:https://pytorch.org/vision/stable/datasets.htmlimporttorchvision.datasetsasdatasetsimporttorchvision.transformsastransforms#定义数据集变换(将图像转换为张量以及对图像进行归一化的操作)transform=transforms.Compose([......
  • 希望所有计算机学生能看到这篇c语言教程
    大部分程序员走入编程世界第一个学习的语言就是C语言。作为一门古老的编程语言,c语言拥有48年的发展历程。为什么要学习C语言?C语言是学习计算机程序设计语言的入门语言。最全面的编程面试网站C语言是一门偏底层的语言,学好它,可以让你更好的了解计算机。学会了C语言,你就能学习......
  • Midjourney 创建私人画图机器人(保姆级教程)
    本教程收集于:AIGC从入门到精通教程汇总之前给大家介绍过了Midjourney的注册教程:AI绘画:Midjourney注册(保姆级教程)也有StableDiffusion(开源)的本地搭建教程:AI数字绘画:stable-diffusion本地部署教程你是不是遇到以下问题:1.Midjourney会员怎么自建绘图服务器,不受其他人的打扰?......
  • Pytorch2 如何通过算子融合和 CPU/GPU 代码生成加速深度学习
    动动发财的小手,点个赞吧!PyTorch中用于图形捕获、中间表示、运算符融合以及优化的C++和GPU代码生成的深度学习编译器技术入门计算机编程是神奇的。我们用人类可读的语言编写代码,就像变魔术一样,它通过硅晶体管转化为电流,使它们像开关一样工作,并允许它们实现复杂的逻辑——这......
  • 【配置教程】撑起月6亿PV开源监控解决方案
    上次分享过《一个.NetCore开源监控解决方案,支持Redis、Elasticsearch、SqlServer》,这是StackOverflow开源的监控产品,基于.NetCore开发的监控解决方案。大家对这个监控系统都非常刚兴趣,但是由于这个项目官方文档不够详细,另外网络的资料都是过时的,所以有很多粉丝朋友一直找我咨......
  • 大数据学习初级入门教程(十六) —— Hadoop 3.x 完全分布式集群的安装、启动和测试
    好久没用Hadoop集群了,参考以前写的《大数据学习初级入门教程(一)——Hadoop2.x完全分布式集群的安装、启动和测试_孟郎郎的博客》和《大数据学习初级入门教程(十二)——Hadoop2.x集群和Zookeeper3.x集群做集成_孟郎郎的博客-》,下载了目前官网最新的版本 hadoop-3.3.5再......
  • Linux/Win/MacOS系统 安装JDK(Java)教程,JDK下载
    JDK下载安装与环境变量配置图文详细教程,Window、Linux和MacOS(M1)系统安装jdk教程。我的世界(Minecraft)开服教程:https://blog.zeruns.tech/tag/mc/性价比高的服务器/VPS推荐:https://blog.zeruns.tech/archives/383.html什么是JDK?SUN公司提供了一套Java开发环境,简称JDK(JavaDevelopm......