algos - Learn the math behind AI Rust is great for building AI - Properties of Rust - Overview of different AI crates Learn to build real world AI applications - Code snippets for Mathematical models - Implementing web services
Borrowing Concept 2. Rust tools, library & community support ecosystem 3. Packaging and shipping Rust applications 5 Implementing ML Apps in Rust 1. Building Web services in Rust 2. Training your first ML model in Rust The Math behind Machine Learning 1. Gradient descent optimization technique 2. Vectors & Matrix Operations 3. Neural Networks 4. Hyperparameter Optimization
lot of common bugs ➔ Borrowing and Ownership ◆ Memory safety ◆ Freedom from data races ➔ Abstraction without overhead ➔ Stability without stagnation ➔ Libraries & tools ecosystem
update stable -> Update the rustup tool to the latest version rustup self update -> Install the nightly toolkit version of the Rust compiler: rustup install nightly -> Change the default version of the Rust compiler to nightly version: rustup default nightly
random string println!("length of the string is {}",rand_string.len() ); // printing the length of the string let (first,second) = rand_string.split_at(7); // Splits in string let count = rand_string.chars().count(); // Count using iterator count println!(rand_string)
memory The key problem to most memory problems out there is when mutation and aliasing both happens at the same time. Ownership concepts avoids Aliasing
mutable reference at a time But as many immutable &’s as you want Mutable references block all other access The &mut must go out of scope before using other &’s
(sample_move.rs) ➔ Spawning multiple threads (sample_multiple_thread.rs) ➔ Holding threads in a vector (sample_thread_expt.rs) ➔ Sharing data between threads using channels (sample_channel.rs) ➔ Implementing safe mutable access (sample_lock.rs) ➔ Creating child processes (sample_child_process.rs) ➔ Waiting for a child process (sample_wait.rs) ➔ Making sequential code parallel (sample_rayon.rs)
Rust ➔ Calling Rust commands from C ➔ Calling Rust operations from Node.js apps ➔ Calling Rust operations from Python ➔ Writing a Python module in Rust
(TP+TN)/total = (100+50)/165 = 0.91 True Positive Rate (Recall) : When it's actually yes, how often does it predict yes? TP/actual yes = 100/105 = 0.95 Precision: When it predicts yes, how often is it correct? TP/predicted yes = 100/110 = 0.91
between the different layers ➔ Find the error rate at output node ➔ Re-calibrate the linkage weights by back propagating ➔ Continue process until convergence criteria