TensorFlow: Advanced Techniques Specialization

  • 4 courses
  • Intermediate
  • >
    5 months (6 hours/week)
  • >
    Laurence Moroney, Eddy Shyu

What you will learn

Understand the underlying basis of the Functional API and build exotic non-sequential model types, custom loss functions, and layers.

Learn optimization and how to use GradientTape & Autograph, optimize training in different environments with multiple processors and chip types.

Practice object detection, image segmentation, and visual interpretation of convolutions.

Explore generative deep learning, and how AIs can create new content, from Style Transfer through Auto Encoding and VAEs to GANs.

Skills you will gain

  • Model Interpretability
  • Custom Training Loops
  • Custom and Exotic Models
  • Generative Machine Learning
  • Object Detection
  • Functional API
  • Custom Layers
  • Custom and Exotic Models with Functional API
  • Custom Loss Functions
  • Distribution Strategies
  • Basic Tensor Functionality
  • GradientTape for Optimization

The DeepLearning.AI TensorFlow: Advanced Techniques Specialization introduces the features of TensorFlow that provide learners with more control over their model architecture and tools that help them create and train advanced ML models.

In this Specialization, you will expand your knowledge of the Functional API and build exotic non-sequential model types. You will learn how to optimize training in different environments with multiple processors and chip types and get introduced to advanced computer vision scenarios such as object detection, image segmentation, and interpreting convolutions. You will also explore generative deep learning including the ways AIs can create new content from Style Transfer to Auto Encoding, VAEs, and GANs.


Course 1: Custom Models, Layers, and Loss Functions with TensorFlow

This is the first course of the TensorFlow: Advanced Techniques Specialization.


Week 1: Functional API

  • Compare Functional and Sequential APIs, discover new models you can build with the Functional API, and build a model that produces multiple outputs including a Siamese network.

Week 2: Custom Loss Functions

  • Build custom loss functions (including the contrastive loss function used in a Siamese network) in order to measure how well a model is doing and help your neural network learn from training data.

Week 3: Custom Layers

  • Build off of existing standard layers to create custom layers for your models, customize a network layer with a lambda layer, understand the differences between them, learn what makes up a custom layer, and explore activation functions.

Week 4: Custom Models

  • Build off of existing models to add custom functionality, learn how to define your own custom class instead of using the Functional or Sequential APIs, build models that can be inherited from the TensorFlow Model class, and build a residual network (ResNet) through defining a custom model class.

Bonus: Callbacks

  • Customize your model outputs and its behavior during training through custom callbacks, implement a custom callback to stop training once the callback detects overfitting, use a model checkpoint to save parameters during training, use the EarlyStopping callback to keep a model from overfitting, and become familiar with where you might want to create a custom callback.

Course 2: Custom and Distributed Training with TensorFlow

This is the second course of the TensorFlow: Advanced Techniques Specialization.


Week 1: Differentiation and Gradients

  • Learn about Tensor objects, the fundamental building blocks of TensorFlow, understand the difference between the eager and graph modes in TensorFlow, and learn how to use a TensorFlow tool to calculate gradients.

Week 2: Custom Training

  • Build your own custom training loops using GradientTape and TensorFlow Datasets to gain more flexibility and visibility with your model training.

Week 3: Graph Mode

  • Learn about the benefits of generating code that runs in graph mode, take a peek at what graph code looks like, and practice generating this more efficient code automatically with TensorFlow’s tools.

Week 4: Distributed Training

  • Harness the power of distributed training to process more data and train larger models, faster, get an overview of various distributed training strategies, and practice working with a strategy that trains on multiple GPU cores, and another that trains on multiple TPU cores.

Course 3: Advanced Computer Vision with TensorFlow

This is the third course of the TensorFlow: Advanced Techniques Specialization.


Week 1: Introduction to Computer Vision

  • Explore image classification, image segmentation, object localization, and object detection. Apply transfer learning to object localization and detection.

Week 2: Object Detection

  • Apply object detection models such as regional-CNN and ResNet-50, customize existing models, and build your own models to detect, localize, and label your own rubber duck images.

Week 3: Image Segmentation

  • Implement image segmentation using variations of the fully convolutional network (FCN) including U-Net and Mask-RCNN to identify and detect numbers, pets, zombies, and more.

Week 4: Visualization and Interpretation

  • Identify which parts of an image are being used by your model to make its predictions using class activation maps and saliency maps and apply these ML interpretation methods to inspect and improve the design of a famous network, AlexNet.

Course 4: Generative Deep Learning with TensorFlow

This is the fourth course of the TensorFlow: Advanced Techniques Specialization.


In this course, you will:

  • Learn neural style transfer using transfer learning: extract the content of an image (eg. swan), and the style of a painting (eg. cubist or impressionist), and combine the content and style into a new image.
  • Build simple AutoEncoders on the familiar MNIST dataset, and more complex deep and convolutional architectures on the Fashion MNIST dataset, understand the difference in results of the DNN and CNN AutoEncoder models, identify ways to de-noise noisy images, and build a CNN AutoEncoder using TensorFlow to output a clean image from a noisy one.
  • Explore Variational AutoEncoders (VAEs) to generate entirely new data, and generate anime faces to compare them against reference images.
  • Learn about GANs; their invention, properties, architecture, and how they vary from VAEs, understand the function of the generator and the discriminator within the model, the concept of 2 training phases and the role of introduced noise, and build your own GAN that can generate faces.

Program Instructors

Laurence Moroney Instructor

Lead AI Advocate, Google

Eddy Shyu Senior Curriculum Developer

Product Lead, DeepLearning.AI

Sign Up

Be notified of new courses

    Frequently Asked Questions

    Generative Adversarial Networks (GANs) are powerful machine learning models capable of generating realistic image, video, and voice outputs. They are algorithmic architectures that use two neural networks, pitting one against the other in order to generate new instances of data.

    Rooted in game theory, GANs have wide-spread application: from improving cybersecurity by fighting against adversarial attacks and anonymizing data to preserve privacy to generating state-of-the-art images, colorizing black and white images, increasing image resolution, creating avatars, turning 2D images to 3D, and more.

    As computing power has increased, so has the popularity of GANs and its capabilities. GANs have opened up many new directions: from generating high amounts of datasets for training machine learning models and allowing for powerful unsupervised learning models to producing sharper, discrete, and more accurate outputs. GANs have also informed research in adjacent areas like adversarial learning, adversarial examples and attacks, model robustness, etc.

    The DeepLearning.AI Generative Adversarial Networks (GANs) Specialization provides an exciting introduction to image generation with GANs, charting a path from foundational concepts to advanced techniques through an easy-to-understand approach. It also covers social implications, including bias in ML and the ways to detect it, privacy preservation, and more.

    Build a comprehensive knowledge base and gain hands-on experience in GANs. By the end, you would have trained your own model using PyTorch, used it to create images, and evaluated a variety of advanced GANs.

    Specialization: Gain practical knowledge of how generative models work. Construct and design your own generative adversarial model. Analyze how generative models are being applied in various commercial and exploratory applications.

    Course 1: In this course, you will understand the fundamental components of GANs, build a basic GAN using PyTorch, use convolutional layers to build advanced DCGANs that processes images, apply W-Loss function to solve the vanishing gradient problem, and learn how to effectively control your GANs and build conditional GANs.

    Course 2: In this course, you will understand the challenges of evaluating GANs, compare different generative models, use the Fréchet Inception Distance (FID) method to evaluate the fidelity and diversity of GANs, identify sources of bias and the ways to detect it in GANs, and learn and implement the techniques associated with the state-of-the-art StyleGAN.

    Course 3: In this course, you will use GANs for data augmentation and privacy preservation, survey more applications of GANs, and build Pix2Pix and CycleGAN for image translation.

    This Specialization is for software engineers, students, and researchers from any field, who are interested in machine learning and want to understand how GANs work.

    This Specialization provides an accessible pathway for all levels of learners looking to break into the GANs space or apply GANs to their own projects, even without prior familiarity with advanced math and machine learning research.

    Learners should have a working knowledge of AI, deep learning, and convolutional neural networks. They should have intermediate Python skills as well as some experience with any deep learning framework (TensorFlow, Keras, or PyTorch). Learners should be proficient in basic calculus, linear algebra, and statistics.

    We highly recommend that you complete the Deep Learning Specialization prior to starting the GANs Specialization.

    After completing this Specialization, you will have learned how to achieve the state-of-the-art in realistic generation. You will be able to generate realistic images, edit those images by controlling the output in a number of ways (eg. convert a horse to a zebra or lengthen your hair or make yourself older), quantitatively compare generators, convert an image to another (eg. turning a sketch into a photo-realistic version), animate still images, solve many of the challenges that GANs are notorious for, and more.

    This Specialization was created by Sharon Zhou, a CS PhD candidate at Stanford University, advised by Andrew Ng. Sharon Zhou’s work in AI spans from theoretical to applied, in medicine, climate, and more broadly, social good. Previously a machine learning product manager at Google and various startups, Sharon is a Harvard graduate in CS and Classics. She likes humans more than AI, though GANs occupy a special place in her heart.

    This is a Specialization made up of 3 courses.

    You can enroll in the DeepLearning.AI GANs Specialization on Coursera. You will watch videos and complete assignments on Coursera as well.

    We recommend taking the courses in the prescribed order for a logical and thorough learning experience.

    A Coursera subscription costs $49 / month.

    Yes, Coursera provides financial aid to learners who cannot afford the fee. Visit the Coursera Course Page and click on ‘Financial Aid’ beneath the ‘Enroll’ button on the left.

    You can audit the courses in the Specialization for free. Visit the Course Page, click on ‘Enroll’ and then click on ‘Audit’ at the bottom of the page. Note that you will not receive a certificate at the end of the course if you choose to audit it for free instead of purchasing it.

    You will receive a certificate at the end of each course if you pay for the courses and complete the programming assignments. There is a limit of 180 days of certificate eligibility, after which you must re-purchase the course to obtain a certificate. If you audit the course for free, you will not receive a certificate.

    If you complete all 3 courses in the GANs Specialization and are subscribed to the Specialization, you will also receive an additional certificate showing that you completed the entire Specialization.

    This specialization consists of three courses. At the rate of 5 hours a week, it typically takes 3-4 weeks to complete each course.