【PyTorch学习笔记】自用 零基础详细标注-2.Tensorboard使用

可以用它生成loss变化、展示transform结果。在pytorch1.1后可以在torch中使用。在探究输出时很有效,比如训练数据集时,可以直观看见中间各步骤的处理结果。

安装tensorboard:pip install tensorboard

#涉及到的类需要import一下
#SummaryWriter类可以在pycharm中用ctrl查看功能和用法
from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter("logs")

#在此示例中,主要使用两个方法:
writer.add_image()
writer.add_scalar()

writer.close()

add_scalar()使用

想构造出这种:

在这里插入图片描述

from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter("logs")

#SummaryWriter功能:添加一个标量数据到summary中,需要添加变量:tag(string)图表标题,双引号
#scalar_value:y轴;global_step:x轴

#尝试一个简单的:y=x,可以用循环来写
for i in range(100):
    writer.add_scalar("y=x", i, i)

writer.close()

如何读取logs

在终端,项目目录下,输入tensorboard —logdir=logs,会默认在一个主机端口打开窗口

其中,logdir=(事件文件所在文件夹名)

有时候,服务器端口会冲突,可以指定端口tensorboard —logdir=logs —port=6007

一些问题

不改变标题改变内容时,图表还会记录上一次的数据,并在上一次数据的基础上继续进行这一次的图表生成。

解决(1):删除对应logs下所有文件,程序重新开始

解决(2):训练新回合时写一个新的子文件(即创建新的SummaryWriter(“新文件夹”))

add_image()使用

注意使用函数要求使用的数据类型,其中的图像数据img_tensor要求类型为:torch.Tensor, numpy.array, string/blobname。PIL读取的图像数据不满足需求,此时用OpenCV即可。

import cv2

img_path = '....jpg'
img = cv2.imread(img_path)

(较麻烦)将PIL读取的数据通过numpy转换为array

from PIL import Image
import numpy

img_path = '....jpg'
img = Image.open(img_path)

img_array = np.array(img)
#即可转换为numpy.array类型
from torch.utils.tensorboard import SummaryWriter
import cv2

writer = SummaryWriter("logs")
img_path = '....jpg'
img = cv2.imread(img_path)

writer.add_image("test", img, 1, dataforms = 'HWC')
#此处的“1”是global_step,当有多个时可以通过拖动查看图片,想单独显示就换title
#注意该函数对数据的shape也有要求,默认是(3, H, W),三个通道,高度宽度。使用(H, W, 3)也是
#可以的,但是需要设置dataformats,将默认的CHW改成HWC
#查看数据shape,使用print(img.shape),本次测试数据集使用的是HWC。或者在python控制台也可以看

writer.close()

运行成功后刷新,可以在端口看见有图像内容。add_image功能即为传数据图片

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值