Software Requirements

For this course, we shall use Python, with NumPy as the numerical library, PyTorch for autograd and OpenCV for image pre-processing primitives. Moreover, we shall use Matplotlib for visualization and Jupyter notebooks for tutorials. You could track these packages your self, be we strongly advocate the use of Anaconda or Miniconda, if you don't already. This is especially useful on a shared server.

All of this software works on both Unix and Windows based systems - find the right installation for your system.

Python 2.7 vs Python 3.6

Our tutorials and examples will be in Python2.7. it is easy enough to port everything to 3.6.


Anaconda is a python distribution that comes with a handy package manager conda. See here for an overview of why you should use Anaconda. The recommended option is to install Anaconda with all packages (takes up a lot of space) or Miniconda and install necessary packages à la carte. See here for install instructions.

After installation, restart your shell and type which python in your shell to ensure that it points to your conda installation rather than the system installation (/usr/bin/python, in Linux). For instance, mine says, /home/pillutla/software/anaconda2/bin/python.

Jupyter Notebooks and Notebook servers

You could either use Jupyter notebooks locally or remotely. See instructions here to set a notebook server up remotely. This is particularly useful when running code on a CSE or STAT servers or on AWS instances.


We shall use PyTorch for autograd, and its tensor library. We will not need GPU support for this course. Follow instructions on their website to install torch and torchvision.

Windows instructions: A quick google search brought up this result.


We will use OpenCV (in particularm opencv-contrib) for image preprocessing routines for the project. You can use this as a blackbox without knowing how it works. We shall provide relevant code snippets for this purpose. Use the following command for this purpose: python -m pip install opencv-contrib-python