Building a CNN in Python from Scratch!

If you can build it – you understand it! That is the slogan of this lecture. Step by step, we build a fully functional CNN from scratch only using numpy and thereby learn object oriented programming (defining own classes, setting attributes, creating modules). This lecture is inspired by the book written by Harrison Kinsley & Daniel Kukieła (see below).


  • a single neuron
  • layers of neurons
  • activation functions
  • softmax
  • loss & entropy
  • backpropagation
  • optimization
  • the training process



  • convolution
  • pooling
  • sigmoid
  • flattening
  • backpropagation – again
  • testing the CNN & final remarks