7 个版本 (破坏性)
0.6.0 | 2023 年 10 月 30 日 |
---|---|
0.5.0 | 2021 年 11 月 8 日 |
0.4.1 | 2020 年 8 月 20 日 |
0.4.0 | 2017 年 4 月 17 日 |
0.1.0 | 2017 年 1 月 16 日 |
#114 在 机器学习 中
每月 1,427 次下载
用于 8 crates
37KB
640 行
MNIST
MNIST 和 Fashion MNIST 数据集解析器,用于将数据集解析为向量,以便在 Rust 程序中使用。
示例
use mnist::*;
use ndarray::prelude::*;
fn main() {
// Deconstruct the returned Mnist struct.
let Mnist {
trn_img,
trn_lbl,
tst_img,
tst_lbl,
..
} = MnistBuilder::new()
.label_format_digit()
.training_set_length(50_000)
.validation_set_length(10_000)
.test_set_length(10_000)
.finalize();
let image_num = 0;
// Can use an Array2 or Array3 here (Array3 for visualization)
let train_data = Array3::from_shape_vec((50_000, 28, 28), trn_img)
.expect("Error converting images to Array3 struct")
.map(|x| *x as f32 / 256.0);
println!("{:#.1?}\n",train_data.slice(s![image_num, .., ..]));
// Convert the returned Mnist struct to Array2 format
let train_labels: Array2<f32> = Array2::from_shape_vec((50_000, 1), trn_lbl)
.expect("Error converting training labels to Array2 struct")
.map(|x| *x as f32);
println!("The first digit is a {:?}",train_labels.slice(s![image_num, ..]) );
let _test_data = Array3::from_shape_vec((10_000, 28, 28), tst_img)
.expect("Error converting images to Array3 struct")
.map(|x| *x as f32 / 256.);
let _test_labels: Array2<f32> = Array2::from_shape_vec((10_000, 1), tst_lbl)
.expect("Error converting testing labels to Array2 struct")
.map(|x| *x as f32);
}
Fashion MNIST
Fashion MNIST 数据集 为原始 MNIST 集提供类似格式的替代数据集,但通常对手写数字的分类挑战更大。
可以通过运行以下命令来下载此数据集的示例:
$ cargo run --features download --example fashion_mnist
依赖项
~0.1–8.5MB
~67K SLoC