B0223 - DEEP LEARNING FOR ENGINEERING APPLICATIONS M

Academic Year 2023/2024

  • Teaching Mode: Traditional lectures
  • Campus: Bologna
  • Corso: Second cycle degree programme (LM) in Electronic Engineering for Intelligent Vehicles (cod. 5917)

Learning outcomes

This course enables students to manage and develop systems based on deep neural networks. Students will be able to deal with basic DL topologies, to apply supervised and unsupervised approaches, to investigate and understand the concept of latent space, and also to learn more recent advances. Moreover, specific focus will be put on adversarial and generative models. Laboratory activities will be used to allow students to be also able to apply such technologies to a number different problems.

Course contents

The course provides basic and advanced knowledge on deep learning architectures for images, by tackling both detailed theoretical aspects and implementations with possible applications. After an introductory part and the review of basic concepts (on probability, machine learning and algebra), both main discriminative deep learning networks (MLP, CNN, RNN, ...) and generative models (auto-encoder, VAE, GAN, ...) will be analyzed. The course also includes a brief introduction to Python and the use of the PyTorch deep learning library.

Readings/Bibliography

- I. Goodfellow, Y. Bengio, A. Courville, “Deep Learning”, The MIT Press, 2016
- E. Stevens, L. Antiga, T. Viehmann, “Deep Learning with PyTorch”, Manning Publications
- D. Foster, "Generative Deep Learning", O'Reilly Media, 2019

Teaching methods

The course includes around 35 hours of traditional frontal lectures and 25 hours of training in the laboratory.

Assessment methods

The exam consists in two tests, which can be taken independently, in terms of both order and exam session.
The oral test consists in reading and understanding a scientific paper assigned by the teacher and in the oral presentation with slides of its main content (on which the teacher can pose questions for evaluating the understanding of the theoretical concepts presented in the lessons).


The practical test consists in completing and/or modifying the PyTorch code provided during the exam to modify the architecture of the proposed network, its parameters, the training procedure or the final objective of the network.


The final grade will be the average of the two grades.

Teaching tools

The course includes slides and code snippets and examples prepared by the teacher.

Office hours

See the website of Claudio Ferrari