concision (cnc)
Warning: The library still in development and is not yet ready for production use.
Note: It is important to note that a primary consideration of the concision
framework is ensuring compatibility in two key areas:
autodiff
: the upcoming feature enabling rust to natively support automatic differentiation.ndarray
: The crate is designed around thendarray
crate, which provides a powerful N-dimensional array type for Rust
Overview
Goals
- Provide a flexible and extensible framework for building neural network models in Rust.
- Support both shallow and deep neural networks with a focus on modularity and reusability.
- Enable easy integration with other libraries and frameworks in the Rust ecosystem.
Roadmap
- v1:
-
ParamsBase
: Design a basic structure for storing model parameters. - Traits: Create a set of traits for defining the basics of a neural network model.
Forward
andBackward
: traits defining forward and backward propagationModel
: A trait for defining a neural network model.Predict
: A trait extending the basicForward
pass.Train
: A trait for training a neural network model.
-
- v2:
- Models:
Trainer
: A generic model trainer that can be used to train any model.
- Layers: Implement a standard model configuration and parameters.
LayerBase
: functional wrappers for theParamsBase
structure.
- Models:
Usage
Adding to your project
To use concision
in your project, add the following to your Cargo.toml
:
[]
= ["full"]
= "0.2.x"
Examples
Example (1): Simple Model
extern crate concision as cnc;
use ;
use ;
use ;
use Float;
Getting Started
Prerequisites
To use concision
, you need to have the following installed:
- Rust (version 1.85 or later)
Installation
You can install the rustup
toolchain using the following command:
|
After installing rustup
, you can install the latest stable version of Rust with:
You can also install the latest nightly version of Rust with:
Building from the source
Start by cloning the repository
Then, navigate to the concision
directory:
Using the cargo
tool
To build the crate, you can use the cargo
tool. The following command will build the crate with all features enabled:
To run the tests, you can use the following command:
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.