8 个版本

使用旧的 Rust 2015

0.2.1 2017年11月29日
0.2.0 2017年11月29日
0.1.1 2017年11月17日
0.0.4 2017年11月8日
0.0.2 2017年10月29日

#699 in 机器学习

每月 28 次下载

Apache-2.0/MIT

160KB
4K SLoC

CNTK库绑定

为 Microsoft 的 CNTK 库提供的简单低级绑定。

状态

目前正在探索如何从 Rust 中优雅地与 C++ API 交互。预计会有很多破坏性变化。

构建脚本尚未准备就绪,可能只能在 64 位 Linux 系统上工作。

目标

  • 能够训练所有合理的架构
  • 无内存泄漏
  • 使用简单

非目标

  • 处处使用 Rust 风格
  • 极好的易用性
  • 避免所有不必要的复制

构建和安装

您需要安装 CNTK-2.3,并在相关环境变量中设置包含文件和库文件的路径(cntk activate 脚本能很好地完成这项工作)。您还需要安装 g++-4.8(因为 CNTK 使用它来编译东西)。

示例用法

请参阅 示例 文件夹。

其他限制

仅支持单精度(Rust 中的 f32,C++ 中的 float)类型。仅支持向量、矩阵和张量的密集表示。仅支持变量名和文件名使用 ASCII 字符串。

工作内容

  • 在计算中传递数据和输出。
  • 反向传播。
  • 训练全连接前馈、卷积和循环网络。
  • 保存和加载模型。
  • 大多数操作的代码。 - 几乎所有,除了几个辅助函数。
  • seq2seq 模型训练的演示。
  • 将 c++ 异常转换为 rust 紧急情况(大多数情况下)。
  • 与 NDArray 库的互操作性。

计划在未来

  • GPU。
  • 更好的文档。
  • 完成所有操作。
  • 更好的构建脚本。
  • 弄清楚我们是否想要 NDArrayView 或直接从 Rust 数据到 Value 及返回。
  • 适合的构建器模式(变量?)。

依赖项

~3.5MB
~67K SLoC