https://medium.com/codex/lec-04-convolutional-neural-networks-the-backbone-of-visual-recognition-2fa2afb01e29