PyTorch-tensorboard

tensorboard是个可视化工具,用于观察神经网络训练过程
SummaryWriter:
首先需要创建一个SummaryWriter示例
在这里插入图片描述

其中有些参数不常用,我们可以只在参数里写上一个训练保存的路径即可
例:writer=SummaryWriter('logs')
我们在SummaryWriter中常用的方法有:
1. add_scalar
2. add_image

add_scalar

add_scalar(tag, scalar_value, global_step=None, walltime=None)
tag (string): 数据名称,不同名称的数据使用不同曲线展示
scalar_value (float): 数字常量值
global_step (int, optional): 训练的 step
walltime (float, optional): 记录发生的时间,默认为 time.time()

例:
创建一个y=x的图像

from torch.utils.tensorboard import SummaryWriter
import numpy as np

writer=SummaryWriter('logs')

for i in range(100):
    writer.add_scalar("y=x",i,i)
writer.close()

如何打开事件文件

打开Anaconda Prompt或者直接在Pycharm中下方的Terminal
先激活PyTorch环境,如果在Terminal中会直接激活,输入tensorboard --logdir=logs

注意:logdir后面是事件文件所在文件夹名

在这里插入图片描述
点击 http://localhost:6006/
在这里插入图片描述

如何改变端口

打开Anaconda Prompt或者直接在Pycharm中下方的Terminal
先激活PyTorch环境,如果在Terminal中会直接激活,输入 tensorboard --logdir=logs --port=6007

这里我改成了6007
在这里插入图片描述

add_scalar注意:

若是一个tag训练了多次就会出现多次训练的图像相对拟合的结果
例:如果我在原有的y=x图像中又画出y=2x,就会出现如下的情况
在这里插入图片描述
解决方法:
1.换个tag
2.在pycharm左侧中删除对应的logs文件,重新训练y=2x

add_image

add_image(tag, img_tensor, global_step=None, walltime=None, dataformats='CHW')
tag (string): 数据名称
img_tensor (torch.Tensor / numpy.array): 图像数据
global_step (int, optional): 训练的 step
walltime (float, optional): 记录发生的时间,默认为 time.time()
dataformats (string, optional): 图像数据的格式,默认为 'CHW',即 Channel x Height x Width,还可以
是'CHW'、'HWC' 或 'HW' 等

在这里插入图片描述
在上图,img_tensor要求是torch.Tensor, numpy.array, or string/blobname类型
所以利用刚学的numpy

from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
writer=SummaryWriter('logs')
image_path="dataset/train/ants/0013035.jpg"
image=Image.open(image_path)
img_array=np.array(image)
writer.add_image('test',img_array,1)

writer.close()

然后运行可能会报错,是因为图像数据的格式可能不同

print(img_array.shape)

利用shape查看,判断出图片格式是’HWC’的
在这里插入图片描述
然后我们在add_image中加入dataformats即可

from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
writer=SummaryWriter('logs')
image_path="dataset/train/ants/0013035.jpg"
image=Image.open(image_path)
img_array=np.array(image)
writer.add_image('test',img_array,1,dataformats='HWC')
writer.close()

打开事件文件我们会发现在左上角多了一个IMAGES,里面就是我们输入的图片

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值