rust ad Rust自动微分库(一阶正向AD)
Rust的自动微分库 rust-ad 目前只支持一阶正向AD。以下是一个简单的示例,计算在点(1, 2)处,函数 exp(x/y²) 的梯度:
let result = ad::grad(|x| { Float::exp(x[0] / Float::powi(x[1], 2)) }, vec![1.0, 2.0]);
println!(\"Out: {}\", result); // Out: [0.321006, -0.321006]
在此示例中,rust-ad 库通过 grad
函数计算了该函数在给定点的梯度。梯度的结果为 [0.321006, -0.321006]
,分别表示函数在 x 和 y 方向的导数。
下载地址
用户评论