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
相关推荐
weiwei228441 天前
神经网络模型导出及开放标准格式ONNX
pytorch·onnx
LinXunFeng6 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
通信小呆呆10 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
程序猿追10 天前
那个右下角的小数字怎么“卡”住我打字——我用 HarmonyOS 自己写了一个字数限制输入框
pytorch·华为·harmonyos
H__Rick11 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee11 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn8611 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e11 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨11 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
闪闪发亮的小星星11 天前
高斯光以及高斯光公式解释
笔记