Linux环境下PyTorch可视化工具推荐
一 训练过程与指标可视化
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)。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'))。二 模型结构与计算图可视化
make_dot 绘制计算图,便于理解前向/反向的数据流与依赖关系。三 快速上手示例
使用 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
四 选型建议