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
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