PyCharm中TensorBoard的使用

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。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2022年5月31日 上午11:20
下一篇 2022年5月31日 上午11:22

相关推荐