Crates.io | neuronika |
lib.rs | neuronika |
version | 0.2.0 |
source | src |
created_at | 2021-06-15 08:50:49.359641 |
updated_at | 2022-01-01 10:06:21.624836 |
description | Tensors and dynamic neural networks. |
homepage | |
repository | https://github.com/neuronika/neuronika |
max_upload_size | |
id | 410321 |
size | 1,347,660 |
Neuronika is a machine learning framework written in pure Rust, built with a focus on ease of use, fast prototyping and performance.
[dependencies]
neuronika = { git = "https://github.com/neuronika/neuronika" }
At the core of Neuronika lies a mechanism called reverse-mode automatic differentiation, that allows you to define dynamically changing neural networks with very low effort and no overhead by using a lean, fully imperative and define by run API.
The Rust language allows for an intuitive, light and easy to use interface while achieving incredible performance. There's no need for a FFI, everything happens in front of your eyes.
The following crate feature flags are available. They configure the ndarray
backend.
serialize
serde
1.x.blas
blas-src
for pluggable backend, which needs to be configured separately. See here
for more informations.matrixmultiply-threading
threading
feature in the matrixmultiply
package.We appreciate and welcome all contributions. If you are planning to contribute back bug-fixes, please do so without any further discussion.
If you plan to contribute new features, utility functions, or extensions to the framework, please first open a discussion and discuss the feature with us. Sending a PR without discussion might end up resulting in a rejected PR because we might be taking the project in a different direction than you might be aware of.
To learn more about making a contribution to Neuronika, please see our contribution page.
First, see if the answer to your question can be found in the API documentation. If the answer is not there, please ask for help by opening a discussion with the question. We'll be glad to help you.
Neuronika is very young and rapidly evolving, we are continuously developing the project and breaking changes are expected during transitions from version to version. We adopt the newest stable Rust's features if we need them.