neural-network-rs

Crates.ioneural-network-rs
lib.rsneural-network-rs
version0.1.4
sourcesrc
created_at2022-10-14 14:24:13.616982
updated_at2022-10-14 15:32:02.087605
descriptionA neural network library
homepage
repositoryhttps://github.com/ManuelLerchner/neural-network-rs
max_upload_size
id688214
size1,976,161
(ManuelLerchner)

documentation

https://docs.rs/crate/neural-network-rs

README

Neural-Network

A simple neural network written in rust.

About

This implementation of a neural network using gradient-descent is completely written from ground up using rust. It is possible to specify the shape of the network, as well as the learning-rate of the network. Additionally, you can choose from one of many predefined datasets, for example the XOR- and CIRCLE Datasets, which represent the relative functions inside the union-square. As well as more complicated datasets like the RGB_DONUT, which represents a donut-like shape with a rainbow like color transition.

Below, you can see a training process, where the network is trying to learn the color-values of the RGB_DONUT dataset.

Features

The following features are currently implemented:

  • Optimizers
    1. Adam
    2. RMSProp
    3. SGD
  • Loss Functions
    1. Quadratic
  • Activation Functions
    1. Sigmoid
    2. ReLU
  • Layers
    1. Dense
  • Plotting
    1. Plotting the cost-history during training
    2. Plotting the final predictions inside, either in grayscale or RGB

Usage

The process of creating and training the neural network is pretty straightforwards:

carbon

Example Training Process

Below, you can see how the network learns:

Learning Animation

https://user-images.githubusercontent.com/54124311/195410077-7a02b075-0269-4ff2-965f-97f224ab2cf1.mp4

Final Result

RGB_DONUT_SGD_ 2,64,64,64,64,64,3

Cool training results

RGB_DONUT

Big Network

RGB_DONUT_RMS_PROP_ 2,128,128,128,3 RGB_DONUT_RMS_PROP_ 2,128,128,128,3 _history

Small Network

RGB_DONUT_SGD_ 2,8,8,8,3 RGB_DONUT_SGD_ 2,8,8,8,3 _history

XOR_PROBLEM

XOR_SGD_ 2,8,8,8,1 XOR_SGD_ 2,8,8,8,1 _history

Commit count: 26

cargo fmt