Neural Networks in Rust, without backpropagation. WIP

Overview

crates.io version crates.io downloads

Deep Thought

As of right now, this crate is far from a usable state. This crate implements feedforward-neural Networks in rust. Unlike the vast majority of NN libraries, like pytorch or tensorflow, deep thought does not use backpropagation to calculate gradients. Instead, it utilizes Dual Numbers, which allow for the calculation of derivatives during the forward pass.

There is still a long way to go before this crate will become usable (if ever).

For more information about Dual Numbers, please take a look at these excellent Blogposts by @Atrix256:

If you want to learn more about the math behind neural networks, take a look at these links:

Nightly Usage

Deep_thought makes use of the negative_impls, auto_traits and array_zip features, which are not available on the stable release channel yet.

You might also like...
Simple Neural Network on rust

Simple Artificial Neural Network A crate that implements simple usage of dense neural networks. Instalation Add this to your dependencies on Cargo.tom

Machine learning Neural Network in Rust

vinyana vinyana - stands for mind in pali language. Goal To implement a simple Neural Network Library in order to understand the maths behind it. This

A gpu accelerated (optional) neural network Rust crate.

Intricate A GPU accelerated library that creates/trains/runs neural networks in pure safe Rust code. Architechture overview Intricate has a layout ver

Neural network implementations from scratch in Rust.

Neural Network from Scratch Neural network implementations from scratch in Rust. Setup & Run Dataset used is mnist. Download the 4 archives and extrac

A fun, hackable, GPU-accelerated, neural network library in Rust, written by an idiot

Tensorken: A Fun, Hackable, GPU-Accelerated, Neural Network library in Rust, Written by an Idiot (work in progress) Understanding deep learning from t

An experimental Neural Network trainer/visualizer in Rust
An experimental Neural Network trainer/visualizer in Rust

DeepRender An experimental Neural Network trainer/visualizer in Rust Try it on your browser! https://msakuta.github.io/DeepRender/ Training on a funct

A neural network crate

RustNN An easy to use neural network library written in Rust. Crate Documentation Description RustNN is a feedforward neural network library. The libr

A simple neural net implementation.

PROPHET - Neural Network Library Linux Windows Codecov Coveralls Docs Crates.io A simple neural net implementation written in Rust with a focus on cac

Comments
  • Roadmap

    Roadmap

    • [x] Add a working implementation for basic dual number operations (Add, AddAssign etc)
    • [x] Allow interfacing with regular numbers implementing num_traits::Float
    • [ ] Use standard floating point types for weights/biases, these don't require gradients. see https://github.com/rust-ndarray/ndarray/issues/1067
    • [ ] Implement SGD using Dual Numbers
    • [ ] Test Performance + Memory usage. Dual Numbers might be really bad
    opened by Wuelle 2
Releases(v0.1.2)
  • v0.1.2(Jun 15, 2021)

    Changes in this release:

    • renamed NeuralNetworkBuilder to NeuralNetwork
    • Activation function derivatives return a 3D Array instead of a 2D array. The addition of the Softmax function made this necessary since one input value influences all output values

    Additions in this release:

    • Added the Softmax activation function (stabilized)
    • Added the tanh activation function
    • Added the option to create a Dataset without normalizing the data (using Dataset::raw())
    • Added a new trait called Optimizer. Custom optimizers that implement this trait can be used to optimize the network, which means that SGD is no longer the only available optimizer. This also helps keep the code of NeuralNetwork clean as it was previously kinda mixed together with optimizer code
    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Jun 11, 2021)

    This release introduces the serde feature flag, which implements the Serialize and ``Deserialize` trait for all necessary structs/enums. It also adds a lot more documentation, mainly to the crate root and the README

    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Jun 10, 2021)

Neural networks in Rust

deeplearn-rs Deep learning in Rust! This is my first shot at this. It's mostly just a proof of concept right now. The API will change. Status We have

Theodore DeRego 199 Oct 23, 2022
Rust implementation of real-coded GA for solving optimization problems and training of neural networks

revonet Rust implementation of real-coded genetic algorithm for solving optimization problems and training of neural networks. The latter is also know

Yury Tsoy 19 Aug 11, 2022
Compile-time creation of neural networks with Rust

GAMMA Compile-time creation of neural networks with Rust Description This is for now just a showcase project of what can be done with const generics i

Aitor Ruano 354 Jan 1, 2023
Tensors and dynamic neural networks in pure Rust.

Neuronika is a machine learning framework written in pure Rust, built with a focus on ease of use, fast prototyping and performance. Dynamic neural ne

Neuronika 851 Jan 3, 2023
Toy library for neural networks in Rust using Vulkan compute shaders

descent Toy library for neural networks in Rust using Vulkan compute shaders. Features Multi-dimensional arrays backed by Vulkan device memory Use Rus

Simon Brown 71 Dec 16, 2022
Compile-time creation of neural networks

Mushin: Compile-time creation of neural networks Mushin is a Japanese term used in martial arts that refers to the state of mind obtained by practice.

Aitor Ruano 354 Jan 1, 2023
🔭 interactively explore `onnx` networks in your CLI.

nnli Interactively explore onnx networks in your CLI. Get nnli ?? From Cargo cargo install nnli From Github git clone https://github.com/drbh/nnli.git

drbh 18 Nov 27, 2023
Simple neural network library for classification written in Rust.

Cogent A note I continue working on GPU stuff, I've made some interesting things there, but ultimately it made me realise this is far too monumental a

Jonathan Woollett-Light 41 Dec 25, 2022
Rust wrapper for the Fast Artificial Neural Network library

fann-rs Rust wrapper for the Fast Artificial Neural Network (FANN) library. This crate provides a safe interface to FANN on top of the low-level bindi

Andreas Fackler 12 Jul 17, 2022
A neural network, and tensor dynamic automatic differentiation implementation for Rust.

Corgi A neural network, and tensor dynamic automatic differentiation implementation for Rust. BLAS The BLAS feature can be enabled, and requires CBLAS

Patrick Song 20 Nov 7, 2022