使用此方法需要安装Tensorboard包,Tensorboard简介:是TensorFLOW中强大的可视化工具,支持标量、图像、文本、音频、视频和Eembedding等多种数据的可视化,界面图举例:
安装Tensorboard包(安装之前确保镜像源没问题,更改镜像源的方法在往期帖子中):
1、打开终端,进入Pytorch环境:
点击图中的小箭头
步骤2、
选择红框中的Command Prompt,进入Pytorch环境
步骤3、
输入语句,开始安装包
pip install tensorboard
安装完成后,开始体验tensorboard的用法:
一、Tensorboaid模块中SummaryWriter类的使用:
两个常用的方法:
1、writer.add_scalar()
可以利用此方法进行绘制train/val loss
代码展示:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("glo") #创建一个名字为“glo”的文件夹存储一些对应的文件
for i in range(100):
writer.add_scalar("y = x",i,i) # tag的意思是图像中曲线的名称
# 第一个i代表的是y轴
# 第二个i代表的是x轴
writer.close() # 关闭文件
此时运行代码,会发现左侧多了一个文件:
如果想要查看绘制的图像,则需要用终端进行打开:(pytorch环境下的终端)
在终端输入语句:
tensorboard --logdir=glo --port=6007
logdir :事件文件所在的文件夹名称
port :端口名,防止默认端口使用的人太多而无法进入
(等号两边一定不能输入空格,否则会无法进入)
进入成功会给出一个链接:
进入链接后的样子:
2、add_image()的使用:常用来观察训练结果
小工具1:add_image方法的参数需要是tensor型或者是numpy型,这里利用numpy.array()对PIL图片进行转换,获得numpy型图片数据信息(tensor型数据的获取在下一篇文章中)
转换方式:
img_path = "D:\Python项目\pytorch练习\dateset\\train\\ants\\0013035.jpg"
img_PIL = Image.open(img_path) #此时的img是PIL类型的图片数据,与方法需要的数据类型不符合
img_array = np.array(img_PIL) # 此时img_array是numpy型图片数据
数据转换成功后,开始进行add_image()方法操作:
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np #导入numpy,目的是为了获得我们需要的数据类型
writer = SummaryWriter("logs")
img_path = "D:\Python项目\pytorch练习\dateset\\train\\ants\\0013035.jpg"
img_PIL = Image.open(img_path) #此时的img是PIL类型的图片数据,与方法需要的数据类型不符合
img_array = np.array(img_PIL) # 此时img_array是numpy型图片数据
writer.add_image("test",img_array,1,dataformats='HWC')
# H : 高度
# W : 宽度
# C : 通道,彩色照片一般为3通道
# 此照片三个数据为(512,768,3)
# dataformats = 'HWC'作用:从PIL到numpy,需要在add_image()中指定shape(图片格式)中每一个数字/维表示的含义
writer.close() # 关闭文件
(在使用完上述两种方法后,一定要记得关闭事件文件,否则无法在终端打开绘制的训练结果)
在终端打开绘制结果的方法与上一个方法的打开方式完全相同,不再展示,打开后的界面:
此方法第二个参数是步骤的意思,如果还想加入图片的话,下一次就将步骤从1变成2
代码展示:
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np #导入numpy,目的是为了获得我们需要的数据类型
writer = SummaryWriter("logs")
ant_path = "D:\Python项目\pytorch练习\dateset\\train\\ants\\0013035.jpg"
ant_PIL = Image.open(ant_path) #此时的img是PIL类型的图片数据,与方法需要的数据类型不符合
ant_array = np.array(ant_PIL) # 此时img_array是numpy型图片数据
writer.add_image("test",ant_array,1,dataformats='HWC')
# H : 高度
# W : 宽度
# C : 通道
# 此照片三个数据为(512,768,3)
# 从PIL到numpy,需要在add_image()中指定shape(图片格式)中每一个数字/维表示的含义
# 再加一个蜜蜂的图片
bees_path = "D:\Python项目\pytorch练习\dateset\\train\\bees\\16838648_415acd9e3f.jpg"
bees_PIL = Image.open(bees_path)
bees_array = np.array(bees_PIL)
# 这一步将步骤设置为2
writer.add_image("test",bees_array,2,dataformats='HWC')
writer.close() # 关闭文件
此时再利用终端打开绘制的训练结果: