繁体   English   中英

PyTorch Autograd自动微分功能

[英]PyTorch Autograd automatic differentiation feature

我只是想知道,怎么做对张量PyTorch跟踪操作(后.requires_grad被设置为True ,它是如何以后自动计算出梯度。请帮我了解背后的想法autograd 。谢谢。

这是一个很好的问题! 通常,自动区分( AutoDiff )的概念基于多变量链规则,即 \\ frac {\\ partial x} {\\ partial z} = \\ frac {\\ partial x} {\\ partial y} \\ cdot \\ frac {\\ partial y} {\\ partial z}
这意味着您可以通过“代理”变量y表示x相对于z的导数; 实际上,这允许您在一堆更简单(或原子)的操作中分解几乎任何操作,然后可以将它们“链接”在一起。
现在,像Autograd这样的AutoDiff软件包,只是存储这种原子操作块的衍生物,例如,除法,乘法等。然后,在运行时,你提供的前向传递公式(由多个这些块组成)可以很容易变成精确的衍生物。 同样,如果您认为AutoDiff不能完全按照您的意愿行事,您也可以为自己的运营提供衍生产品。

AutoDiff优于衍生近似(如有限差分 )的优势很简单,这是一个精确的解决方案。

如果您对内部工作方式更感兴趣,我强烈推荐AutoDidact项目 ,该项目旨在简化自动差分器的内部,因为通常还涉及很多代码优化。 此外,我参加的一个讲座中的这组幻灯片对理解非常有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM