TensorFlow for ICT Applications

Ph.D. course @ Ph.D. in Information and Communication Technologies

Edition 2019 (20 hours, 4 credits)

Description of the course

Over the last years, neural networks have asserted themselves as a fundamental tool for a broad spectrum of ICT applications and fields, ranging from image processing (e.g., automatic SAR segmentation) to audio analysis and telecommunication networks. This evolution has been simplified and matched by a concurrent development of very sophisticated tools for the design and the optimization of these neural networks, that are today supporting many research and industrial projects.

Among these frameworks, TensorFlow, opensourced by Google in 2015, is today the most used one worldwide, with the version 2.0 released in preview in March 2019. This course will introduce the fundamentals of working with TensorFlow, with a focus on three selected ICT applications. The course will alternate small theory lectures, introducing key concepts of learning with neural networks and the evolution of deep learning frameworks, to practical coding sessions in Python using interactive Jupyter notebooks. At the end of every coding session we will implement a specific use case, ranging from channel estimation with feedforward models, to image analysis for autonomous driving and SAR segmentation.


Teaching materials

  1. Lecture 1: introduction to the course and the Python programming language (slides | notebook).
  2. Lecture 2: linear regression and TF autograd (slides | notebook).
  3. Lecture 3: feedforward neural networks and building models with Keras layers (slides | notebook).
  4. Lecture 4: convolutional neural networks and fine-tuning in Keras (slides | notebook).
  5. Lecture 5: designing deep networks and autonomous driving with CNNs (slides | notebook).

For more information on deep learning, you can refer to the following material:

  • Goodfellow, I., Bengio, Y. and Courville, A., 2016. Deep learning. MIT Press.

Class Schedule

The course will be held from May, 20 to June, 14 2019 in the DIET department, Via Eudossiana 18, 00184 Rome, Italy, with the following schedule:

  • Friday May 24th 10:00-12:00 DIET 09 Room.
  • Thursday May 30th 10:00-13:00 Reading room at the second floor of DIET Dpt.
  • Friday May 31st 10:00-13:00 Reading room at the second floor of DIET Dpt.
  • Thursday June 6th 10:00-13:00 Reading room at the second floor of DIET Dpt.
  • Friday June 7th 10:00-13:00 Reading room at the second floor of DIET Dpt.
  • Thursday June 13th 10:00-13:00 Reading room at the second floor of DIET Dpt.
  • Friday June 14th 10:00-13:00 Reading room at the second floor of DIET Dpt.

Environment setup

Students are invited to bring their own laptop for following the lab sessions. In order to have a working Python installation with all prerequisites, you can install the Anaconda distribution from the web (Python 3.7 version).

We will use the TensorFlow 2.0 beta-release in the course, that you can install from the Anaconda prompt simply as (more information available from the installation link):

Alternatively, you can run all notebooks freely using the Google Colaboratory service (which you can access with a standard Gmail account or the uniroma1.it account).


Final Examination

Each student will be assigned a hands-on project and will be evaluated on the correct implementation of the project itself.