[英]PyTorch Autograd automatic differentiation feature
我只是想知道,怎么做对张量PyTorch跟踪操作(后.requires_grad
被设置为True
,它是如何以后自动计算出梯度。请帮我了解背后的想法autograd
。谢谢。
这是一个很好的问题! 通常,自动区分( AutoDiff
)的概念基于多变量链规则,即 。
这意味着您可以通过“代理”变量y表示x相对于z的导数; 实际上,这允许您在一堆更简单(或原子)的操作中分解几乎任何操作,然后可以将它们“链接”在一起。
现在,像Autograd
这样的AutoDiff
软件包,只是存储这种原子操作块的衍生物,例如,除法,乘法等。然后,在运行时,你提供的前向传递公式(由多个这些块组成)可以很容易变成精确的衍生物。 同样,如果您认为AutoDiff不能完全按照您的意愿行事,您也可以为自己的运营提供衍生产品。
AutoDiff优于衍生近似(如有限差分 )的优势很简单,这是一个精确的解决方案。
如果您对内部工作方式更感兴趣,我强烈推荐AutoDidact项目 ,该项目旨在简化自动差分器的内部,因为通常还涉及很多代码优化。 此外,我参加的一个讲座中的这组幻灯片对理解非常有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.