PyTorch入门笔记3:TensorBoard的使用
首先安装TensorBoard,在Pycharm终端,或者在Anaconda Promat中
pip install tensorboard
一、 SummaryWriter
from torch.utils.tensorboard import SummaryWriter
从函数介绍可知:这个类主要是将事件文件写入 log_dir文件夹,可以被TensorBoard解析。
要用到其成员函数 add_scalar()
def add_scalar(
self,
tag,
scalar_value,
global_step=None,
walltime=None,
new_style=False,
double_precision=False,
)
1.tag: 图表的 title
2.scalar_value:保存的数值,即对应y轴
3.global_step: 步长,即对应x轴
尝试一下:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("logs")
# writer.add_image()
for i in range(100):
writer.add_scalar("y=x", i, i)
writer.close()
结果:
在工程所在目录生成了 logs文件夹,并生成了事件文件。
再在pycharm里的终端输入
tensorboard --logdir=logs
查看事件文件
点击最后的链接即可看到图表了
可通过参数 --port=xx 指定端口,以防止端口冲突(多用户使用同一服务器进行训练时)
tensorboard --logdir=logs --port=6007
注:
这个命令会打开 logdir文件夹下的所有事件文件。
图表以 tag 作为区分,可向一个 tag多次写入数据,会自动进行拟合。
二、add_image()
首先下载一下测试数据集,链接:
链接:https://pan.baidu.com/s/12H_UMoCLGcIYRSp8qN0FLA
提取码:7zc6
下载好后解压重命名为 testdata,放到工程目录下:
再使用成员函数 add_image()
可以看到使用此函数所需要提供的参数,这里注意,img_tensor是图像数据,对其数据类型有所要求,必须是torch.Tensor、numpy.array或者字符串。
这里可以利用 PIL.image.open() 函数读取图片,然后用 numpy.array()对PIL图片进行数据类型转换。
测试代码:
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np
writer = SummaryWriter("logs")
image_path = "testdata/train/ants_image/0013035.jpg"
img = Image.open(image_path)
img_array = np.array(img)
writer.add_image("test", img_array,1, dataformats='HWC')
for i in range(100):
writer.add_scalar("y=3x", 5*i, 2*i)
writer.close()
执行后,并打开TensorBoard,点击IMAGES,可以看到添加的图片:
可以通过修改step来显示每一步的输入图片数据: