什么是tenserboard?
为了更方便 TensorFlow 程序的理解、调试与优化,于是就有了TensorBoard 这样的的可视化工具
W常见的tensorboard使用函数包括:
①.add_scalar() 用于展示标量,数
.②add_image() 用于展示图片
首先导入模块:
from torch.utils.tensorboard import SummaryWriter
通常使用writer作为类名:
writer = SummaryWriter("logs")
调用SumaryWriter()函数,将所需要展示的可视化内容存储到logs文件夹中
例如我们需要展示一个y=x的函数图像,我们可以采用:
for i in range(100):
writer.add_scalar("y=x",i*i,i)
我们可以通过ctrl+左键点击add_scalar()函数名,查看该函数的内置信息:
def add_scalar(
self, tag, scalar_value, global_step=None, walltime=None, new_style=False
):
Args:
tag (string): Data identifier 标题
scalar_value (float or string/blobname): Value to save Y轴
global_step (int): Global step value to record X轴
walltime (float): Optional override default walltime (time.time())
with seconds after epoch of event
new_style (boolean): Whether to use new style (tensor field) or old
style (simple_value field). New style could lead to faster data loading.
最后加上:writer.close()
在端口为6007的浏览器上进行可视化:
在terminal下执行以下代码:
'''logdir = 事件文件所在文件夹名'''
tensorboard --logdir=logs --port=6007
展示结果:
tips:当我们在同一个tag下进行可视化展示时,函数的形状都会出现在同一个表格中。
如果我们想要分开进行展示的话,可以更换一个tag;如果想要删除数据,可以直接删除writer.add.scalar()生成的文件即可
完整代码块:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("logs")
#y=x
for i in range(100):
writer.add_scalar("y=x*x",i*i,i) #标量 数
writer.close()
首先我们需要导入模块和库:
from torch.utils.tensorboard import SummaryWriter tensorboard可视化库
import numpy as np numpy库,用于展示图像的数据信息的一个库
from PIL import Image 用于导入图片
其次,我们同样需要将可视化文件保存,这里保存在logs中
writer = SummaryWriter("logs")
随后,我们设置图片的路径,使用Image.open()函数打开图片,并将其图片数据类型通过np.array()转换为numpy类型
image_path="D:\Pytorch_learn_project\data\\train\\ants_image\\24335309_c5ea483bb8.jpg" 图片路径
img_PIL= Image.open(image_path) 根据上述路径打开图片
img_array = np.array(img_PIL) 按照numpy类型保存图片的数据信息
最后,使用writer.add_image()函数展示图片,最后关闭writer()
writer.add_image("test1",img_array,2,dataformats='HWC')
writer.close()
我们可以通过ctrl+左键点击add_image()函数名,查看该函数的内置信息:
*
add_image(self, tag, img_tensor, global_step=None, walltime=None, dataformats='CHW'):
"""Add image data to summary.
Note that this requires the ``pillow`` package.
Args:
tag (string): Data identifier 标题
img_tensor (torch.Tensor, numpy.array, or string/blobname): Image data 图像数据类型
global_step (int): Global step value to record 记录的步骤
walltime (float): Optional override default walltime (time.time())
seconds after epoch of event
需要注意的是:从PIL到numpy,需要在add_image()中指定shape中每一个数字/维表示的含义
结果展示:
tips:
*此处的“2”代表的是步骤,在前文中的add_image()函数中设置,我们可以设置1.2.3…等将其全部放置在同一个tag下,通过滑动窗口上的滑轮即可查看不同的图片。