Tenserboard之add_scalar()和add_image()使用方法

Tenserboard

什么是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

展示结果:
Tenserboard之add_scalar()和add_image()使用方法_第1张图片
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中每一个数字/维表示的含义

结果展示:
Tenserboard之add_scalar()和add_image()使用方法_第2张图片
tips:
*此处的“2”代表的是步骤,在前文中的add_image()函数中设置,我们可以设置1.2.3…等将其全部放置在同一个tag下,通过滑动窗口上的滑轮即可查看不同的图片。
Tenserboard之add_scalar()和add_image()使用方法_第3张图片
Tenserboard之add_scalar()和add_image()使用方法_第4张图片

你可能感兴趣的:(python,深度学习,tensorflow)