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 次下载
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