对 Julia 中的匿名函数感到困惑

Fra*_*cis 3 machine-learning julia

我有这个代码:

Using ForwardDiff:gradient
derivative(f,x) = gradient(x->f(x[1]),[x])
Run Code Online (Sandbox Code Playgroud)

我知道 ForwardDiff 中的梯度采用向量作为参数,但这是什么意思:(x->f(x[1])),我对 感到困惑x[1]

Kri*_*son 5

我很困惑x[1]

意思是取向量的第一个元素x

[x]这段代码作为最后一个参数并没有多大意义。你可能应该只使用例如:

julia> ForwardDiff.derivative(sin, 1.0)
0.5403023058681398
Run Code Online (Sandbox Code Playgroud)