关于detach

作者: Dorrrris | 来源:发表于2020-01-10 14:41 被阅读0次

将variable参数从网络中隔离开。保持一部分的网络参数不变。


# y=A(x), z=B(y) 求B中参数的梯度,不求A中参数的梯度
y = A(x)
z = B(y.detach())
z.backward()

我后来的疑问是,他会在optimizer那里被更新吗?
看到一个解释是“该类的step函数会将构建loss的所有的Variable的参数进行更新”
那么detach的那个变量,就不会更新了。
另一个链接https://www.jianshu.com/p/f1bd4ff84926

v_c_detached = v_c.detach()

v_c_detached这个变量是不具有grad这个属性的。而且它和v_c共享一块内存(data)。
因此,detach所做的就是,重新声明一个变量,指向原变量的存放位置,但是requires_grad为false.更深入一点的理解是,计算图从detach过的变量这里就断了, 它变成了一个leaf_node.即使之后重新将它的requires_node置为true,它也不会具有梯度.

相关文章

  • 关于detach

    将variable参数从网络中隔离开。保持一部分的网络参数不变。 我后来的疑问是,他会在optimizer那里被更...

  • 四十天学完六级词汇「11」

    detach vt.分开,分遣军队 detach oneself from reality超脱现实 inertia...

  • Docker

    detach attach 默认attach 前台模式-d detach 后台模式 批量操作 docker con...

  • 随想随笔

    Detach vs. Remove 布局更新时有两个方法处理已存在的子视图:detach 和 remove (分离...

  • pthread-detach()

    pthread_detach()函数: pthread_detach,是计算机用语,创建一个线程默认的状态是jo...

  • join、detach

    加入式(join): 虽然子线程sleep了一秒,但主线程在15行等到子线程结束了才继续往下执行。t.join()...

  • Torch detach

    官网解释: 即:返回一个tensor变量,且这个变量永远不会有梯度值。这个变量跟原图上的变量共享一块内存,也就说是...

  • 打卡第136天

    dive detach scarcely groon rub molecule cabin assassinate

  • 小杂绪英文练笔1

    Watching movies can detach yourself from commonplaces and...

  • docker部署usergrid

    docker run --detach --name cassandra --volume $(pwd)/cass...

网友评论

    本文标题:关于detach

    本文链接:https://www.haomeiwen.com/subject/fgbpactx.html