方法
- 调用tensor的data属性
- 调用tensor的detach()函数
- 调用clone()可行吗?不可行
验证
先写结论:.data 和.detach只取出本体tensor数据,舍弃了grad,grad_fn等额外反向图计算过程需保存的额外信息。但是.data所创建的tensor与原tensor的内存是共享的,也就是说改变二者任一变量,另一个变量的内容也会发生同样的改变。
data属性 与 detach()函数

进一步,当我调用.backward()时会发生错误:
-
.data:

-
.detach()

clone()函数验证

如上所示,clone()后的结果仍然requires_grad。所以并不能切断梯度
本文详细探讨了PyTorch中切断梯度反向传播的方法,对比了使用.data、.detach()及.clone()函数的效果,揭示了它们在切断梯度上的优缺点,并提供了实践验证。
2万+

被折叠的 条评论
为什么被折叠?



