Pytorch用Tensorboard来观察数据

作者:游客26024 时间:2022-11-28 19:57:52 

上一章讲数据的处理,这一章讲数据处理之后呈现的结果,即你有可能看到Loss的走向等,这样方便我们调试代码。

1.Tensorboard

有两个常用的方法:

  • 一个是add_scalar()显:示曲线

  • 一个是add_image()显示图像

首先安装Tensorboard

在你的编译环境(conda activate XXX)中输入命令


pip install tensorboard

1.使用add_scalar()输入代码


from torch.utils.tensorboard import SummaryWriter #调包

writer = SummaryWriter('logs') # 这里你创建了一个logs的文件装你的add_scalar生成的曲线,
#其中writer.add_scalar()第一个量是曲线的名字,
#第二个量是纵坐标scalar_value,第三个量是横坐标global_step(也可以理解为损失值得步长)
for i in range(100):
   writer.add_scalar("quadratic", i ** 2, i)

writer.close()

打开这个Tensorboard文件


tensorboard --logdir=logs
#1.这个logdir的文件名必须要与之前所创建的文件名一致,不然很容易报错,No dashboards are active for the current data set.
#2.这个tensorboard输入的命令,必须是在logs文件的上一层文件中,不然也很容易报错,No dashboards are active for the current data set.

结果现实:

Pytorch用Tensorboard来观察数据

2.使用add_image()输入代码

注意:add_image()中函数一般有三个量:
第一个是图像的名字,第二个是图像(必须是tensor或者numpy.ndarray),第三个是步长(可理解为训练或者测试阶段到哪幅图像了);
其中,图像的shape必须是CHW,但是有opencv读取的图像shape是HWC,
所以得使用dataformats转换以下将图像的shape转换为HWC

下面的代码测试了两张图(一张是来自aligned的图像,一张是来自original的图像)用来模拟训练或者测试阶段程序运行到哪张图


from torch.utils.tensorboard import SummaryWriter
import cv2

writer = SummaryWriter('logs')
aligned_img_path = "D:\\data\\basic\\Image\\aligned\\test_0001_aligned.jpg"
original_img_path = "D:\\data\\basic\\Image\\original\\test_0001.jpg"
aligned_img = cv2.imread(aligned_img_path)
original_img = cv2.imread(original_img_path)
print(type(aligned_img)) # numpy
print(aligned_img.shape)
# writer.add_image("img", aligned_img, 1, dataformats='HWC') #此图已经在我第一次测试add_image()用过了
writer.add_image("img", original_img, 2, dataformats='HWC')#此图是我在第二个测试
writer.close()

实现结果:

tensorboard中出现了IMAGES,并且step1是aligned的图,而step2是original的图

Pytorch用Tensorboard来观察数据

Pytorch用Tensorboard来观察数据

来源:https://blog.csdn.net/XiaoyYidiaodiao/article/details/121962867

标签:Pytorch,Tensorboard,观察,数据
0
投稿

猜你喜欢

  • 实例讲解Access数据库在线压缩的实现方法

    2008-11-28 14:29:00
  • SQL 截取字符串应用代码

    2024-01-21 08:53:14
  • python图片灰度化处理的几种方法

    2023-03-05 01:14:57
  • Vue+Java+Base64实现条码解析的示例

    2024-05-02 17:08:27
  • tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)

    2023-11-08 23:30:21
  • PLSQL14下载与安装使用教程

    2024-01-16 10:59:48
  • JavaScript DOM节点操作方法总结

    2024-04-16 09:24:36
  • Go语言error的设计理念及背景演化详解

    2024-02-09 22:09:19
  • MacOS安装python报错"zsh: command not found:python"的解决方法

    2022-02-07 10:50:18
  • Golang Compare And Swap算法详细介绍

    2024-02-19 16:08:02
  • Numpy数组转置的实现

    2022-10-16 09:15:34
  • 使用pyqt5 tablewidget 单元格设置正则表达式

    2022-12-01 22:26:54
  • [MySQL binlog]mysql如何彻底解析Mixed日志格式的binlog

    2024-01-16 23:34:05
  • 详解Oracle在out参数中访问光标

    2024-01-12 21:17:50
  • setTimeout()与setInterval()方法区别介绍

    2024-04-22 13:24:09
  • golang beego框架路由ORM增删改查完整案例

    2024-05-09 15:00:59
  • 余弦相似性计算及python代码实现过程解析

    2021-10-15 14:44:56
  • python是先运行metaclass还是先有类属性解析

    2022-02-10 23:24:48
  • numpy.random模块用法总结

    2023-05-11 00:48:19
  • 为导入文件加上时间戳标记的两种方法

    2009-01-07 14:14:00
  • asp之家 网络编程 m.aspxhome.com