Deep Learning Programming

This course provides an introduction to deep learning and emphasize deep learning programming. Students will learn about neural network, convolutional neural networks, recurrent neural networks, hyperparameter tuning, regularization, optimization, and more. Theoretical aspects will be detailed throughout the course, but more complicated issues such as proofs of relevant theorems/schemes will not be presented. 

The contents of the course will be covered by lectures and exercise sessions of python/tensorflow programming. 

This practical programming course covers

  • Deep neural network
  • Convolutional neural network
  • Recurrent neural network
  • Hypterparameter tuning, regularization, optimization
  • Fine-tuning, transfer learning


I will attend a conference between 28th, May and 1st June, the lecture will be changed to 23th, May Exercise session.  
Our lecture room has changed from Z613 to D522.
Unfortunately, no suitable room is available for exercise session, we will still stay in Z613.


None, if taken as a master course. If taken as an advanced course in the bachelor program:

  • python programming
  • basic math courses offered in our bachelor programs
  • algorithms and data structures

Course works and credits

Credit will be given based on solving assignments and completing a final project. Students are required to use their laptops to solve assignments in exercise session.  In the last few weeks, they are required to finish a project with a given dataset for a specific target. 

Exercise slides


Date: 18.04.28

Click on "Show more" to download the slide.

Learn more

Backprop handout

Click on "Show more" to download the handout.

Learn more



  • Ian Goodfellow, Yoshua Bengio, Aaron Courville. Deep learning. MIT press, 2016 Link

Deep learning introduction

  • LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. "Deep learning." nature 521.7553 (2015): 436.
  • Lu, Jiwen, Junlin Hu, and Jie Zhou. "Deep Metric Learning for Visual Understanding: An Overview of Recent Advances." IEEE Signal Processing Magazine 34.6 (2017): 76-84.


  • Adam: Kingma, Diederik P., and Jimmy Ba. "Adam: A method for stochastic optimization." arXiv preprint arXiv:1412.6980(2014).
  • Dropout: Srivastava, Nitish, et al. "Dropout: A simple way to prevent neural networks from overfitting." The Journal of Machine Learning Research 15.1 (2014): 1929-1958.
  • Batch normalization:  Ioffe, Sergey, and Christian Szegedy. "Batch normalization: Accelerating deep network training by reducing internal covariate shift." arXiv preprint arXiv:1502.03167 (2015).
  • 1x1 convolution: Lin, Min, Qiang Chen, and Shuicheng Yan. "Network in network." arXiv preprint arXiv:1312.4400 (2013).
  • Random Search: Bergstra, James, and Yoshua Bengio. "Random search for hyper-parameter optimization." Journal of Machine Learning Research 13.Feb (2012): 281-305.

State-of-the-art CNNs

  • LeNet:  LeCun, Yann, et al. "Gradient-based learning applied to document recognition." Proceedings of the IEEE 86.11 (1998): 2278-2324.
  • AlexLet: Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. "Imagenet classification with deep convolutional neural networks." Advances in neural information processing systems. 2012.
  • VGGNet: Simonyan, Karen, and Andrew Zisserman. "Very deep convolutional networks for large-scale image recognition." arXiv preprint arXiv:1409.1556 (2014).
  • GoogLeNet: Szegedy, Christian, et al. "Going deeper with convolutions." Cvpr, 2015.
  • ResNet: He, Kaiming, et al. "Deep residual learning for image recognition." Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.

Object detection

  • DPM: Felzenszwalb, Pedro F., et al. "Object detection with discriminatively trained part-based models." IEEE transactions on pattern analysis and machine intelligence 32.9 (2010): 1627-1645.
  • R-CNN: Girshick, Ross, et al. "Rich feature hierarchies for accurate object detection and semantic segmentation." Proceedings of the IEEE conference on computer vision and pattern recognition. 2014.
  • Fast R-CNN: Girshick, Ross. "Fast r-cnn." arXiv preprint arXiv:1504.08083(2015).
  • Faster R-CNN: Ren, Shaoqing, et al. "Faster r-cnn: Towards real-time object detection with region proposal networks." Advances in neural information processing systems. 2015.
  • Mask R-CNN: He, Kaiming, et al. "Mask r-cnn." Computer Vision (ICCV), 2017 IEEE International Conference on. IEEE, 2017.
  • YOLO: Redmon, Joseph, et al. "You only look once: Unified, real-time object detection." Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.
  • YOLO9000: Redmon, Joseph, and Ali Farhadi. "YOLO9000: better, faster, stronger." arXiv preprint (2017).

Face recognition

  • FaceNet: Schroff, Florian, Dmitry Kalenichenko, and James Philbin. "Facenet: A unified embedding for face recognition and clustering." Proceedings of the IEEE conference on computer vision and pattern recognition. 2015.

Style transfer

  • Gatys, Leon A., Alexander S. Ecker, and Matthias Bethge. "Image style transfer using convolutional neural networks." 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR)