Alexander S. Lundervold, https://alexander.lundervold.com, Oct. 2021.
The repo contains the code used in the deep learning module of the course PCS956: Research Trends in Applied Machine Learning, 2021.
The module gives a quick introduction to some core features of deep learning, provides hands-on experience with a variety of data sets, and takes you on a guided tour of some useful tools and techniques of practical deep learning.
Part 1 is an introduction to deep learning essentially from scratch. The main takeaway and learning outcome is that
Deep learning is a search for good hierarchical representations...
...that makes a given task easy to solve. Our objective is to get everyone on board with this description of deep learning, and to indicate why and when deep learning can be useful. I will also provide hands-on experience with how this translates into computer code (using PyTorch) via some concrete, simple examples. This part will hopefully have you understand what deep learning is, but it will not by itself make you an efficient practitioner.
See 1-basic_intro for the accompanying notebooks.
Part 2 changes gears somewhat, and flies through some more involved examples, hoping to help you figure out what avenues to explore further to become a deep learning practitioner. The goal is to expose you to some of the many ideas, techniques and tricks in modern deep learning. Those of you who are new to the field will hopefully get a useful impression of practical deep learning, with some pointers for learning more. Others more experienced in deep learning will perhaps learn some new tricks, and be exposed to some interesting approaches and applications.
See 2-intro_to_practical_dl for the accompanying notebooks.
If you want to use your own computer, follow the setup instructions here.
If you want to use Google Colaboratory or Paperspace Gradient, click here:
You can browse through the notebooks non-interactively using the jupyter.org nbviewer by clicking here.
Remember to attach a (free) GPU to your Colab or Gradient instances (via "Runtime --> Change runtime type" in Colab or the "Instance" menu in Gradient). Note that some of the examples in the course notebooks will have higher system requirements than what Google Colab or Paperspace Gradient provides (for free). In such cases you'll have to modify the code somewhat to make it run. You can also consider using the paid GPU instances of Paperspace Gradient.
You'll find slides and recordings from the accompanying lectures via the course Canvas: https://hvl.instructure.com/courses/17737.