pytorch炼丹工具必备——自动查看每个Tensor的shape

说明

在构建深度学习神经网络中,每个变量的数据类型以及形状大小一行一行print太麻烦了。
介绍一个PyTorch代码调试利器TorchSnooper,用于自动print每行代码的Tensor信息
GitHub 项目地址: https://github.com/zasdfgbnm/TorchSnooper
参考文章:
https://mp.weixin.qq.com/s/PVIWWIqbZuEe4lwVMDYA5Q

使用方法:
直接查看一个函数内的所有变量:

import torch
import torchsnooper


@torchsnooper.snoop()
def myfunc(mask, x):
    y = torch.zeros(6)
    y.masked_scatter_(mask, x)
    return y


mask = torch.tensor([0, 1, 0, 1, 1, 0], device='cuda')
source = torch.tensor([1.0, 2.0, 3.0], device='cuda')
y = myfunc(mask, source)

直接查看循环中的变量

import torch
import torchsnooper


model = torch.nn.Linear(2, 1)


x = torch.tensor([[0.0, 0.0], [0.0, 1.0], [1.0, 0.0], [1.0, 1.0]])
y = torch.tensor([3.0, 5.0, 4.0, 6.0])


optimizer = torch.optim.SGD(model.parameters(), lr=0.1)
循环
with torchsnooper.snoop():
    for _ in range(10):
        optimizer.zero_grad()
        pred = model(x)
        squared_diff = (y - pred) ** 2
        loss = squared_diff.mean()
        print(loss.item())
        loss.backward()
        optimizer.step()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉均

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值