Contributing#
We'd love your help making microgradpp even better! Whether you're fixing a bug, adding a feature, or improving docs ā all contributions are welcome. š
How to Contribute#
Fork the Repository
Head over to GitHub and fork the repo to your own account.
Create a Feature Branch
git checkout -b feature/AmazingFeatureGive your branch a descriptive name so others know what you're working on.
Make Your Changes
Write your code, add tests if applicable, and make sure everything builds cleanly.
Commit Your Changes
git commit -m 'Add some AmazingFeature'Keep commit messages clear and descriptive.
Push and Open a Pull Request
git push origin feature/AmazingFeatureThen open a Pull Request on GitHub. Describe what you changed and why!
Areas Where You Can Help#
Here's what's on the roadmap:
| Task | Status |
|---|---|
| CMakeLists flag for building tests | ā Done |
| Tensor Class | ā Done |
| Activation Function Enum/Class | ā Done |
| Abstract Base Class for Layer and Value | ā Done |
| CI/CD Pipeline with GitHub Actions | š Needed |
| More Examples & Tutorials | š Needed |
| Python Bindings | š Needed |
Not sure where to start? The CI/CD pipeline and more examples are great first contributions ā they don't require deep knowledge of the internals!
Citing microgradpp#
Using microgradpp in your research? Please cite it:
@software{microgradpp,
author = {Gautam Sharma},
title = {microgradpp: A C++ Machine Learning Library},
year = {2024},
url = {https://github.com/ggsharma/microgradpp}
}Acknowledgments#
A huge shoutout to Andrej Karpathy for the original micrograd that inspired this whole project, and to everyone in the C++ community who's given feedback and contributed.
microgradpp is licensed under the GNU GPL-3.0 License. Built with ā¤ļø by Gautam Sharma.