Deep Learning with PyTorch: Zero to GANs

Deep Learning with PyTorch: Zero to GANs


Course duration: Nov 14, 2020 - Dec 26, 2020 (tentative)

“Deep Learning with PyTorch: Zero to GANs” is an online course intended to provide a coding-first introduction to deep learning using the PyTorch framework. The course takes a hands-on coding-focused approach and will be taught using live interactive Jupyter notebooks, allowing students to follow along and experiment. Theoretical concepts will be explained in simple terms using code. Participants will receive weekly assignments and work on a project with real-world dataset to test their skills. Upon successful completion of the course, participants will receive a certificate of completion.


This is a beginner-friendly course, and no prior knowledge of data science, machine learning or deep learning is assumed. It is preferable to have some background in the following areas:

  • Programming knowledge, preferably in Python
  • Basics of linear algebra (vectors, matrices, dot products)
  • Basics of calculus (differentiation, geometric interpretation of derivative)

Lesson 1: PyTorch Basics and Linear Regression

  • Introduction to Jupyter notebooks & Data Science in Python
  • Creating vectors, matrices & Tensors in PyTorch
  • Tensor operations and gradient computations
  • Interoperability of PyTorch with Numpy
  • Linear Regression from scratch using Tensor operations
  • Weights, biases and the mean squared error loss function
  • Gradient descent and model training with PyTorch Autograd
  • Linear Regression using PyTorch built-ins (nn.Linear, nn.functional etc.)

Assignment 1 - All About torch.Tensor


The objective of this assignment is to develop a solid understanding of PyTorch tensors. In this assignment you will:

  • Pick 5 interesting functions related to PyTorch tensors by reading the documentation
  • Create a Jupyter notebook using a starter template to illustrate their usage, and share them using Jovian(Optional)
  • Write a blog post to accompany and showcase your Jupyter notebook(Optional)
  • Share your work with the community and exchange feedback with other participants

Lesson 2: Working with Images and Logistic Regression

  • Working with images from the MNIST dataset
  • Training and validation dataset creation
  • Softmax function and categorical cross entropy loss
  • Model training, evaluation and sample predictions

Assignment 2 - Train Your First Model


In this assignment, we’re going to use information like a person’s age, sex, BMI, no. of children, and smoking habit to predict the price of yearly medical bills. We will train a model with the following steps:

  • Download and explore the dataset
  • Prepare the dataset for training
  • Create a linear regression model
  • Train the model to fit the data
  • Make predictions using the trained model

Lesson 3: Training Deep Neural Networks on a GPU

  • Working with cloud GPU platforms like Kaggle & Colab
  • Creating a multilayer neural network using nn.Module
  • Activation function, non-linearity and universal approximation theorem
  • Moving with datasets and models to the GPU for faster training

Assignment 3 - Feed Forward Neural Networks


The ability to try many different neural network architectures to address a problem is what makes deep learning really powerful, especially compared to shallow learning techniques like linear regression, logistic regression etc. In this assignment, you will:

  • Explore the CIFAR10 dataset
  • Set up a training pipeline to train a neural network on a GPU
  • Experiment with different network architectures & hyperparameters

Lesson 4: Image Classification with Convolutional Neural Networks

  • Working with the 3-channel RGB images from the CIFAR10 dataset
  • Introduction to Convolutions, kernels & features maps
  • Underfitting, overfitting and techniques to improve model performance

In-class Kaggle Competition


Students will participate in a private data science competition hosted on the Kaggle platform. The competition will run for 3 weeks, allowing students to apply & improve their skills in a competitive environment. Students will gain exposure to working with cloud GPU platforms.

Lesson 5: Data Augmentation, Regularization and ResNets

  • Improving the dataset using data normalization and data augmentation
  • Improving the model using residual connections and batch normalization
  • Improving the training loop using learning rate annealing, weight decay and gradient clip
  • Training a state of the art image classifier from scratch in 10 minutes

Lesson 6: Image Generation using Generative Adversarial Networks (GANs)

  • Introduction to generative modeling and application of GANs
  • Creating generator and discriminator neural networks
  • Generating and evaluating fake images of handwritten digits
  • Training the generator and discriminator in tandem and visualizing results

Course Project


For the course project, students will create an image classification model using Convolutional neural networks, on a real-world dataset of their choice. The project will allow students to experiment with different types of models and regularization techniques. Students will also present their work at the end of the course and publish a blog post describing their approach and results.

Certificate of Completion

Participants who register for the course and make valid submissions for all assignments will be eligible to receive a Certificate of Completion by Jovian. Selected projects will also be receive a Best Project Award based on evaluation criteria determined by the instructors.

Instructor - Aakash N S

Aakash is the co-founder and CEO of Jovian, a project management and collaboration platform for machine learning. Prior to starting Jovian, Aakash worked as a software engineer (APIs & Data Platforms) at Twitter in Ireland & San Francisco and graduated from Indian Institute of Technology, Bombay. He’s also an avid blogger, open source contributor and online educator.


Join the discussion - ask question, get help, fix errors, help others and or just appreciate some helpful posts with a “like”! Learn together with a worldwide data science community.