This repository contains documentation, resources, and code for the Introduction to
Machine Learning with PyTorch session designed and delivered by Jack Atkinson (@jatkinson1000)
and Jim Denholm (@jdenholm) of ICCS.
The material has been delivered at both the ICCS
and NCAS summer schools.
All materials, including slides and videos, are available such that individuals can cover the course in their own time.
To get the most out of the session we assume a basic understanding in a few areas and for you to do some preparation in advance. Expected knowledge is outlined below, along with resources for reading if you are unfamiliar.
Basic mathematics knowledge:
- calculus - differentiating a function
- matrix algebra - matrix multiplication and representing data as a matrix
- regression - fitting a function to data
Neural Networks:
- Awareness of high-level concepts
- We recommend the video series by 3Blue1Brown, at least chapters 1-3.
The course will be taught in python using pyTorch. Whilst no prior knowledge of pyTorch is expected we assume users are familiar with the basics of Python3. This includes:
- Basic mathematical operations
- Writing and running scripts/programs
- Writing and using functions
- The concept of object orientation (that an object, e.g. a dataset, can have associated functions/methods associated with it.)
- Basic use of the following libraries:
numpy
for mathematical and array operationsmatplotlib
for ploting and visualisationpandas
for storing and accessing tabular data
- Familiarity with the concept of a jupyter notebook
You will be expected to know how to
- clone and/or fork a repository,
- commit, and
- push.
The workshop from the 2022 ICCS Summer School should provide the neccessary knowledge.
In preparation for the course please ensure that your computer contains the following:
- A text editor - e.g. vim/neovim, gedit, vscode, sublimetext etc. to open and edit code files
- A terminal emulator - e.g. GNOME Terminal, kitty, Windows Terminal (windows only), iTerm (mac only)
- python virtual environment (see Installation and setup)
Note for Windows users: We have linked suitable applications for windows in the above lists. However, you may wish to refer to Windows' getting-started with python information for a complete guide to getting set up on a Windows system.
If you require assistance or further information with any of these please reach out to us before a training sesison.
Navigate to the location you want to install this repository on your system and clone via https by running:
git clone https://github.com/Cambridge-ICCS/ml-training-material.git
This will create a directory ml-training-material/
with the contents of this repository.
Please note that if you have a GitHub account and want to push any work you might do back up for future reference we suggest you fork the repository and then clone your fork.
Before installing any Python packages it is important to first create a Python virtual environment. This provides an insulated environment inside which we can install Python packages without polluting the operating systems's Python environment.
If you have never done this before don't worry: it is very good practise, especially when you are working on multiple projects, and easy to do.
python3 -m venv MLvenv
This will create a directory called MLvenv
containing software for the virtual environment.
To activate the environment run:
source MLvenv/bin/activate
You can now work on python from within this isolated environment, installing packages as you wish without disturbing your base system environment.
When you have finished working on this project run:
deactivate
to deactivate the venv and return to the system python environment.
You can always boot back into the venv as you left it by running the activate command again.
It is now time to install the dependencies for our code, for example PyTorch.
The project has been packaged with a pyproject.toml
so can be installed in one go.
From within the root directory in a active virtual environment run:
pip install .
This will download the relevant dependencies into the venv as well as setting up the datasets that we will be using in the course.
The slides for this workshop can be viewed on the ICCS Summer School Website:
The slides are generated from markdown using quarto. The raw markdown and html files can be found in the slides directory.
The exercises for the course can be found in the exercises directory.
These take the form of partially complete jupyter notebooks.
Videos from past workshops may be useful if you are following along independently.
These can be found on the ICCS youtube channel
under the 2023 Summer School materials.
The code materials in this project are licensed under the MIT License.
The teaching materials are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.