title: A simple Convolutional neural network code
body: <p>I am interested in convolutional neural networks (CNNs) as a example of computationally extensive application that is suitable for acceleration using reconfigurable hardware (i.e. lets say FPGA)</p>
  
  <p>In order to do that I need to examine a simple CNN code that I can use to understand how they are implemented, how are the computations in each layer taking place, how the output of each layer is  being fed to the input of the next one. I am familiar with the theoretical part (<a href="http://cs231n.github.io/convolutional-networks/" rel="noreferrer">http://cs231n.github.io/convolutional-networks/</a>)</p>
  
  <p>But, I am not interested in training the CNN, I want a complete, self contained CNN code that is pre-trained and all the weights and biases values are known.</p>
  
  <p>I know that there are plenty of CNN libraries, i.e. Caffe, but the problem is that there is no trivial example code that is self contained. even for the simplest Caffe example "cpp_classification" many libraries are invoked, the architecture of the CNN is expressed as .prototxt file, other types of inputs such as .caffemodel and .binaryproto are involved. openCV2 libraries is invoked too. there are layers and layers of abstraction and different libraries working together to produce the classification outcome.</p>
  
  <p>I know that those abstractions are needed to generate a "useable" CNN implementation, but for a hardware person who needs a bare-bone code to study, this is too much of "un-related work".</p>
  
  <p>My question is: Can anyone guide me into a simple and self-contained CNN implementation that I can start with?</p>