Skip to content

➰❌ Loop-less Numpy implementation of CNN architectural components like convolution, pooling, upsampling and fully-connected layers

License

Notifications You must be signed in to change notification settings

GLaDO8/CNN-architectural-components

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 

Repository files navigation

loopless CNN

Numpy implementation of various CNN architectural components like convolution layer, pooling layer(max, min, avg etc) fully-connected layer, using matrix multiplications instead of loops. Works with multi-channel input with padding and n-kernel layers.

Pending improvements

  • implement batch image convolution support

Note

This implementation is inspired from the matrix multiplication techniques laid out in Stanford's CS231n, CNNs for VR website. One should note that there is always a compromise in terms of either speed or memory when optimising algorithms, atleast in most of the cases. iterating through a matrix with special constraints always requires tiling up the indices, which is a memory intensive process if the matrix is huge. But we benefit from the optimised matrix multiplication interface numpy uses, which is ATLAS, an open-source implementation of BLAS in C.

About

➰❌ Loop-less Numpy implementation of CNN architectural components like convolution, pooling, upsampling and fully-connected layers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages