Welcome to Minitorch! 🎉 This project is an academic Pytorch clone designed to help you dive deep into the mathematics, design choices, and programming challenges behind the famous Deep Learning & Tensors framework, Pytorch.
Minitorch is a lightweight framework created for educational purposes. Its goal is to give you a solid understanding of the foundational concepts in deep learning, by allowing you to:
- 🧠 Grasp the underlying mathematics behind tensors and neural networks.
- 🛠️ Explore design choices made in a deep learning framework.
- 💻 Tackle programming intricacies involved in building such a system from scratch.
- Tensors: Support for vector and matrix mathematical operations 🧮.
- Optimization Algorithms: Implementations of algorithms like Stochastic Gradient Descent (SGD) 🔄.
- Automatic Differentiation Engine: Build and compute gradients automatically for training neural networks 🧮✨.
- Neural Network Components:
- Linear Layer: Fully connected neural network layer.
- Activation Functions: Classes like Sigmoid, ReLU, and more! 🔌⚡.
- Loss functions: Loss functions for computing your network loss, such as Binary Cross Entropy! 🤖
Minitorch comes with an example notebook where you can train a Multi-Layer Perceptron (MLP) to learn the AND logic function. 🤖💡
Building the project is simple! Here's how to get started:
-
Clone the repository:
git clone https://github.com/cbasitodx/Minitorch.git cd minitorch
-
Build your virtual enviroment for generating documentation (right now only available to make users 🐧)
make env
- make tool installed 🐧.
- git installed 🎯.
- Python 3.x installed 🐍.
Full documentation can be automatically generated with the make doc command. Explore the intricacies of the framework and dive deep into the code! 📖🔍 Just make sure to first run make env
Are you a teacher? 📚👩🏫👨🏫
If you'd like to use Minitorch in your classes, feel free to reach out to me via email at sebastian.conde@alumnos.upm.es. I'm happy to help and provide additional resources!
Contributions are welcome! If you're interested in contributing to Minitorch, please send an email to sebastian.conde@alumnos.upm.es. Let's make this framework better together! 💪🌟
Current version: 1.0.0
Thank you for checking out Minitorch! I hope you find it as exciting and educational as I do. Happy coding! 🎉🚀