14 releases
0.1.14 | May 25, 2024 |
---|---|
0.1.13 | May 10, 2024 |
0.1.11 | Aug 1, 2022 |
0.1.10 | Jul 18, 2022 |
#123 in Science
185KB
5K
SLoC
Concision
The library is currently in the early stages of development and is not yet ready for production use.
Concision is designed to be a complete toolkit for building machine learning models in Rust.
Concision is a machine learning library for building powerful models in Rust prioritizing ease-of-use, efficiency, and flexability. The library is built to make use of the
both the upcoming autodiff
experimental feature and increased support for generics in the 2024 edition of Rust.
Getting Started
Building from the source
Start by cloning the repository
git clone https://github.com/FL03/concision.git
cd concision
cargo build --features full -r --workspace
Usage
Example: Linear Model (biased)
extern crate concision as cnc;
use cnc::prelude::{linarr, Linear, Result, Sigmoid};
use ndarray::Ix2;
fn main() -> Result<()> {
tracing_subscriber::fmt::init();
tracing::info!("Starting linear model example");
let (samples, d_in, d_out) = (20, 5, 3);
let data = linarr::<f64, Ix2>((samples, d_in)).unwrap();
let model = Linear::<f64>::from_features(d_in, d_out).uniform();
// let model = Linear::<f64, cnc::linear::Unbiased>::from_features(d_in, d_out).uniform();
assert!(model.is_biased());
let y = model.activate(&data, Sigmoid::sigmoid).unwrap();
assert_eq!(y.dim(), (samples, d_out));
println!("Predictions:\n{:?}", &y);
Ok(())
}
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
License
Dependencies
~2–3.5MB
~67K SLoC