如何在 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.
的更多信息
鉴于采用梯度是机器学习的核心思想,我试图找出对某些函数(例如 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.
的更多信息