A PyTorch API implemented from scratch over the course of 5 modules. Scalar operations, tensor operations, convolutions have been implemented both for forward propagation in addition to the backpropagation. Tensor operations have been optimized for both the CPU and for CUDA