Crates.io | athenna |
lib.rs | athenna |
version | 0.1.2 |
source | src |
created_at | 2021-07-27 20:47:05.399927 |
updated_at | 2023-01-14 11:01:00.384824 |
description | Athenna is a light weight highly performant neural net framework for creating and using AI's cross platform and language |
homepage | https://github.com/ikcore/Athenna.Rs |
repository | https://github.com/ikcore/Athenna.Rs.git |
max_upload_size | |
id | 428093 |
size | 49,686 |
Cross platform - cross language performance neural net designed to be embedded into code-bases
See example Athenna Repo
use athenna::nn::*;
use athenna::activations::*;
fn main() {
println!("Testing Athenna NN");
let test_file = &"c:/data/test.athenna".to_string();
let layers:Vec<usize> = vec!{3,5,3};
let activations:Vec<Activations> = vec!{ Activations::TanH, Activations::Linear };
let mut nn = Athenna::new(layers, activations);
nn.learning_rate = 0.02;
let x = &vec!{0.2,0.8,0.4};
let y = &vec!{0.7,0.4,0.5};
// simulate learning and mutation
// this model will overfit as there is only one set of data
for i in 0..1000 {
if i % 100 == 0 {
// helps not get stuck in local minima!
nn.mutate(7, 0.0001);
}
nn.back_propagate(x, y);
}
let w = nn.feed_forward(x);
println!("cost: {} | {} {} {}", nn.cost, w[0], w[1], w[2]);
nn.save(test_file);
let mut nn = Athenna::load(test_file).unwrap();
let w = nn.feed_forward(x);
println!("check reloaded nn matches : {} {} {}", nn.cost, w[0], w[1], w[2]);
}