This repo is the full student code for minitorch. It is designed as a single repo that can be completed part by part following the guide book. It uses GitHub CI to run the tests for each module.
MiniTorch is a diy teaching library for machine learning engineers who wish to learn about the internal concepts underlying deep learning systems. It is a pure Python re-implementation of the Torch API designed to be simple, easy-to-read, tested, and incremental. The final library can run Torch code. The project was developed for the course 'Machine Learning Engineering' at Cornell Tech.
To get started, first read setup to build your workspace. Then follow through each of the modules to the right. Minimal computational resources are required. Module starting code is available on GitHub, and each proceeds incrementally from past modules.
Enjoy!
Sasha Rush (@srush_nlp) with Ge Gao and Anton Abilov
Topics covered:
- Basic Neural Networks and Modules
- Autodifferentiation for Scalars
- Tensors, Views, and Strides
- Parallel Tensor Operations
- GPU / CUDA Programming in NUMBA
- Convolutions and Pooling
- Advanced NN Functions
This example shows how to use neural network with 10 hidden layers to approximate the Xor data.