Pytorch基本操作(3)——TensorBoard的使用

1 简介

在学习李沐在B站发布的《动手学深度学习》PyTorch版本教学视频中发现在操作使用PyTorch方面有许多地方看不懂,往往只是“动手”了,没有动脑。所以打算趁着寒假的时间好好恶补、整理一下PyTorch的操作,以便跟上课程。

学习资源:

2 TensorBoard

  1. writer.add_scalar()

  2. writer.add_image()

  3. writer.close()

2.1 SummaryWriter

用于观察损失函数的变化

from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter("logs") # 事件文件存放地址

2.1.1 writer.add_scalar()

  • tag:标题
  • scalar_value:添加的值,就是y轴
  • global_step:训练步数,就是x轴
for i in range(100):
    writer.add_scalar("y=2x", 2*i, i)  # 注意第一个2*i对应的是y,第二个i对应x

在命令行中打开tensorboard

注意在命令行要通过cd语句更改到当前工作路径,否则会找不到事件文件夹导致tensorboard页面出现No dashboards are active for the current data set.的错误

  1. tensorboard --logdir logs --port=6007 # logdir = 事件文件所在文件夹名;port指定端口,避免服务器和别人冲突。

  2. 打开命令行中提示的网址http://localhost:6007/ 进行查看

  3. 想要重置图像可以通过删除已有的事件文件来达到
    在这里插入图片描述

2.1.2 writer.add_image()

  • tag:标题
  • img_tensor:要求图像的数据类型为torch.Tensor,numpy.array,string/blobname
  • global_step:训练步数
  • dataformats = 'HWC':图片的格式High高度,Weight宽度,channel通道数;默认通道数在前

用上一篇文章中的蚂蚁蜜蜂数据集举例

PILnumpy,需要在add_image()中指定shape中每一个数字/维表示的含义

from PIL import Image
import numpy as np

image_path = r"F:\Data and code\data\蚂蚁蜜蜂数据\hymenoptera_data\hymenoptera_data\train\ants\0013035.jpg"
img_PIL = Image.open(image_path) # 这样读取出来的数据类型为PIL.JpegImage.......,总之不符合要求,需要转换
img_array = np.array(img_PIL) # 得到writer.add_image()函数所需要的数据类型

writer.add_image("test", img_array, 1, dataformats = 'HWC') # High高度,Weight宽度,channel通道数;默认通道数在前

在TensorBoard里面image里面则可以看到第1步的图片

在这里插入图片描述

标题"test"不变的话,添加图片增加步数,则新图片添加到原图片的后一张,并可以拖动条来切换 来观察随着步数的提升的变换趋势 ;如果标题变化则另起一框来显示,如:

image_path = r"F:\Data and code\data\蚂蚁蜜蜂数据\hymenoptera_data\hymenoptera_data\train\ants\0013035.jpg"
img_PIL = Image.open(image_path) # 这样读取出来的数据类型为PIL.JpegImage.......,总之不符合要求,需要转换
img_array = np.array(img_PIL) # 得到writer.add_image()函数所需要的数据类型

writer.add_image("test", img_array, 1, dataformats = 'HWC') # High高度,Weight宽度,channel通道数;默认通道数在前,
img_PIL = Image.open(r"F:\Data and code\data\蚂蚁蜜蜂数据\hymenoptera_data\hymenoptera_data\train\ants\5650366_e22b7e1065.jpg") # 这样读取出来的数据类型为PIL.JpegImage.......,总之不符合要求,需要转换
img_array = np.array(img_PIL)

writer.add_image("test", img_array, 2, dataformats = 'HWC') # 注意这里step由1变为了2

img_PIL = Image.open(r"F:\Data and code\data\蚂蚁蜜蜂数据\hymenoptera_data\hymenoptera_data\train\ants\5650366_e22b7e1065.jpg") # 这样读取出来的数据类型为PIL.JpegImage.......,总之不符合要求,需要转换
img_array = np.array(img_PIL)

writer.add_image("train", img_array, 1, dataformats = 'HWC') # 这里改变标题为train

在这里插入图片描述

在这里插入图片描述

2.1.3 writer.close

把缓存中保存的数据写到目标events文件中,一旦训练中断没有close,则你的保存目录中不会有相应的数据。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值