TensorBoard 是一组用于数据可视化的工具。它包含在流行的开源机器学习库 Tensorflow 中。
目录
一、TensorBoard的主要功能
1.可视化模型的网络架构
2.跟踪模型指标,如损失和准确性等
3.检查机器学习工作流程中权重、偏差和其他组件的直方图
4.显示非表格数据,包括图像、文本和音频
5.将高维嵌入投影到低维空间
二、使用步骤
1.tensorboard涉及的方法和类
首先引入库,代码如下:
from torch.utils.tensorboard import SummaryWriter
从torch(大工具箱中)的utils(常用的工具箱)中导入tensorboard,然后导入了SummaryWriter这个类。
1.1查看SummaryWriter这个类的使用方法
pycharm中可以直接按住ctrl键+点击这个类,查看用法
SummaryWriter是一个直接向log_dir文件夹写入一个事件文件,这个事件文件可以被tensorboard解析。
使用方法:
def __init__() //初始化函数
log_dir (string) == 输入文件夹名称
初始化之后,一般会为这个类创建一个实例
write = SummaryWriter(“logs”) # 将事件文件存入logs这个文件夹底下
在这个实例中,经常会使用到两个方法:
(1) writer.add_image(self, tag, img_tensor, global_step=None, walltime=None, dataformats=‘CHW’);
add_image常用来观察数据结果,绘制图片,可用于检查模型的输入,监测 feature map 的变化,或是观察 weight。
tag:就是保存图的名称
img_tensor:图片的类型要是torch.Tensor, numpy.array, or string这三种
global_step:第几张图片
dataformats=‘CHW’,默认CHW,tensor是CHW,numpy是HWC,C通道,H高度,W宽度
注:numpy类型是HWC,opencv读取的类似是numpy型
(2) writer.add_scalar(tag, scalar_value, global_step=None,); #添加一些标量数据。将我们所需要的数据保存在文件里面供可视化使用。
tag:所画图标的title(标题),str类型,字符串
scalar_value:需要保存的数值,对应y轴的y值,浮点型或字符串
global_step:全局的步数,对应x轴
最后
write.close()
1.2 完整代码
from torch.utils.tensorboard import SummaryWriter from PIL import Image import numpy as np writer = SummaryWriter("logs") # 将事件文件存入logs文件夹底下 image_path = "train/bees/17209602_fe5a5a746f.jpg" img_PIL = Image.open(image_path) img_array = np.array(img_PIL) print(type(img_array)) print(img_array.shape) writer.add_image("bees", img_array, 0 ,dataformats='HWC' ) #add_image()常用来观察数据结果 #dataformats='HWC'中的hwc分别表示高度/宽度/通道。使用print(img_array.shape)可以查看图片的hwc。 for i in range(100): writer.add_scalar("y=5*x+3", 5*i+3, i) writer.close()
总结(一些问题)
1.1 add_scalar的简单操作
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter(“logs”)
# 将事件文件存入logs文件夹底下
for i in range(100):
writer.add_scalar(“y+x”, i, i)
writer.close()
点击运行后,会创建一个logs,里面有事件文件
1.2 如何打开这个事件文件?
(1)首先打开pycharm中的terminal
(2)输入tensorboard –logdir=logs
完成点击回车,它会返回一个网址端口,点击即可在浏览器打开
可能存在的问题:它返回的是一个默认的端口,有时可能很多人使用这个端口。为了避免这个问题,我们可以指定端口。
输入tensorboard –logdir=logs –port=6538(随便输入一个端口后面的数字),点击回车即可生成新端口。
1.3 writer_image的简单操作
首先要注意writer.add_image(self, tag, img_tensor, global_step)方法中,img_tensor的类型。
使用pycharm中的from PIL import Image,从PIL库中导入Image时,图片格式是PIL.JpegImagePlugin.JpegImageFile,不符合img_tensor对图片格式的要求,这时候我们有两个办法可以解决这个问题:1.利用numpy.array()对PIL图片进行转换;2.可以使用opencv。
文章出处登录后可见!