【发布时间】:2021-02-22 20:20:11
【问题描述】:
我有一个关于自动微分的问题,尤其是在 Pytorch 中,因为我正在使用这个库。例如,我已经看到自动微分给出了表达式相对于变量的偏导数。
但是,据我所见,结果总是在特定点给出,这意味着它是一个带有数值的张量。我的问题如下:假设我们定义了一个由两个变量组成的函数: f(x,y)= x² + y² .
Pytorch 是否能够返回对应于 f 对 x 或 y 的偏导数的函数?即返回如下定义:
> def partial_f_x:
return 2*x
def partial_f_y:
return 2*y
因为即使这里的函数 f 相当简单,如果 Pytorch 可以给我们一个导数的公式(取决于不同的变量),而不是给出给定点的数值,那将会很有趣,因为如果我们不知道导数的表达式。
所以,如果我总结一下:Pytorch 是否能够返回复杂函数导数的公式?还是只返回一个张量,其中包含给定点的导数的数值?
非常感谢!
【问题讨论】:
-
我发现这些链接说明了 Pytorch autograd 的工作原理。 pytorch.org/tutorials/beginner/blitz/autograd_tutorial.htmlpytorch.org/docs/stable/notes/autograd.html也许你已经知道这些了。我无法从中判断是否可以让 autograd 实际上返回渐变的符号形式;看来答案是否定的,但我很可能会遗漏一些东西。
标签: math pytorch automatic-differentiation