Day3 TensorBoard
前言
TensorBoard 是一组用于数据可视化的工具。它包含在流行的开源机器学习库 Tensorflow 中。
一、安装TensorBoard
进入pytorch环境输入命令安装:pip install tensorboard
二、TensorBoard 的 SummaryWriter
1. 引入
from torch.utils.tensorboard import SummaryWriter
2. 指定文件夹 logs
指定一个文件夹,把创建的事件文件存下来。这是 Summarywriter 的 init 初始化做的事情(如果没有则在项目下自动创建):
writer = SummaryWriter("logs") # 创建实例文件夹“logs”
后续对变量 writer 进行 add_scalar()
和 add_image()
操作
三、add_scalar() 的使用
常用于绘制train/val、loss
代码:
writer.add_scalar("y=3x", 3*i, i) #参数分别为(tag名称,y轴,x轴)
绘制一条 y=3x 的曲线,i为循环变量,将该语句放到for循环中即可改变x的值
四、add_image() 的使用(涉及数据类型的转换)
1. 查看数据类型
add_image() 要求图片类型为
torch.Tensor
型或numpy
型
查看图片类型:print(type(img))
其中 img 是通过 Image.open() 获得的图片(上一节介绍过)
查看类型发现PIL型不符合条件
2. 类型转换 PIL–>numpy 的两种方法
-
使用opencv读取图片,获得numpy型图片数据 (下期分享)
opencv安装:pip install opencv-python
-
利用numpy.array(),对PIL图片 img 进行转换
import numpy as np
img2 = np.array(img)再次查看数据类型:
3. 代码
writer.add_image("test", img_array, 2, dataformats='HWC')
注意:
1、此时img_array
的数据类型为numpy型
2、add_image 的 dataformats 格式,默认是CHW,通过print(img_array.shape)
以查看 img 是否为C(通道)H(高度)W(宽度)的形式
3、因此要把add_img语句中的参数改成dataformats='HWC'
五、通过 TensorBoard 打开 logs 文件
tensorboard --logdir = logs
报错则把logs换成绝对路径:
tensorboard --logdir = “E:\20230528-pytorch-data\logs”
运行后打开对应端口即可
为了不重复端口,我们可以用以下指令指定端口:
tensorboard --logdir=logs --port=6007