使用Python的SummaryWriter()记录摘要信息
发布时间:2023-12-19 06:30:03
SummaryWriter()是TensorBoardX中的一个类,它用于记录摘要信息。TensorBoard是一个可视化工具,用于查看和分析TensorFlow图表中的数据流,而TensorBoardX是TensorBoard的一个Python实现。
SummaryWriter()可以创建一个SummaryWriter对象,用于将摘要信息写入TensorBoard日志文件。该对象提供了多个方法来记录不同类型的摘要数据,使用户能够监视和分析模型训练过程中的各种指标。
下面是SummaryWriter()的使用例子:
from torch.utils.tensorboard import SummaryWriter
# 创建SummaryWriter对象,并指定日志文件保存路径
writer = SummaryWriter('log')
# 示例1:记录标量数据
for i in range(10):
# 用add_scalar方法记录标量数据, 个参数是标签名称,第二个参数是要记录的值,第三个参数是全局步数
writer.add_scalar('scalar', i * 0.1, global_step=i)
# 示例2:记录图表
import torchvision.models as models
import torch
# 创建一个随机输入张量
input_tensor = torch.rand((1, 3, 224, 224))
# 加载一个预训练的模型
model = models.resnet18(pretrained=True)
# 用add_graph方法记录图表, 个参数是模型,第二个参数是输入张量
writer.add_graph(model, input_tensor)
# 示例3:记录图片
import torchvision.utils as vutils
# 创建一个随机图片张量
image_tensor = torch.randn(3, 256, 256)
# 用add_image方法记录图片, 个参数是标签名称,第二个参数是图片张量,第三个参数是全局步数
writer.add_image('image', image_tensor, global_step=0)
# 示例4:记录直方图
import numpy as np
# 创建一个随机数值数组
array = np.random.randn(1000)
# 用add_histogram方法记录直方图, 个参数是标签名称,第二个参数是数值数组,第三个参数是全局步数
writer.add_histogram('histogram', array, global_step=0)
# 示例5:记录文本
text = 'Hello, world!'
# 用add_text方法记录文本, 个参数是标签名称,第二个参数是文本内容,第三个参数是全局步数
writer.add_text('text', text, global_step=0)
# 关闭SummaryWriter对象
writer.close()
执行上述代码后,将会在当前路径下创建一个log文件夹,并在该文件夹中保存了TensorBoard所需的日志文件。然后可以在终端中使用tensorboard命令启动TensorBoard服务器,然后用浏览器打开相应的URL,就可以查看和分析记录的摘要信息。
总结:
SummaryWriter()是TensorBoardX提供的一个类,用于创建一个能记录摘要信息的对象。通过调用该对象的不同方法,可以记录标量数据、图表、图片、直方图和文本等信息。可以使用TensorBoard来可视化和分析这些记录的摘要信息,帮助用户更好地理解模型训练过程中的各种指标。
