• Stars
    star
    419
  • Rank 103,397 (Top 3 %)
  • Language
    Jupyter Notebook
  • License
    MIT License
  • Created almost 4 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Programming assignments and quizzes from all courses within the GANs specialization offered by deeplearning.ai

Generative Adversarial Networks Specialization on Coursera (offered by deeplearning.ai)

Programming assignments from all courses in the Coursera GAN Specialization offered by deeplearning.ai.

Courses

The GAN Specialization on Coursera contains three courses:

  1. Course 1: Build Basic Generative Adversarial Networks

  2. Course 2: Build Better Generative Adversarial Networks

  3. Course 3: Apply Generative Adversarial Networks (GANs)

About GANs

  • Generative Adversarial Networks (GANs) are powerful machine learning models capable of generating realistic image, video, and voice outputs.

  • 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.

About this Specialization

  • 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. Train your own model using PyTorch, use it to create images, and evaluate a variety of advanced GANs.

About you

  • 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.

Programming Assignments

Course 1: Build Basic Generative Adversarial Networks (GANs)

  • This is the first course of the Generative Adversarial Networks (GANs) Specialization.

Week 1: Intro to GANs

  • Learn about GANs and their applications, understand the intuition behind the basic components of GANs, and build your very own GAN using PyTorch.
  • Assignment:

Week 2: Deep Convolutional GAN

  • Build a more sophisticated GAN using convolutional layers. Learn about useful activation functions, batch normalization, and transposed convolutions to tune your GAN architecture and apply them to build an advanced DCGAN specifically for processing images.
  • Assignment:

Week 3: Wasserstein GANs with Normalization

  • Reduce instances of GANs failure due to imbalances between the generator and discriminator by learning advanced techniques such as WGANs to mitigate unstable training and mode collapse with a W-Loss and an understanding of Lipschitz Continuity.
  • Assignment:

Week 4: Conditional and Controllable GANs

  • Understand how to effectively control your GAN, modify the features in a generated image, and build conditional GANs capable of generating examples from determined categories.
  • Assignments:

Course 2: Build Better Generative Adversarial Networks (GANs)

  • This is the second course of the Generative Adversarial Networks (GANs) Specialization.

Week 1: GAN Evaluation

  • Understand the challenges of evaluating GANs, learn about the advantages and disadvantages of different GAN performance measures, and implement the Fréchet Inception Distance (FID) method using embeddings to assess the accuracy of GANs.
  • Assignment:

Week 2: GAN Disadvantages and Bias

  • Find out the disadvantages of GANs when compared to other generative models, discover the pros/cons of these models — plus, learn about the many places where bias in machine learning can come from, why it’s important, and an approach to identify it in GANs.
  • Quiz:
  • Assignment:
  • Lab:

Week 3: StyleGAN and Advancements

  • Understand how StyleGAN improves upon previous models and implement the components and the techniques associated with StyleGAN, currently the most state-of-the-art GAN with powerful capabilities
  • Assignment:
  • Optional Notebooks:

Course 3: Apply Generative Adversarial Networks (GANs)

  • This is the third course in the Generative Adversarial Networks (GANs) Specialization.

Week 1: GANs for Data Augmentation and Privacy Preservation

  • Explore the applications of GANs and examine them w.r.t. data augmentation, privacy, and anonymity.
  • Improve your downstream AI models with GAN-generated data.
  • Assignment:

Week 2: Image-to-Image Translation

  • Leverage the image-to-image translation framework and identify extensions, generalizations, and applications of this framework to modalities beyond images.
  • Implement Pix2Pix, a paired image-to-image translation GAN, to adapt satellite images to map routes (and vice versa) with advanced U-Net generator and PatchGAN discriminator architectures.
  • Assignments:

Week 3: Image-to-Image Unpaired Translation

  • Compare paired image-to-image translation to unpaired image-to-image translation and identify how their key difference necessitates different GAN architectures.
  • Implement CycleGAN, an unpaired image-to-image translation model, to adapt horses to zebras (and vice versa) with two GANs in one.
  • Assignment:

Disclaimer

I recognize the hard time people spend on building intuition, understanding new concepts and debugging assignments. The solutions uploaded here are only for reference. They are meant to unblock you if you get stuck somewhere. Please do not copy any part of the code as-is (the programming assignments are fairly easy if you read the instructions carefully). Similarly, try out the quizzes yourself before you refer to the quiz solutions.

More Repositories

1

coursera-deep-learning-specialization

Notes, programming assignments and quizzes from all courses within the Coursera Deep Learning specialization offered by deeplearning.ai: (i) Neural Networks and Deep Learning; (ii) Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization; (iii) Structuring Machine Learning Projects; (iv) Convolutional Neural Networks; (v) Sequence Models
Jupyter Notebook
2,975
star
2

coursera-machine-learning-engineering-for-prod-mlops-specialization

Programming assignments and quizzes from all courses within the Machine Learning Engineering for Production (MLOps) specialization offered by deeplearning.ai
Jupyter Notebook
415
star
3

iSeeBetter

iSeeBetter: Spatio-Temporal Video Super Resolution using Recurrent-Generative Back-Projection Networks | Python3 | PyTorch | GANs | CNNs | ResNets | RNNs | Published in Springer Journal of Computational Visual Media, September 2020, Tsinghua University Press
C++
358
star
4

coursera-natural-language-processing-specialization

Programming assignments from all courses in the Coursera Natural Language Processing Specialization offered by deeplearning.ai.
Jupyter Notebook
313
star
5

coursera-ai-for-medicine-specialization

Programming assignments, labs and quizzes from all courses in the Coursera AI for Medicine Specialization offered by deeplearning.ai
Jupyter Notebook
255
star
6

stanford-cs231n-assignments-2020

This repository contains my solutions to the assignments for Stanford's CS231n "Convolutional Neural Networks for Visual Recognition" (Spring 2020).
Jupyter Notebook
159
star
7

stanford-cs224n-assignments-2021

This repository contains my solutions to the assignments for Stanford's CS224n "Natural Language Processing with Deep Learning" (Winter 2021).
Jupyter Notebook
117
star
8

iPerceive

Applying Common-Sense Reasoning to Multi-Modal Dense Video Captioning and Video Question Answering | Python3 | PyTorch | CNNs | Causality | Reasoning | LSTMs | Transformers | Multi-Head Self Attention | Published in IEEE Winter Conference on Applications of Computer Vision (WACV) 2021
Python
75
star
9

FRVSR-GAN

A Novel Approach to Video Super-Resolution using Frame Recurrence and Generative Adversarial Networks | Python3 | PyTorch | OpenCV2 | GANs | CNNs
Python
57
star
10

llm-course

Course on LLMs: Building Personalized Customer Chatbots •
Jupyter Notebook
21
star
11

command-line-interpreter

Unix Shell in C | Support for built-in commands, output redirection, parallel mode, batch mode, consecutive commands etc.
Shell
19
star
12

aman-ai

iPython Notebooks for NumPy and Python Primers
Jupyter Notebook
15
star
13

software-RAID

Software RAID Manager | C | Supports RAID 0, 1, 4, 5 and 10 | Capable of normal mode operation (no failures), working with one failed disk and restoring normal mode with a new disk
C
12
star
14

regex-cheatsheet

RegEx Cheatsheet | Authored by Yours Truly
10
star
15

mle-for-production-mlops

Machine Learning Engineering for Production (MLOps) is an online non-credit specialization authorized by DeepLearning.AI and offered through Coursera
7
star
16

amanchadha

README
5
star
17

melody

Music Player | Python | TkInter | PyGame | Threading | Support for adding/removing songs from a playlist, forward/rewind tracks, mute/unmute functionality
Python
4
star
18

desktop-search-engine-with-pthreads

Desktop Search Engine | Pthreads | Reader/Writer Lock | Fine-grained Bucket-level Locking | C
C
3
star
19

neural-net-from-scratch

Neural network from scratch implementing the XOR function
Python
3
star
20

vim-cheatsheet

Vim Cheatsheet | Authored by Yours Truly
2
star
21

pipelined-processor

Design of a Five-staged Pipelined Processor | Supports Data Hazard Detection, Forwarding, Stalling, Flushing | Testbenches
1
star
22

c-cpp-examples

Random C/C++ examples
C++
1
star
23

calibratable-angle-resolver-in-verilog

Calibratable Angle Resolver | Verilog
Verilog
1
star