PyTorch2 Python深度学习 - TensorBoard可视化工具
锋哥原创的PyTorch2 Python深度学习视频教程:
https://www.bilibili.com/video/BV1eqxNzXEYc
课程介绍

基于前面的机器学习Scikit-learn,深度学习Tensorflow2课程,我们继续讲解深度学习PyTorch2,所以有些机器学习,深度学习基本概念就不再重复讲解,大家务必学习好前面两个课程。本课程主要讲解基于PyTorch2的深度学习核心知识,主要讲解包括PyTorch2框架入门知识,环境搭建,张量,自动微分,数据加载与预处理,模型训练与优化,以及卷积神经网络(CNN),循环神经网络(RNN),生成对抗网络(GAN),模型保存与加载等。
PyTorch2 Python深度学习 - TensorBoard可视化工具
TensorBoard是可视化工具包,Tensorflow2和PyTorch2都可以用,可以帮助开发者理解、调试和优化机器学习模型。下面详细介绍PyTorch2的使用方法,包含完整示例。
官方网站:
https://www.tensorflow.org/tensorboard?hl=zh-cn
1. TensorBoard核心功能
-
标量可视化 - 损失函数、准确率等指标
-
图表可视化 - 模型计算图
-
直方图 - 权重和偏置的分布
-
投影器 - 高维数据降维可视化
-
图像可视化 - 输入图像和生成图像
-
文本可视化 - 文本数据
-
超参数调优 - 超参数对模型性能的影响
首先我们来安装下TensorBoard库:
pip install tensorboard -i https://pypi.tuna.tsinghua.edu.cn/simple
前面一节的简单线性神经网络我们加下TensorBoard支持:
import torch
from torch import nn, optim
from torch.utils.tensorboard import SummaryWriter
# 创建SummaryWriter对象 指定日志目录
writer = SummaryWriter(log_dir='runs/simple_linear')
# 1,构造训练数据:y=2x+1
x = torch.linspace(-5, 5, 100).unsqueeze(1) # 100的样本,维度[100,1]
print(x, x.shape)
y = 2 * x + 1 + torch.randn(x.size()) # 添加噪声
# 2,定义简单的线性模型
model = nn.Linear(1, 1)
# 3, 定义损失函数与优化器
criterion = nn.MSELoss() # 均方误差
optimizer = optim.SGD(model.parameters(), lr=0.01)
# 4,训练模型
epochs = 200
for epoch in range(epochs):y_pred = model(x) # 前向传播loss = criterion(y_pred, y) # 计算损失optimizer.zero_grad() # 清空梯度loss.backward() # 反向传播optimizer.step() # 更新参数
print(f'epoch: {epoch}, loss: {loss.item()}')
# 记录模型参数for name, param in model.named_parameters():print('参数:', name, param)writer.add_histogram(name, param, epoch)
# 记录损失writer.add_scalar('loss', loss.item(), epoch)
# 记录模型结果 示例性的输入数据
dummy_input = torch.randn(x.size())
writer.add_graph(model, dummy_input)
# 训练结束后,关闭SummaryWriter对象
writer.close()
# 5,查看结果
[w, b] = model.parameters()
print(f'训练结果:w: {w}, b: {b}')
运行完后,我们在终端执行:
tensorboard --logdir=./runs --port=6006
然后浏览器运行 http://localhost:6006/

我们可以看到标量可视化,损失函数的变化曲线图

线性神经网络模型计算图:

包括模型参数(权重,偏置)根据步长的变化图:

