#自动微分 #变量 #

niura

纯 Rust 中的自动微分

1 个不稳定版本

0.1.0 2022年5月24日

#8 in #变量

MPL-2.0 许可证

16KB
418

Niura 是一个用 Rust 编写的自动微分库。

将 niura 添加到您的项目中

[dependencies]

niura = { git = "https://github.com/taminki/niura" }

原因

尽管有几个用 Rust 编写的库提供了自动微分功能,但它们的 API 语法通常非常冗长。

Niura 致力于尽可能接近符号数学的语法,主要区别在于需要通过引用传递变量,因为对已经丢弃的变量进行微分没有意义。

使用示例

use niura::var::*;

fn main() {

    let a = var::float(2.0);
    let b = var::float(3.0);
    
    let c = tan(&(&a * &b));

    c.backward();
    println!("{}", a.grad()); 
}

下一步是什么

这是一个探索性项目,旨在了解自动微分的工作原理,因此没有具体的计划时间表。

然而,我目前正在努力添加对向量值函数微分的支持。我还想添加一些功能,使其在未来成为机器学习库。

依赖项

~310KB