Deep Diving into GANs: From Theory to Production with TensorFlow 2.0
09-02, 11:00–12:30 (UTC), Track 3 (Oteiza)

GANs are one of the hottest topics in the ML arena; however, they present a challenge for the researchers and the engineers alike. This workshop will guide you through both the theory and the code needed to build a GAN and put into production.

GANs are the new hottest topic in the ML arena; however, they present a challenge for the researchers and the engineers alike. Their design, and most importantly, the code implementation has been causing headaches to the ML practitioners, especially when moving to production.

The workshop aims at providing a complete understanding of both the theory and the practical know-how to code and deploy this family of models in production. By the end of it, the attendees should be able to apply the concepts learned to other models without any issues.

We will be showcasing all the shiny new APIs introduced by TensorFlow 2.0 by showing how to build a GAN from scratch and how to "productionize" it by leveraging the AshPy Python package that allows to easily design, prototype, train and export Machine Learning models defined in TensorFlow 2.0.

The workshop is composed of

  • Theoretical introduction
  • GANs from Scratch in TensorFlow 2.0
  • High-performance input data pipeline with TensorFlow Datasets
  • Introduction to the AshPy API
  • Implementing, training, and visualizing DCGAN using AshPy
  • Serving TF2 Models with Google Cloud Functions

The materials of the workshop will be openly provided via GitHub ( prior to the event and will be run on Colab leveraging the free GPU

Note: the workshop requires Python 3.7 to run, therefore the colab support is still uncertain. The attendees are encouraged to bring their own devices with Python 3.7 installed and ready to use.

Requirements and set up instructions

Two options available:

  1. (recommended). Use Google Colab & Binder. Every notebook has a button to lunch the correct tool. Just use it.
  2. Local setup: follow the instructions in the README

Project Homepage / Git

Abstract as a tweet

GANs are hard, but need not to be. Come with us on a voyage from theory to production leveraging TensorFlow 2.0

Python Skill Level


Domain Expertise



Image Processing, Machine Learning, Statistics

Lover of 🐧🐧. Pythonista 🐍. Machine Learning Engineer 🤖. Mad Scientist. Evil Mastermind. Walking Beard. Tinkerer. Nerd. Tech junkie.

Programming turned the tide of a crippling, panic-attacks inducing depression caused by a profound unsatisfaction with my choice of an academic career. During 2016 and 2017 I developed a burning passion for Python, robotics, Linux, Open Source/Hardware/Data/Science, and all things Machine Learning, I devoted myself day and night to learn the craft. My passion never waned and my drive toward knowing more grows each day.

Currently employed as a Machine Learning Engineer at, there I lead the research effort on GANs (and everything else relating to either the generative or the adversarial world of Deep Learning), help with Computer Vision and act as the Supreme Overlord of the Data Pipeline that feeds our AIs.

Computer Engineer + Machine Learning & Computer Vision researcher + Google Developer Expert in Machine Learning.

He received his MSc in 2016 with a thesis on the application of convolutional neural networks to the object detection and classification problems. After this, he took up research as a career and became a research fellow at the Computer Vision Laboratory at the University of Bologna, Italy, where he worked on a broad range of topics such as object detection, classification, coordinate regression, and anomaly detection. Currently, he leads the computer vision and machine learning department at ZURU Tech, Italy.

While in school, university and at work, he developed several projects spanning a broad range of topics such as database abstraction layers, a complete social network covering both the back-end and front-end aspects, several tools for machine learning developers and researchers with the aim to simplify the machine learning pipeline.
All his computer vision and machine learning projects have been implemented using the framework he loves: Tensorflow.

All these projects were completely open-source and are available on his Github profile at
He also blogs about Computer Vision, Machine Learning and Linux system administration. You can find his blog at

Machine Learning & Computer Vision Engineer.

He received his MSc in Computer Science and Engineering at the University of Modena and Reggio Emilia. He spent a period working with the Computer Vision team at the Queen Mary University in London where he worked on his research thesis on a cognitive people tracker.

He worked on different Computer Vision related projects regarding security systems and worked on image processing algorithms. With a passion for psychology and negotiation, he tries always to get the best from people and the work environment.

Recently, working in Zuru, he could go in-depth in the research and studies of deep-learning algorithms applied to numerous areas using Tensorflow and Keras. During the last year, he had the chance to work on multiple tasks such as classification, segmentation, and anomaly detection.

Currently, he is working on Generative Adversarial Networks and many different Computer Vision tasks.

Twitter: @iLeW Github:

Machine Learning and Computer Vision Engineer @ ZURU Tech Italy

Emanuele received the M.Sc. Degree in Computer Science and Engineering at Politecnico di Milano with 110L/110 in December 2018. In particular, he followed the Artificial Intelligence (AI) track. The AI track includes courses like Game Theory, Machine Learning, Robotics, Image Analysis and Computer Vision, Autonomous Agent and Multi-Agent Systems and Natural Language Processing.
His thesis is located in the Machine Learning field, and more precisely in the Reinforcement Learning field. The paper from his thesis has been accepted at the International Conference on Machine Learning (ICML) 2019.

Since November 2018, he has been working as a Machine Learning and Computer Vision Engineer at Zuru Tech Italy.
Currently, he's working on Generative Models (GANs) and on Recurrent Models (LSTM). In addition, he deals with Computer Vision tasks applied to complex industrial processes.