温馨提示×

Linux环境下PyTorch的可视化工具推荐

小樊
40
2025-11-14 22:24:18
栏目: 智能运维

Linux环境下PyTorch可视化工具推荐

一 训练过程与指标可视化

  • TensorBoard:记录并展示损失、准确率、权重/梯度直方图、图像与嵌入等,适合本地与远程服务器使用。安装:pip install tensorboard;记录:from torch.utils.tensorboard import SummaryWriter; writer = SummaryWriter('runs/exp1');启动:tensorboard --logdir=runs --port=6006 --host=0.0.0.0(服务器需开放端口,浏览器访问服务器IP:6006)。
  • Weights & Biases(W&B):云端实验追踪、团队协作、超参与模型版本管理,适合多人协作与长期实验归档。
  • Visdom:Facebook 出品,支持实时曲线、图片、文本等,适合轻量远程可视化。安装:pip install visdom;启动:python -m visdom.server -port 8097;在代码中连接并绘图:viz = visdom.Visdom(port=8097); viz.line([0.], [0], win='loss', opts=dict(title='train_loss'))
  • Matplotlib / Seaborn / Plotly / Bokeh:用于绘制损失曲线、混淆矩阵、分布图等分析图表;其中 Plotly/Bokeh 可生成交互式图表,便于报告与分享。

二 模型结构与计算图可视化

  • Netron:跨框架模型结构可视化,支持PyTorch导出的 .pt/.pth 等模型,直观查看层类型、输入输出形状,上手最快。
  • PyTorchViz(graphviz):基于 Graphviz,用 make_dot 绘制计算图,便于理解前向/反向的数据流与依赖关系。
  • HiddenLayer:面向 PyTorch 的图可视化,可导出PNG/SVG等,适合教学与结构审查。
  • torchsummary:快速查看层结构、输出形状、参数量与总参数,便于定位模型规模与瓶颈。

三 快速上手示例

  • 使用 TensorBoard 记录标量并启动服务:

    from torch.utils.tensorboard import SummaryWriter
    import torch, time
    
    writer = SummaryWriter(log_dir='runs/demo')
    for epoch in range(10):
        loss = 0.9 ** epoch
        acc = 1.0 - 0.08 * epoch
        writer.add_scalar('Loss/train', loss, epoch)
        writer.add_scalar('Accuracy/train', acc, epoch)
        time.sleep(0.5)
    
    writer.close()
    # 终端:tensorboard --logdir=runs --port=6006 --host=0.0.0.0
    
  • 使用 Visdom 实时绘制损失曲线:

    import visdom
    viz = visdom.Visdom(port=8097)
    
    viz.line([0.], [0], win='loss', opts=dict(title='train_loss'))
    for epoch in range(10):
        loss = 0.9 ** epoch
        viz.line([loss], [epoch], win='loss', update='append')
    # 终端:python -m visdom.server -port 8097
    
  • 使用 PyTorchViz 可视化计算图:

    import torch, torch.nn as nn
    from torchviz import make_dot
    
    model = nn.Sequential(
        nn.Linear(10, 32), nn.ReLU(),
        nn.Linear(32, 1), nn.Sigmoid()
    )
    x = torch.randn(1, 10)
    y = model(x)
    
    dot = make_dot(y, params=dict(model.named_parameters()))
    dot.render("model_graph", format="pdf")  # 生成 model_graph.pdf
    

四 选型建议

  • 训练监控与对比实验为主:优先 TensorBoard;团队协作与云端管理选 W&B
  • 需要远程轻量可视化或快速看曲线:选 Visdom
  • 模型结构审查为主:优先 Netron;需要详细计算图PyTorchViz;只关心参数量/形状torchsummary
  • 需要出版级统计图表交互式报告:选 Matplotlib/Seaborn/Plotly/Bokeh

0