Are you interested in learning about Deep Learning? We are hosting a free 6-week live course on our YouTube channel, starting Saturday, November 20th at 9:30 AM PST.

Passively watching a video is often not enough to learn a software concept. You need to be able to ask questions and build real projects. That is exactly what you will be able to do in the course “Deep Learning with PyTorch: Zero to GANs”.

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

This course is taught by Aakash N S. He is the co-founder and CEO of Jovian.ml, a project management and collaboration platform for machine learning.

Theoretical concepts will be explained in simple terms using code. Students will receive weekly assignments, work on a project with real-world datasets and participate in a private data science competition to test their skills. Upon successful completion of the course, students 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)

Syllabus

The course is divided into 6 modules, and will be taught over 6 weeks via video lectures and interactive Jupyter notebooks. Each lecture will be around 2 hours long.

Module 1: PyTorch Basics - Tensors & Gradients

  • Introduction to Jupyter notebooks & Data Science in Python
  • Creating vectors, matrices & Tensors in PyTorch
  • Tensor operations and gradient computations
  • Interoperability of PyTorch with Numpy

Module 2: Linear Regression & Gradient Descent

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

Module 3: Logistic Regression for Image Classification

  • 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

Module 4: Feedforward Neural Networks & GPUs

  • 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

Module 5a: Image Classification using 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

Module 5b: Data Augmentation, Regularization and Residual Networks

  • 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

Module 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

Exercises & Assignments

Weekly Assignments

  • Week 1: Linear Regression
  • Week 2: Image Classification
  • Week 3: Feedforward neural networks

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

Students who attend at least 5 out of 6 video lectures and make valid submissions for all assignments will be eligible to receive a Certificate of Completion by Jovian.ml. Selected projects will also be receive a Best Project Award based on evaluation criteria determined by the instructors.

Sign up

You can sign up for the course here: http://zerotogans.com/

Whether or not you sign up, you can watch the course on the freeCodeCamp.org YouTube channel.