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.
结果现实:
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的图
来源:https://blog.csdn.net/XiaoyYidiaodiao/article/details/121962867
标签:Pytorch,Tensorboard,观察,数据
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
php中json_decode()和json_encode()的使用方法
2023-06-11 16:31:56
详解Python Qt的窗体开发的基本操作
2021-03-28 00:58:12
![](https://img.aspxhome.com/file/2023/7/135447_0s.png)
Python字典删除键值对和元素的四种方法(小结)
2021-06-12 22:58:24
django列表筛选功能的实现代码
2021-06-23 08:48:57
python实现维吉尼亚算法
2023-07-02 01:28:17
![](https://img.aspxhome.com/file/2023/8/59818_0s.jpg)
通过源码分析Python中的切片赋值
2021-06-26 16:31:04
一个简单的鼠标划过切换效果js源码
2010-06-21 10:55:00
![](https://img.aspxhome.com/file/UploadPic/20106/21/100523-64s.jpg)
下载糗事百科的内容_python版
2022-02-08 12:39:29
使用python-cv2实现Harr+Adaboost人脸识别的示例
2022-03-16 01:05:10
![](https://img.aspxhome.com/file/2023/3/68473_0s.png)
Python实现消消乐小游戏
2021-02-19 19:37:42
![](https://img.aspxhome.com/file/2023/5/90585_0s.jpg)
Python Ruby 等语言弃用自增运算符原因剖析
2022-10-11 07:42:31
![](https://img.aspxhome.com/file/2023/6/131746_0s.png)
一个20行左右的强$代码
2009-12-25 15:22:00
pandas DataFrame索引行列的实现
2023-12-16 09:52:55
Python list和str互转的实现示例
2022-12-26 13:26:56
Python OpenCV实现鼠标画框效果
2022-03-02 10:45:15
![](https://img.aspxhome.com/file/2023/8/104918_0s.jpg)
Python supervisor强大的进程管理工具的使用
2021-04-15 09:11:58
![](https://img.aspxhome.com/file/2023/0/75150_0s.png)
Python面试不修改数组找出重复的数字
2023-08-07 05:04:16
Python 正则表达式爬虫使用案例解析
2022-08-08 20:30:39
使用python如何提取JSON数据指定内容
2022-08-06 23:48:41
Django框架 querySet功能解析
2021-02-15 16:32:14