7 个版本

使用旧的 Rust 2015

0.0.7 2018 年 1 月 31 日
0.0.6 2018 年 1 月 31 日
0.0.5 2015 年 10 月 7 日
0.0.4 2015 年 9 月 7 日
0.0.3 2015 年 7 月 26 日

#304机器学习


用于 blasphemy

MIT/Apache

315KB
6K SLoC

Rustml

Rustml 是一个用于在 Rust 中进行机器学习的库。

项目的文档,包括模块描述,可以在 这里 找到。

特性

  • 强大的矩阵和向量操作,带有 BLAS 绑定以实现高性能计算
  • k-最近邻分类算法
  • 神经网络
  • DBSCAN 聚类算法
  • 用于最小化函数的梯度下降
  • 线性回归
  • 通过 rustml 数据集包轻松访问 MNIST 手写数字数据库
  • 解析和创建 CSV 文件
  • 向量矩阵的均值和方差等统计函数
  • 读取 gzip 压缩文件
  • 距离度量
  • OpenCV 绑定以读取图像和视频,以及从图像和视频中提取简化特征的接口(例如,通过掩码从图像或视频帧中选择像素)
  • 特征向量和矩阵的缩放
  • 多维滑动窗口
  • 示例

先决条件

在 Ubuntu 上

sudo apt-get install libblas-dev libopencv-highgui-dev

建议安装 OpenBLAS,因为它并行化矩阵操作。

sudo apt-get install libopenblas-dev

从头开始使用 rustml - 示例矩阵乘法

使用 cargo 创建新项目

cargo new example --bin

创建一个名为 example 的新目录。进入此目录并添加以下行 Cargo.toml

[dependencies.rustml]
git = "https://github.com/daniel-e/rustml/"

或以下依赖项

[dependencies]
rustml = "*"

编辑 main.rs 文件,位于 src 目录中。

#[macro_use] extern crate rustml;

use rustml::*;

fn main() {
    let a = mat![
        1.0f32, 2.0;
        3.0, 4.0;
        5.0, 6.0
    ];
    let b = mat![
        5.0, 7.0;
        6.0, 2.0
    ];
    let c = a * b;

    println!("{}", c);
}

现在,在 example 目录中运行示例,使用 cargo run

其他示例

您可以在目录 examples 中找到其他示例。每个示例都可以使用以下命令执行:cargo run --example <示例名称> 其中 <示例名称> 是以下之一

  • gradient_descent:使用梯度下降法找到函数的最小值
  • image_grid:如何将一组图像排列成网格
  • linear_regression:使用线性回归来逼近未知函数的点
  • matrix_multiplication:猜猜看;(表示这是一个矩阵乘法示例)
  • mnist_digits:展示如何加载手写数字的 MNIST 数据库
  • neuralnetwork:训练神经网络计算 XOR 函数并绘制决策边界
  • octave_plot:展示如何使用 Octave 绘图
  • plots:为在线文档创建一些图表
  • scale_matrix:演示如何缩放特征
  • vector_addition:演示如何添加向量
  • video_histogram:展示如何选择视频的特定区域并计算直方图

Rustml 数据集包

rustml 数据集包需要单独安装。该包目前包含示例的手写数字 MNIST 数据库和视频。下载以下脚本,它将在您的 ~/.rustml/ 目录中下载并安装该包。

# download the install script
wget -q https://raw.githubusercontent.com/daniel-e/rustml/master/dl_datasets.sh
chmod +x dl_datasets.sh

# download the datasets and install them into ~/.rustml/
./dl_datasets.sh

依赖项

~6.5MB
~114K SLoC