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

MIT 许可证

15KB
214

mli

MLI 旨在为机器学习提供现代、数据驱动的抽象。

MLI 提供的特质与 Combine 的 Parser、Serde 的 SerializeDeserialize、std 的 Iterator 以及 future 的 FutureStream 非常相似。只需要创建张量处理原语并将它们连接起来,就可以构建一个大型系统,这个系统在更大的系统中仍然可以作为原语使用。

核心库

  • mli
    • 具有特质的库
    • #![no_std] 兼容
  • mli-relu
    • 包含线性激活函数
    • #![no_std] 不兼容(由 此问题 阻挡)
  • mli-sigmoid
    • 包含 sigmoid 激活函数
    • #![no_std] 不兼容(由 此问题 阻挡)
  • mli-conv
    • 包含卷积实现
  • mli-ndarray
    • 允许 mlindarray 之间的互操作性
      • 在张量上映射激活函数

目标

  • 快速的 CPU 前向和反向传播。
  • 抽象多个后端。
  • 自动序列化和反序列化所有状态数据的导数(使用 serde)。
  • 在不产生任何抽象开销的情况下,充分利用张量代码。
  • 允许构建可以通过流进行通信的张量管道,以允许多节点设置。
    • 在这个库中实现这些管道的编排不是目标。

常量泛型

此 API 目前形式下完全可用,但一旦常量泛型工作并稳定,此 API 将更新以在编译时处理张量维度。这可能不会影响核心 mli 库,但会影响其他几个核心库中使用的关联类型。

无运行时依赖