A small Pytorch-like Python library for deep learning, written in C++, with CUDA support.
Here are the library features that are implemented:
- Creation of tensors from numpy arrays
- Basic operations on tensors (addition, multiplication, etc.)
- Basic neural network layers (Linear, ReLU)
- Workable Adam optimizer
- Autograd system for automatic differentiation (for most features)
- Support for GPU acceleration (CUDA) (for most features)
Here are the other features of the project:
- Compilation of the library using CMake, Make and Wheel
- Complete testing of the library using Unittest
- Automatic tests using Github Actions (only CPU features)
- No automatic differentiation for
max,min,mean,transposeandreshapeoperations. - No GPU support for scalar operations (addition, multiplication, etc.), division between tensors,
square rootandreshape.
- Fill in the missing features
- Add more neural networks layers (Convolution, Sigmoid, etc.)
- Add more optimizers (SGD, etc.)
- Add Loss functions (MSE, CrossEntropy, etc.)
- Add more tests
- Add examples to understand how the library works
- Add documentation
- Deploy the library on PyPI using cibuildwheel
- Lucas de Lima Nogueira for his amazing repo PyNorch and his great tutorial.
- Arthur Dujardin for his amazing repo Nets.