CNNs from scratch

A numpy CNN implementation for digit classification

For a class project in my graduate level neural networks class in spring of 2019, I implemented a CNN for digit classification using numpy. I implemented an optimized toeplitz matrix representation for convolutions and included this in a generalized CNN Python class that could be easily extended to different network structures.

See the code for this implementation and several experiments here, and my project report below. Note that the deconvolution demonstration at the end of the report has an issue that still needs to be fixed.