pytorch--切断梯度的方法

方法

  1. 调用tensor的data属性
  2. 调用tensor的detach()函数
  3. 调用clone()可行吗?不可行

验证

先写结论:.data 和.detach只取出本体tensor数据,舍弃了grad,grad_fn等额外反向图计算过程需保存的额外信息。但是.data所创建的tensor与原tensor的内存是共享的,也就是说改变二者任一变量,另一个变量的内容也会发生同样的改变。

data属性 与 detach()函数

在这里插入图片描述
进一步,当我调用.backward()时会发生错误:

  • .data:

    在这里插入图片描述

  • .detach()
    在这里插入图片描述

clone()函数验证

在这里插入图片描述
如上所示,clone()后的结果仍然requires_grad。所以并不能切断梯度

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值