4 个版本 (破坏性更新)
0.3.0 | 2023 年 8 月 6 日 |
---|---|
0.2.0 | 2023 年 7 月 24 日 |
0.1.0 | 2023 年 7 月 23 日 |
0.0.1 | 2023 年 7 月 21 日 |
#1540 在 算法
每月 22 次下载
20KB
360 行
stochastic_optimizers
此包提供了常见随机梯度优化算法的实现。它们被设计为轻量级、灵活且易于使用。
目前实现
- Adam
- SGD
- AdaGrad
此包不提供自动微分,梯度由用户提供。
示例
use stochastic_optimizers::{Adam, Optimizer};
//minimise the function (x-4)^2
let start = -3.0;
let mut optimizer = Adam::new(start, 0.1);
for _ in 0..10000 {
let current_paramter = optimizer.parameters();
// d/dx (x-4)^2
let gradient = 2.0 * current_paramter - 8.0;
optimizer.step(&gradient);
}
assert_eq!(optimizer.into_parameters(), 4.0);
参数由优化器拥有,可以通过 parameters()
获取引用。优化后,可以通过 into_parameters()
获取。
可以优化的类型
所有实现了 Parameters
特质的类型都可以优化。提供了对标准类型 f32
、f64
、Vec<T : Parameters>
和 [T : Parameters ; N]
的实现。
为自定义类型实现它相对简单,请参阅 Parameters
。
ndarray
通过启用 ndarray
功能,您可以使用 Array
作为 Parameters
单元测试
单元测试需要通过 tch 包使用 libtorch。有关安装细节,请参阅 github。
许可证
根据您的选择,许可方式为以下之一
- Apache 许可证第 2 版 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义,您提交的旨在包含在该作品中的任何贡献,将采用上述双许可方式,不附加任何额外条款或条件。
依赖项
~95–410KB