一、tensorboard学习
1.TensorBoard的安装
-
首先要下载tensorboard包:
pip install tensorboard
-
使用前要导入SummaryWriter类:
from torch.utils.tensorboard imort SummaryWriter
-
何为SummaryWriter?
官方说明为:它能直接将entries条目写入log_dir所在目录的event files事件文件中去。以供Tensorboard使用。Create aSummaryWriter
that will write out events and summaries to the event file.
使用后会出现以下事件文件:
-
SummaryWriter中的参数及说明
官方参数说明(以下只截取了一部分参数说明,更多参考官方的writer.py文件):
-
-
创建SummaryWriter的实例
writer=SummaryWriter("logs") #将时间文件存储到logs文件夹下,也可以不写,则写入默认路径
#后续待使用的SummaryWriter的两个方法:
writer.add_image()
writer.add_scalar()
writer.close()
2.add_scalar()方法的使用
用途:常用来绘制train/val loss
-
add_scalar()方法中的参数:
其中tag对应的是标题;global_step对应的是x轴;scalar_value对应的是y轴 -
实例:绘制y=3x的图像:
writer=SumarryWriter("logs")
for i in range(100):
writer.add_scalar("y=3x",i*3,i)
运行成功后,即可在logs目录下看见新出现的事件文件
- 若要在tensorboard中看见生成的图像
在treminal中运行tensorboard --logdir=logs
(默认端口是6006,可以自行更改)
之后在命令行中点击生成的浏览器链接,则可以看到生成的图像:
3.add_image()方法的使用
用途:常用来观察训练结果
-
add_image()方法中的参数
其中img_tensor中显示了此处所要求的数据类型,所以直接使用Image类中的的open()方法打开图片是不行的(因为此时是JpegImageFile类型),详细可见后续代码;global_step是步数 -
实例:在tensorboard中展示数据集中的图像
import numpy as np
from PIL import Image
img_path="hymenoptera_data/train/ants/24335309_c5ea483bb8.jpg" #这里是自己的数据集中的图片的相对地址
img=Image.open(img_path) #此时img是JpegImageFile类型,可用print(type(img))查看
#将图片转为numpy格式
img_numpy=np.array(img)
# 此时直接运行如下代码是错误的
# writer.add_image("test",img_numpy,1)
#原因是img_tensor的默认shape应该是(3, H, W),而这里转化后是(H, W, 3),所以还要加上dataformats参数
writer.add_image("test",img_numpy,1,dataformats='HWC')
- tensorboard中的图像: