1 个不稳定版本
使用旧的 Rust 2015
0.2.0 | 2016 年 6 月 17 日 |
---|
#662 在 机器学习 中
105KB
2.5K SLoC
HAL : 超自适应学习
为什么选择 Rust?
此项目是为那些怀念强类型编译语言的人准备的。Rust 是特意选择的,因为 这个 此外,我们可以提供对操作的精细控制。这意味着可以在任何阶段获取张量的维度,无需处理未知形状的废话。我们还可以微控制步骤。例如,在 LSTM 上与每个前向时间步单独工作的例子。通常这些由内循环(Theano/Tensorflow 等)控制。
特性
- 支持多 GPU [基于模型]
- 支持 OpenCL + CUDA + 并行 CPU
- LSTM 的内部 RTRL [进行中]
- RNN [进行中]
- 感知器、自编码器、卷积网络**[待办**]
- 优化器:[SGD、Adam、AdaGrad**[待办**]**]
- 激活函数:[线性、Sigmoid、Tanh、ReLU、LReLU、Softmax]
- 初始化:[Lecun 均匀分布、Glorot 正态分布、Glorot 均匀分布、正态分布、均匀分布]
- 数据收集器:[SinSource、MNIST**[进行中**] CIFAR10**[待办**]**]
- 损失函数:[均方误差、L2、交叉熵]
- 基于 OpenGL 的绘图和图像加载,更多信息请参见 这里
- 支持多 GPU [水平] [待办**]
要求
- Rust 1.8 +
- 预安装 arrayfire 库(或者您可以按照以下说明手动编译)
cargo run --example autoencoder
安装
请参见这里
测试
HAL利用RUST的测试框架对所有的模块进行了广泛的测试。我们对单个函数以及层使用梯度检查。由于我们的设备探测方法,测试需要在单线程上运行。此外,为了测试[glfw问题],图形界面必须禁用。
AF_DISABLE_GRAPHICS=1 RUST_TEST_THREADS=1 cargo test
如果您想查看测试结果(以及基准测试)请运行
AF_DISABLE_GRAPHICS=1 RUST_TEST_THREADS=1 cargo test -- --nocapture
致谢
依赖项
~10–19MB
~290K SLoC