一、简介与安装方法
1.1 概念
Tensorboard 是 TensorFlow 的一个工具包,用于展示网络图、张量的指标变化和分布情况,如权重W、偏置B、卷积层数、全连接层数等参数,使用该工具可以方便观察神经网络训练过程,分析学习模型训练的效果。
大概自Pytorch1.1.0版本发布后,我们就可以直接在Pytorch环境直接安装Tensorboard工具包。
1.2安装方法
安装最新版本:
pip install tensorboard
查看版本号:
tensorboard --version
当然也可以指定版本号安装
pip install tensorboard==2.6.0
删除
pip uninstall tensorboard
二、简单示例
from torch.utils.tensorboard import SummaryWriterwriter = SummaryWriter("log")
for i in range(100):writer.add_scalar("y=x", i, i)writer.close()
运行完后再命令行输入
tensorboard --logdir=logs --port=6007
点击可以直接打开网页如下:
2.1 SummaryWriter
SummaryWriter官方定义:将条目直接写入 log_dir 中的事件文件以供 TensorBoard 使用。SummaryWriter 类提供了一个高级 API,用于在给定目录中创建事件文件并向其中添加摘要和事件。 该类异步更新文件内容。 这允许训练程序直接从训练循环调用方法将数据添加到文件中,而不会减慢训练速度。
我们可以通过ctrl+左键点击SummaryWriter类名查看定义。
def __init__(self, log_dir=None, comment='', purge_step=None, max_queue=10,flush_secs=120, filename_suffix=''):
一般我们只需要定义一个路径名log_dir即可。如果没有参数的话,会默认保存在runs/日期时间 路径。
2.2 add_scalar
def add_scalars(self, main_tag, tag_scalar_dict, global_step=None, walltime=None):
该方法用于将许多标量数据添加到summary中。
main_tag:数据名
tag_scalar_dict:数字常量值
global_step:训练步数
walltime:记录发生的时间,可以不写。
2.3 导入图像add_image
def add_image(self, tag, img_tensor, global_step=None, walltime=None, dataformats='CHW'):
该方法用于添加图片到summary中。
img_tensor:图像数据,格式要求为(torch.Tensor, numpy.array, or string/blobname)
dataformats : 图像数据格式,默认为 ‘CHW’(Channel x Height x Width)
写一个小例子:
2.3.1 安装opencv
因为没有Tensor数据的图片,所以用opencv生成numpy的图片。
pip install opencv-python
2.3.2 写代码
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Imagewriter = SummaryWriter("log")
image_path = "dataset/train/image/1.jpg"
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)writer.add_image("test", img_array, 1, dataformats='HWC')for i in range(100):writer.add_scalar("y=2x", i, i)writer.close()
在terminal中输入:
tensorboard --logdir=logs --port=6007
点击打开,即可显示图片。