什么是PyTorch.DETACH()方法?

什么是PyTorch.detach()方法?

PyTorch的分离方法适用于张量类。

tensor.detach()创建一个与不需要梯度的张量共享存储的张量。tensor.clone()创建一个仿照原张量的张量副本requires_grad场。

你应该用detach()当试图从计算图中删除张量时,克隆作为复制张量的一种方式,同时仍将复制作为来自计算图的一部分。

让我们在这里的一个例子中看到

X = torch.ones((28, 28), dtype=torch.float32, requires_grad=True)
y = X**2
z = X**2

result = (y+z).sum()

torchviz.make_dot(result).render('Attached', format='png')

1.png

 

现在有了分离。

X = torch.ones((28, 28), dtype=torch.float32, requires_grad=True)
y = X**2
z = X.detach()**2

result = (y+z).sum()

torchviz.make_dot(result).render('Attached', format='png')

正如您现在可以看到的那样,计算的分支x**2不再被追踪。这反映在不再记录此分支的贡献的结果的梯度中。 

文章转载自http://mengqiusoftware.cn/221.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值