Pytorch学习笔记——TensorBoard的初使用

1、TensorBoard介绍

TensorBoard是TensorFlow的可视化工具,但它也可以与PyTorch结合使用。TensorBoard提供了一个Web界面,可以展示你训练过程中的各种信息,如损失值、准确度、权重分布等,更好地帮助开发者理解和调试模型。

TensorBoard | TensorFlow (google.cn)https://tensorflow.google.cn/tensorboard?hl=zh-cn

2、导入相关包

安装Tensor包

python 复制代码
pip install tensorboard

导入TensorBoard相关包,要导入SummaryWriter模块

python 复制代码
import torch
from torch.utils.tensorboard import SummaryWriter

3、创建SummaryWriter对象

python 复制代码
#创建一个SummaryWriter对象,指定TensorBoard将保存数据的目录
#默认为与此.py文件的同级目录
writer = SummaryWriter("logs")

4、添加数据

添加数据的方法很多,add_scalaradd_histogramadd_image,这些方法都可以,我这里以添加一张图片为例,要用到Image模块,这个模块在PIL下面,需要进行导包操作

python 复制代码
from PIL import Image

我们利用open函数打开图片,接收一个PIL的Image对象

python 复制代码
#指定图片路径
image_path = "data/train/ants_image/5650366_e22b7e1065.jpg"
#生成图片对象
img_PIL = Image.open(image_path)

此时,我们并不能直接将图片传进add_image方法中,这是因为在add_image中,图片对象是以一种张量或ndarray之类的形式(张量你可以理解为向量,ndarray其实是矩阵)传入进去的,所以在这之前,需要对图片进行类别的转换:

python 复制代码
# 转成ndarray
import numpy as np
# 格式转换
img_array = np.array(img_PIL)

图片类型转换为ndarray格式,转换前与转换后的格式如下:

就可以调用add_image这个方法,向TensorBoard中添加图片数据

python 复制代码
writer.add_image("test",img_array,0,dataformats="HWC")

参数含义:

test: 这是这个图像数据的标签名,它将作为图像在TensorBoard界面上显示的名称。

img_array: 这是要添加到TensorBoard的图像数据。

0: 这是这个图像数据的全局步数(global step)。在训练过程中,这个步数通常对应于当前的迭代次数或epoch数。TensorBoard会使用这个步数来在Web界面上组织数据,这样你就可以看到不同步数下图像的变化情况。

dataformats="HWC" : 这是一个可选参数,指定了img_array的数据格式。HWC代表"Height, Width, Channels",这是OpenCV等库常用的图像数据格式。如果你使用的是其他库(如PIL或matplotlib),可能需要使用dataformats="CHW",即"Channels, Height, Width"。确保TensorBoard能够正确地解析和显示图像。

5、关闭对象

python 复制代码
writer.close()

6、运行

在终端输入以下命令:

bash 复制代码
tensorboard --logdir="logs"

logdir指定保存数据的目录

之后就可以打开界面查看,以Pycharm为例,运行命令后点击这里

即可看到TensorBoard面板

总体代码如下:

python 复制代码
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np

writer = SummaryWriter("logs")
image_path = "data/train/ants_image/5650366_e22b7e1065.jpg"
img_PIL = Image.open(image_path)
print(type(img_PIL))
img_array = np.array(img_PIL)
print(type(img_array))

writer.add_image("test",img_array,0,dataformats="HWC")
writer.close()

7、注意

若显示不出来图片,则要安装opencv库

复制代码
pip install opencv-python
相关推荐
雪之下雪乃的代码日记7 分钟前
Python快速入门(Java开发者版)
java·开发语言·笔记·python
磊灬泽39 分钟前
【从零学习 MQTT】发布/订阅、主题、QoS 与报文解析
学习
zzh___zzh1 小时前
Java Stream API 常用方法笔记
java·笔记
0566461 小时前
Python数据结构——循环队列
python·学习
zzm6281 小时前
安全嵌套子博弈求解与非完美信息博弈——NIPS 2017 最佳论文阅读笔记
论文阅读·笔记·nips·博弈论
天国梦1 小时前
2026高中生英语词汇学习APP测评:天学网等4款产品实测对比
学习
砚凝霜1 小时前
软考网络工程师|第 6 章 网络安全基础、攻击、等保完整备考笔记
网络·笔记·web安全
我爱cope2 小时前
【计算机网络 | 物理层3:数字编码与调制:比特如何变成可传输的信号?】
网络·学习·计算机网络
hongmai6668882 小时前
耐高温小钢炮:ESP32-C3-MINI-1U-H4模组选型分享
笔记·单片机·嵌入式硬件·物联网·risc-v
菜冻鱼2 小时前
Python-pandas-索引与筛选
开发语言·笔记·python·numpy·pandas·学习方法