Skip to content

Yet another python module for implementing neural networks in pure numpy.

Notifications You must be signed in to change notification settings

sajaysurya/neural_networks_from_scratch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neural Networks from scratch

Yet another python module for implementing neural networks in pure numpy.

Aim

To develop a python module for training neural networks and using them for inference. The focus is on implementing the necessary methods using only numpy, while being capable of training CNNs efficiently.

Feature List

Neural networks can be assembled using the following building blocks

  • Fully connected layers
  • Relu Activation
  • Convolutional layers
  • Flatten layer
  • Maxpool
  • Softmax + Crossentropy
  • Xavier initialization for trainable variables Stochastic Gradient Descent with automatic differentiation is used for training. Inference is a simple forward pass.

Limitations

  • Only a few types of layers, activations and losses are available
  • Cannot make use of GPUs
  • Cannot be used for implementing Recurrent Neural Networks

Dependencies

  • numpy
  • matplotlib
  • tqdm

Steps for replicating the results

  • Rerun frontend.ipynb notebook to replicate the results
  • See examples in frontend.ipynb for usage instructions
  • Checkout docstrings in backend.py for more details
  • data import and plotting utilities are avialable in utilities.py
  • Make sure that the listed dependencies are installed.

About

Yet another python module for implementing neural networks in pure numpy.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published