gpt4 book ai didi

python - PyTorch Autograd 自动微分功能

转载 作者:太空狗 更新时间:2023-10-30 02:24:56 25 4
gpt4 key购买 nike

我只是想知道,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 包所做的只是简单地存储这种原子操作 block 的导数,例如除法、乘法等。然后,在运行时,您提供的前向传递公式(由多个这些 block 组成)可以轻松地转换为精确导数。同样,如果您认为 AutoDiff 没有完全按照您的要求进行操作,您也可以为自己的操作提供导数。

AutoDiff 相对于导数近似值(如 finite differences)的优势很简单,这是一个精确解。

如果您对它的内部工作原理更感兴趣,我强烈推荐 AutoDidact project ,旨在简化自动微分器的内部结构,因为通常还涉及很多代码优化。另外,这个 set of slides我参加的讲座对理解很有帮助。

关于python - PyTorch Autograd 自动微分功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51054627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com