This repository contains the assignments completed as part of a brilliant introductory course taught by Prof. Mitesh Khapra on Deep learning during the January - May 2019 semester.
Assignment1: A theoretical assignment which serves as a refresher for Calculus.
Assignment2: A theoretical assignment which serves as a refresher for Linear Algebra.
Assignment3: A programming assignment to implement a feedforward neural network, backpropagation and gradient descent (and its variants) in NumPy without any deep learning frameworks.
Assignment4: A programming assignment to train CNNs for image classification.
Assignment5: A programming assignment to train a sequence to sequence model for transliteration.
Assignment6: A programming assignment to train RBMs and to study abstraction and generation using the same.
environment.yml: A .yml file to setup the environment I used to run all the Python code. Most networks were trained in this environment on my GTX 1060 GPU. The tensorflow-gpu and Nvidia driver versions were chosen accordingly. Details of how to use this file are given below.
All code is written in Python (and functional in version 3.6.8) and uses the libraries listed in environment.yml
. This assumes that you have miniconda installed. If you do not, get it here.
Create a conda environment in which all the code can be run using the following command in the terminal:
conda env create -f environment.yml
This will create an environment named deep_learning (name can be changed by changing the value of "name" in the environment.yml
file). Activate the environment using
conda activate deep_learning
and run the desired script as described.