4 个版本 (2 个破坏性更新)
0.11.0 | 2019 年 8 月 28 日 |
---|---|
0.10.0 | 2017 年 2 月 11 日 |
0.9.1 | 2016 年 12 月 6 日 |
0.9.0 | 2016 年 11 月 3 日 |
#553 in 机器学习
用于 mli_mep
15KB
214 行
mli
MLI 旨在为机器学习提供现代、数据驱动的抽象。
MLI 提供的特质与 Combine 的 Parser
、Serde 的 Serialize
和 Deserialize
、std 的 Iterator
以及 future 的 Future
和 Stream
非常相似。只需要创建张量处理原语并将它们连接起来,就可以构建一个大型系统,这个系统在更大的系统中仍然可以作为原语使用。
核心库
mli
- 具有特质的库
- 与
#![no_std]
兼容
mli-relu
- 包含线性激活函数
- 与
#![no_std]
不兼容(由 此问题 阻挡)
mli-sigmoid
- 包含 sigmoid 激活函数
- 与
#![no_std]
不兼容(由 此问题 阻挡)
mli-conv
- 包含卷积实现
mli-ndarray
- 允许
mli
和ndarray
之间的互操作性- 在张量上映射激活函数
- 允许
目标
- 快速的 CPU 前向和反向传播。
- 抽象多个后端。
- 自动序列化和反序列化所有状态数据的导数(使用 serde)。
- 在不产生任何抽象开销的情况下,充分利用张量代码。
- 允许构建可以通过流进行通信的张量管道,以允许多节点设置。
- 在这个库中实现这些管道的编排不是目标。
常量泛型
此 API 目前形式下完全可用,但一旦常量泛型工作并稳定,此 API 将更新以在编译时处理张量维度。这可能不会影响核心 mli
库,但会影响其他几个核心库中使用的关联类型。