Doc générale
Pour apprendre le langage de manière générale :
- début : https://google.github.io/comprehensive-rust/fr/index.html
- début : https://jimskapt.github.io/rust-book-fr/
- cours « developpez.com » : https://rust.developpez.com/tutoriels/rust-par-l-exemple/
- cours « Rust » : https://www.rust-lang.org/learn
- « recette de cuisine » en Rust : https://rust-lang-nursery.github.io/rust-cookbook/intro.html
- préconisations ANSI : lien
Tableaux / Vecteurs
Vecteur de vecteurs :
let mut m3 : Vec<Vec<f64>> = Vec::new();
let mut un_vecteur:Vec<f64> = Vec::new();
un_vecteur.push(10.0);
un_vecteur.push(11.0);
un_vecteur.push(12.0);
let mut un_vecteur2:Vec<f64> = Vec::new();
un_vecteur2.push(0.0);
un_vecteur2.push(1.0);
un_vecteur2.push(2.0);
un_vecteur2.push(3.0);
m3.push(un_vecteur);
m3.push(un_vecteur2);
println!(" tableau m3 : {:?}", m3);
JSON
Bibliothèque serge_json : https://github.com/serde-rs/json
Très simple à utiliser.
Déclaration dans cargo.toml
[dependencies] serde = { version = "1.0", features = ["derive"] } # https://github.com/serde-rs/json serde_json = "1.0"
Exemple d’utilisation :
/// ////////////////////////////////////////////
/// Renvoie la structure sous format Str / JSON
pub fn get_json(&self)->String {
let serialized = serde_json::to_string(self).unwrap();
return serialized;
}
/// /////////////////////////////////////////////
/// Initialise un réseau via un format Json
pub fn set_json(json_data:&String)->Network {
let un_reseau:Network = serde_json::from_str(json_data).unwrap();
return un_reseau;
}
Pour les structures qui vont être sérialisées ou désérialisée il faut indiquer les directives suivantes :
#[derive(Serialize, Deserialize)]
Comme par exemple :
#[derive(Debug)]
#[derive(Serialize, Deserialize)]
pub struct Network {
layers : Vec::<Layer>
}
Ne pas oublier de mettre cette directive dans les autres structures qui dépendent de la première
Autre : Réseau de neurones
Base d’images de chiffres (entrainement et test) / page yann lecun : http://yann.lecun.org/exdb/mnist/index.html
Librairie rust pour lires les bases de données : https://github.com/busyboredom/rust-mnist
Exemple code rust pour lire une base de données : https://ngoldbaum.github.io/posts/loading-mnist-data-in-rust/
Bibliothèque ndarray : https://towardsdatascience.com/the-ultimate-ndarray-handbook-mastering-the-art-of-scientific-computing-with-rust-ef5ab767212a