PyTorch入门教学——TensorBoard使用
1、TensorBoard简介
TensorBoard是Google开发的一个机器学习可视化工具 。其主要用于记录机器学习过程,例如:
记录损失变化、准确率变化 等 记录图片变化、语音变化、文本变化 等。例如在做GAN时,可以过一段时间记录一张生成的图片 绘制模型
2、TensorBoard安装
打开Anaconda Prompt,进入pytorch虚拟环境(conda activate pytorch),输入下面命令进行安装。
3、SummaryWriter类的使用
3.1、add_scalar()的使用
add_scalar()目的是添加一个标量数据(scalar data)到summary中,主要用来绘制图表。 重点是前三个参数:
tag:要求是一个string,用以描述该标量数据图的标题。 scalar_value :可以简单理解为一个y轴值的列表。 global_step:可以简单理解为一个x轴值的列表,与y轴的值相对应。 代码案例——绘制y=x和y=2x的图像。
在test_tb.py中输入如下命令,并运行。
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("logs") # #第一个参数指明writer把summary内容写在哪个目录下
# y = x
for i in range(100):
writer.add_scalar("y=x", i, i) # 添加数据
# 参数:图表名称,y轴,x轴
# y = 2x
for i in range(100):
writer.add_scalar("y=x", 2 * i, i) # 添加数据
writer.close()
运行后,在该项目文件夹中可获得logs文件,其中包含tensorboard的一些事件文件。
使用TensorBoard可视化该事件文件。可以直接在PyCharm里的终端输入命令打开。
3.2、add_image()的使用
add_image()是一个向summary中添加图片的函数,常用来观察训练结果。 重点是前两个参数:
tag:要求是一个string,用以描述该图像可视化的标题。 img_tensor:传入的是要展示的图片内容,格式必须要转换为 : torch.Tensor,Numpy.array,string。 【注】如果将图片调整为Numpy.array格式,需要在向add_image()函数中传入一个为了对应Numpy.array()数据类型而明确的dataformats参数,目的是指明array的内容。 代码案例——可视化一张图片。
首先存放一张图片到项目中。
在test_tb.py中输入如下命令,并运行。(先清空原logs文件中的事件文件) from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np
img_path = "images/热巴.jpg" # 图片相对地址
img = Image.open(img_path)
img.show()
print(type(img))
# add_image()的第2个参数要求的格式是torch.Tensor ; numpy.array ; string
# 转换成numpy.array格式
img = np.array(img)
print(type(img))
writer = SummaryWriter("logs")
# 从PIL利用numpy转换到numpy.array格式,需要在add_image()函数的参数中,利用dataformats明确指定出shape中的每一个维度都表示的啥含义(三维的是'HWC')
writer.add_image("热巴", img, 1, dataformats='HWC')
writer.close()
使用TensorBoard可视化该事件文件。可以直接在PyCharm里的终端输入命令打开。
add_image()也可以在同一个标题下添加多张图片,但需要设置展示顺序。修改代码,删除logs中的事件文件,重新运行。
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np
writer = SummaryWriter("logs")
img_path = "images/热巴1.jpg" # 图片相对地址
img = Image.open(img_path)
img = np.array(img)
writer.add_image("热巴", img, 1, dataformats='HWC') # global_step = 1 表明:在tag中,第一张图片是img=热巴1.jpg
img_path = "images/热巴2.jpg" # 图片相对地址
img = Image.open(img_path)
img = np.array(img)
writer.add_image("热巴", img, 2, dataformats='HWC') # global_step = 1 表明:在tag中,第一张图片是img=热巴1.jpg
writer.close()
刷新网站,点击下列按钮即可切换图片。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1115370.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!