关于 detach()和detach_()的区别

假设假设y是作为x的函数计算的,而z则是作为y和x的函数计算的。(y = x* x, z=y*x)

下面对于两个函数分别画出计算图:

1. detach()

如果对y使用detach(),那么在反向传播时,从z->x可以传播,从z->y也可以传播,从y->x也可以传播 ,但是从z->y->x不能传播。

代码和图结合起来看(分离y来返回一个新变量u,该变量与y具有相同的值, 但丢弃计算图中如何计算y的任何信息):

关于 detach()和detach_()的区别_第1张图片

关于 detach()和detach_()的区别_第2张图片

2. detach_()

而对于detach_(),则是连y->x都不能传播了。

关于 detach()和detach_()的区别_第3张图片

关于 detach()和detach_()的区别_第4张图片

你可能感兴趣的:(深度学习,深度学习)