Smyl - A Machine Learning Library in Rust
Smyl is a machine learning library written in Rust, providing a set of tools and abstractions for building and training neural networks.
Features
- Matrix Operations: Smyl provides a
Matrixstruct for efficient matrix operations, including addition, subtraction, multiplication, and more. - Activation Functions: Smyl includes common activation functions such as ReLU and Sigmoid.
- Layers: Smyl defines two main layer types:
SignalLayerandSynapseLayer, which can be used to build neural network architectures. - Macros (optional): With the
macrosfeature enabled, Smyl provides a set of macros to simplify the creation of neural networks. - Idx3 Support (optional): With the
idx3feature enabled, Smyl can read and process data in the IDX3 format, commonly used for storing images.
Getting Started
To use Smyl, add the following to your Cargo.toml file:
[]
= "0.1.1"
Then, in your Rust code, you can start with this hello world example
extern crate rand;
extern crate smyl;
use ;
use LayerGradient;
use *;
But you might prefer using the macro:
use *;
Examples
You can find more example usage of Smyl in the examples directory of the repository:
- Hello World: A simple example demonstrating the basic usage of the library.
- Macros: An example showcasing the use of macros for creating neural networks.
- MNIST: A more complex example that demonstrates training a neural network on the MNIST dataset.
Documentation
For more detailed documentations, please refer to the docs.rs page.
Contributing
Contributions are welcome! Please feel free to submit a pull request or open an issue for any suggestions or improvements.
License
This project is licensed under the GNU GPLv3 License. See the LICENSE file for details.
Acknowledgments
- Thanks to the Rust community for their support and contributions.
- Special thanks to the 3Blue1Brown channel for vulgarizing mathematics involved in machine learning