Tensorboard的使用
tensorboard的好处:
该模块构建具有类函数关系的视觉线/图片,有助于直观地分析数据
- 使用前,我们需要导入对应的模块
from torch.utils.tensorboard import SummaryWriter
- 然后我们可以实例化一个对象并执行我们需要的行为
writer = SummaryWriter('logs')
# 参数为最终结果导出到的文件夹名, 如果不加参数会按照默认值
下面主要介绍两种tensorboard的使用方法
1. add_scalar()方法
scalar是标量的意思, 可以理解为一个数字吧, 使用add_scalar()方法可以得到一个函数图像的数据
add_scalar(tag, scalar_value, global_step)
- tag参数可以理解为一个标签(名字)
- scalar_value标量值, 可以看做坐标轴的 y 值
- global_step可以理解为 x 值
# 如下代码建立了叫做y=x的, x 与 y 值相等的图像
for val in range(100):
writer.add_scalar('y=x', val, val)
'''
生成的文件, 需要用命令行命令打开
tensorboard --logdir=log --port=6007 # port表示端口号
'''
2. add_image()方法
这里的image需要的类型是tensor或numpy类型, 而我们之前知道了如何获得PIL类型的image
- 使用numpy将PIL类型转化为numpy.array类型
import numpy as np
img_array = np.array(img_PIL) # img_array 就是我们需要的numpy类型了
add_image(tag, img_tensor, global_step, dataformats)
- tag标签
- img_tensor对应numpy类型的img_array
- global_stepx 值
- dataformats数据的形式
- tensor类型对应 ‘CHW’
- numpy类型对应 ‘HWC’
- C: 通道数, H: 模型的高, W: 模型的宽
# 导入图片, 用Image模块
img_PIL = Image.open('MyDataset/train/cartoon_image/000505-1640102705bfdf.jpg')
# 转化为numpy类型
img_array = np.array(img_PIL)
# 建立图像
writer.add_image('test', img_array, 1, dataformats='HWC')
最终图像
最后不要忘了:关闭tensorboard ==> writer.close()
其他
add_image仅适用于batchsize为1的图片, 如果>1就需要用到add_images, 用法基本一致
其次,add_graph用于将输入和神经网络模型间的变化流程可视化为流程图
文章出处登录后可见!
已经登录?立即刷新