CubeFlix / nn

A simple neural network in Go.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

nn

A simple neural network in Go.

nn allows users to easily and quickly create simple, yet powerful neural networks in Go. nn does not require any non-default packages, and runs on most systems. It uses a custom matrix engine and implements simple layers, activation and loss functions and optimizers, all easily packaged within a Model object. Simple examples can be found within the examples folder. nn is fully customizable and can be expanded to fit most modern networks. nn is reasonably fast and does not support GPU training.

The project is split into several files, each one responsible for a specific part of the network. However, the three main files are network.go, which contains the main code for the layers and activation functions. matrix.go contains the code for the custom matrix system. Finally, model.go contains code for Model objects and bundles the entire project together.

Currently (as of 9/19/22) the three full neural network examples are "sine_test.go", "spiral_test.go" and "iris_test.go".

This project is COMPLETE.

  • binary categorical accuracy
  • test out categorization (iris dataset)
  • test out categorization (spiral dataset, nnfs, dropout)
  • saving and loading models
  • add softmax classification
  • add binary cross-entropy loss
  • add and test optimizers (sgd, Adam, RMSProp)
  • full model object
  • add dropout
  • try out cnns
  • qubits
  • try out 'Heavy' network classes (you know which one)
  • try out LSTM and RNNs

About

A simple neural network in Go.


Languages

Language:Go 100.0%