Skip to content

darelleq/NumPy_ML

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NumPy_ML

NumPy_ML was a personal education & exploration project that implements a grammar of Deep-Learning tools.

  • Built From Scratch ๐Ÿฅ๐Ÿฅš
  • 100% NumPy ๐Ÿ’ฏ๐Ÿ
  • Extensible architecture with Auto-Grad ๐Ÿ—ป๐Ÿ—บ๏ธ
  • Easy Modular ๐Ÿฅฅ๐ŸŒด
  • Expressive, type-hinted, human code ๐Ÿงผ๐Ÿ›€

Please see the MNIST demo as a 'Tutorial by Example' ๐Ÿง๐Ÿงฎ
The code is useful for ML students to preview some essential ANN algorithms from scratch ;) ๐Ÿฟ๐Ÿฟ๐Ÿฟ

Algorithms such as:

  • 2D Convolution (Numba accelerated)
  • Softmax
  • Backpropagation / Chain Rule
  • Adam Optimisation
  • Auto-Initialisation (e.g. ReLU -> Kaiming; Softmax -> Xavier)
  • Cross-Entropy Loss
  • Confusion Matrix

Network operations are float32 based. The design is capable of quick prototyping & deployment of small networks with ~max 12-16 layers unless you're good at keeping gradients alive (may require non-sequential architecture). ๐Ÿ™

The full project was originally intended for non-linear Deep Reinforcement-Learning workflows hence its a bit over-engineered for its current capabilities but the essential roadmap is all laidout if I ever wish to revisit this old project. There's of course a lot more features I wish to have added. Please see pyproject.toml for build requirements. Please note that Torchvision is a dependency of this project only for convenience and reproducibility of fetching the MNIST dataset for the MNIST classification demo.

License

All work within this repository is licensed with the Attribution-NonCommercial-ShareAlike 4.0 International
(see license.md or visit https://creativecommons.org/licenses/by-nc-sa/4.0/)

Thanks for readingโ—๏ธ๐Ÿ˜„
If my work was useful in anyway, please support it with a star โญ๏ธ๐Ÿ‘

Releases

No releases published

Packages

 
 
 

Contributors