Skip to content

RYONN

Roll Your Own Neural Network

RYONN is a small, "roll-your-own" neural network that works for small problems. It is intended as a demonstration of how to build a small Python package/library with some core deep learning features, including:

  • tensors
  • loss functions
  • layers
  • neural network
  • optimization/gradients
  • input data
  • model training
  • and a few example scripts

Using it

You can create a new problem by copying one of the examples (xor.py, fizzbuzz.py, iris.py) and changing the input data. Both inputs and targets need to be n-dimensional numpy arrays (see iris.py).

To make it your own

Lots of things you can do to practice or make it your own

  • tensors

    • build your own tensor class
    • extend it for compatibility with GPUs
  • loss functions

    • MSE is but one measure (many others to choose from)
    • add regularization to penalize larger differences
    • cross-entropy measure for multi-class classification
  • layers

    • add sigmoid activation layer & other non-linear activation functions
    • add convolutional layers
    • add recurrent layers (LSTM)
  • optimizer

    • include a momentum optimization
  • training

    • add different accuracy measures
    • blend different models (model averaging)
  • examples

    • create a new example