如何在 Flux.jl 中获取函数的梯度?

How to take a gradient of a function in Flux.jl?

鉴于采用梯度是机器学习的核心思想,我试图找出对某些函数(例如 f(x) = 4x^2 + 3x + 2; 和 Julia 中的输入值)采用梯度所需的代码。我看了看周围,​​但没有看到我发现的资源中明确提到这一点。

Flux 实际上有一个内置的 gradient 函数,可以按如下方式使用:

julia> using Flux

julia> f(x) = 4x^2 + 3x + 2;

julia> df(x) = gradient(f, x)[1]; # df/dx = 8x + 3

julia> df(2)
19.0

其中 f 是函数,x 是输入值。

它甚至可以用来求二阶导数。您可以阅读有关 gradient function in the Flux.jl docs.

的更多信息