TensorBoard与PyTorch完美结合指南
TensorBoard 基础与功能
TensorBoard 是 TensorFlow 提供的可视化工具,但也可与 PyTorch 结合使用。它支持训练过程可视化、模型结构展示、标量/图像/直方图等数据记录。通过 SummaryWriter 类将数据写入日志文件,再启动 TensorBoard 服务加载日志。
安装命令:
pip install tensorboard
基础使用示例:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("logs") # 日志目录
for epoch in range(100):
writer.add_scalar("Loss/train", loss.item(), epoch)
writer.close()
启动 TensorBoard 服务:
tensorboard --logdir=logs --port=6006
torchvision 图像变换工具
torchvision.transforms 提供常见的图像预处理方法,支持组合操作。主要分为:
- 几何变换:
RandomCrop,RandomHorizontalFlip - 色彩变换:
ColorJitter,Grayscale - 张量转换:
ToTensor,Normalize
组合变换示例:
transform = transforms.Compose([
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize(mean=[0.5], std=[0.5])
])
代码综合演示
完整示例展示 TensorBoard 记录图像和模型训练过程:
import torch
from torchvision import transforms, datasets
from torch.utils.tensorboard import SummaryWriter
# 数据加载与变换
transform = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.5,), (0.5,))
])
dataset = datasets.MNIST('./data', transform=transform)
dataloader = torch.utils.data.DataLoader(dataset, batch_size=32)
# 模型与日志设置
model = torch.nn.Linear(28*28, 10)
writer = SummaryWriter('logs')
# 训练循环
for batch_idx, (data, target) in enumerate(dataloader):
data = data.view(-1, 28*28)
output = model(data)
# 记录标量和图像
writer.add_scalar('Loss', loss.item(), batch_idx)
writer.add_images('Input', data.view(-1,1,28,28), batch_idx)
writer.close()
高级功能应用
模型结构可视化:
dummy_input = torch.rand(1, 28*28)
writer.add_graph(model, dummy_input)
直方图记录:
writer.add_histogram('fc1_weight', model.fc1.weight, epoch)
PR 曲线绘制:
writer.add_pr_curve('pr_curve', labels, predictions, epoch)
可视化效果优化
- 使用标签分组(如
Loss/train和Loss/val) - 调整采样频率避免日志过大
- 对图像数据使用
add_images记录批次 - 通过
--samples_per_plugin参数控制显示样本数
常见问题解决
- 端口冲突:通过
--port指定新端口 - 日志加载失败:检查路径是否包含中文或特殊字符
- 图像显示异常:确认数据归一化到 [0,1] 范围
- 标量曲线缺失:检查写入的 tag 名称是否一致
BbS.okacop092.info/PoSt/1120_974267.HtM
BbS.okacop093.info/PoSt/1120_865245.HtM
BbS.okacop094.info/PoSt/1120_944544.HtM
BbS.okacop095.info/PoSt/1120_362018.HtM
BbS.okacop096.info/PoSt/1120_993110.HtM
BbS.okacop097.info/PoSt/1120_498224.HtM
BbS.okacop098.info/PoSt/1120_010323.HtM
BbS.okacop099.info/PoSt/1120_968174.HtM
BbS.okacop114.info/PoSt/1120_084195.HtM
BbS.okacop829.info/PoSt/1120_548460.HtM
BbS.okacop092.info/PoSt/1120_399965.HtM
BbS.okacop093.info/PoSt/1120_577918.HtM
BbS.okacop094.info/PoSt/1120_224348.HtM
BbS.okacop095.info/PoSt/1120_604303.HtM
BbS.okacop096.info/PoSt/1120_128114.HtM
BbS.okacop097.info/PoSt/1120_077171.HtM
BbS.okacop098.info/PoSt/1120_413506.HtM
BbS.okacop099.info/PoSt/1120_113492.HtM
BbS.okacop114.info/PoSt/1120_934136.HtM
BbS.okacop829.info/PoSt/1120_629029.HtM
BbS.okacop092.info/PoSt/1120_280040.HtM
BbS.okacop093.info/PoSt/1120_078315.HtM
BbS.okacop094.info/PoSt/1120_717608.HtM
BbS.okacop095.info/PoSt/1120_719123.HtM
BbS.okacop096.info/PoSt/1120_772357.HtM
BbS.okacop097.info/PoSt/1120_306807.HtM
BbS.okacop098.info/PoSt/1120_157238.HtM
BbS.okacop099.info/PoSt/1120_272343.HtM
BbS.okacop114.info/PoSt/1120_579401.HtM
BbS.okacop829.info/PoSt/1120_762704.HtM
BbS.okacop092.info/PoSt/1120_184867.HtM
BbS.okacop093.info/PoSt/1120_124897.HtM
BbS.okacop094.info/PoSt/1120_278576.HtM
BbS.okacop095.info/PoSt/1120_198275.HtM
BbS.okacop096.info/PoSt/1120_755844.HtM
BbS.okacop097.info/PoSt/1120_410250.HtM
BbS.okacop098.info/PoSt/1120_989619.HtM
BbS.okacop099.info/PoSt/1120_100315.HtM
BbS.okacop114.info/PoSt/1120_358421.HtM
BbS.okacop829.info/PoSt/1120_825738.HtM
BbS.okacop092.info/PoSt/1120_493228.HtM
BbS.okacop093.info/PoSt/1120_800075.HtM
BbS.okacop094.info/PoSt/1120_513273.HtM
BbS.okacop095.info/PoSt/1120_854662.HtM
BbS.okacop096.info/PoSt/1120_398048.HtM
BbS.okacop097.info/PoSt/1120_226801.HtM
BbS.okacop098.info/PoSt/1120_352554.HtM
BbS.okacop099.info/PoSt/1120_426769.HtM
BbS.okacop114.info/PoSt/1120_222341.HtM
BbS.okacop829.info/PoSt/1120_640823.HtM
BbS.okacop092.info/PoSt/1120_020440.HtM
BbS.okacop093.info/PoSt/1120_164368.HtM
BbS.okacop094.info/PoSt/1120_017069.HtM
BbS.okacop095.info/PoSt/1120_157581.HtM
BbS.okacop096.info/PoSt/1120_616139.HtM
BbS.okacop097.info/PoSt/1120_978062.HtM
BbS.okacop098.info/PoSt/1120_100515.HtM
BbS.okacop099.info/PoSt/1120_871601.HtM
BbS.okacop114.info/PoSt/1120_056064.HtM
BbS.okacop829.info/PoSt/1120_821124.HtM
BbS.okacop092.info/PoSt/1120_849601.HtM
BbS.okacop093.info/PoSt/1120_628351.HtM
BbS.okacop094.info/PoSt/1120_521649.HtM
BbS.okacop095.info/PoSt/1120_758812.HtM
BbS.okacop096.info/PoSt/1120_629677.HtM
BbS.okacop097.info/PoSt/1120_548214.HtM
BbS.okacop098.info/PoSt/1120_822872.HtM
BbS.okacop099.info/PoSt/1120_324120.HtM
BbS.okacop114.info/PoSt/1120_052454.HtM
BbS.okacop829.info/PoSt/1120_955860.HtM
BbS.okacop092.info/PoSt/1120_612318.HtM
BbS.okacop093.info/PoSt/1120_695458.HtM
BbS.okacop094.info/PoSt/1120_630385.HtM
BbS.okacop095.info/PoSt/1120_340092.HtM
BbS.okacop096.info/PoSt/1120_303613.HtM
BbS.okacop097.info/PoSt/1120_935299.HtM
BbS.okacop098.info/PoSt/1120_760572.HtM
BbS.okacop099.info/PoSt/1120_796389.HtM
BbS.okacop114.info/PoSt/1120_497677.HtM
BbS.okacop829.info/PoSt/1120_866215.HtM
查看9道真题和解析