在 Pytorch 模型中可视化梯度

Visualizing gradients in Pytorch models

我想可视化 Pytorch 模型中每个时期的每一层的梯度。除了 Tensorboard 之外还有用于此任务的库吗?

Wandb.ai 是一个很好的实验跟踪工具。如果您在模型上调用 wandb.watch(model),它会自动记录梯度和相关系统信息。它也是一个很好的去中心化位置,可以存储所有运行的日志并可视化或比较它们。

为您提供类似于 documentation 的最小代码示例,它将记录您的损失、梯度和系统信息:

import wandb


wandb.init(project="your_project")
model = ... # set up your model

# Start tracking grads
wandb.watch(model, log='all')

for data, target in train_loader:
    output = model(data)
    loss = F.nll_loss(output, target)

    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

    wandb.log({"loss": loss})