1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
extern crate deep_learning_playground; extern crate image; extern crate ndarray; use deep_learning_playground::setup::mnist::{load_data, train_dataset}; use image::ImageBuffer; use ndarray::Array2; use num::integer::Roots; const OUT_FILE_NAME: &'static str = "out.png"; fn to_image(m: &Array2<f64>, out_fname: &str) { let (h, w) = m.dim(); let mut imgbuf = ImageBuffer::new(h as u32, w as u32); for (e, (_, _, pixel)) in m.iter().zip(imgbuf.enumerate_pixels_mut()) { *pixel = image::Luma([*e as u8]); } imgbuf.save(out_fname).unwrap(); } fn main() { match load_data(train_dataset(), false) { Err(e) => eprintln!("{}", e), Ok(s) => { let (h, _) = s[0].image.dim(); let size = h.sqrt() as usize; match s[0].image.clone().into_shape((size, size)) { Ok(ss) => { println!("saving png file to {}...", OUT_FILE_NAME); to_image(&ss, OUT_FILE_NAME) } Err(e) => eprintln!("{}", e), } } } }