Skip to content

ArtyomKa/cnncpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cnncpp

Reference implementation of a CNN in cpp. This is my pet project to get a better understanding of what happens under the hood of Convolutional Neural Networks, and to learn and practice newer standards and algorithms in C++. Initial goal is to implement a capability to run inference on a MNIST database and down the road to add support for additional (at this stage) architechtures if classification networks.

Tasks

  • Layers:
    • Convolution 2D
      • Implement Convolutions
      • Support for stride > 1
      • Add activation and bias
      • Add support for padding
    • Flatten
    • - Avg Pooling
    • - Max Pooling
    • - Fully Connected
  • Find (and train) a reference implementation of MNIST
    • - Find a way to export weights and load them into cnncpp
  • Contruct and run the network (LeNet Arch)

Progress

First version is compatible with LeNet network trained on MNIST database. It supports loading hd5 weights exported by keras model and performing an inference.

Current implementation does not support padding.

About

Reference implementation of a CNN in cpp

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published