IMPORTANT INFORMATION
This bootcamp has been replaced with a new bootcamp starting 2023-09-06 . This bootcamp was valid for S23 (summer 2023 term) and a few terms before that though was updated to the below newer bootcamp.
If you have not started the Autonomy bootcamp, please go to the new Autonomy bootcamp: Autonomy Bootcamp - F23
If you started this bootcamp before this date, then you have until the end of 2023-09-13 to complete this old bootcamp. After that, only submissions for the new bootcamp will be accepted.
Alternatively, you can start working on the new bootcamp now if you want.
Introduction
WARG members often find that joining this team requires more knowledge and has a larger learning curve than other student teams. Once members have acquired this knowledge they gain a lot of confidence and are able to make large contributions to the team. Therefore, this Bootcamp is designed as a first task to be completed to both help you through the learning curve and to familiarize you with our system and conventions. The hope is that once you complete this Bootcamp you will feel confident and hopefully have acquired enough skills such that you are ready to take on tasks with the main software project! Just a quick disclaimer, this Bootcamp will help accelerate and minimize the learning curve but it will not give you all knowledge. The remaining knowledge will be acquired through completing other tasks with the team.
Objectives
Learn the basics of GitHub
Gain familiarity with Python and PyTorch
Understand how neural networks work and relevant design decisions
Outline
In this bootcamp you will create an image classifier using Python and PyTorch. The classifier will be trained on the CIFAR-10 Dataset .
Action
- Message in #autonomy-bootcamp your name, your program, and that you’re getting started on the bootcamp
- Change your discord nickname to your real name
- Follow action items below
This is so that we can assign you a mentor to whom you can ask questions about the bootcamp and general WARG life!
Github Repo: https://github.com/UWARG/autonomy-bootcamp
1. Fork and Setup Local Project
Forks can be created using the fork button in the top right of the GitHub Interface (you need to be signed into a GitHub account).
Clone your fork with either:
git clone git@github.com:YOUR_USERNAME_HERE/autonomy-bootcamp.git
if you want to use ssh or
git clone https://github.com/YOUR_USERNAME_HERE/autonomy-bootcamp.git
for https
Next you will need to install Python 3.8 and pip if they are not already installed. To check if they are installed, open a terminal and run:
python3 --version
and
pip3 --version
If they are not installed, they can be found here:
Create and activate a virtual environment (see Virtual Environment section): Python Repository
Install the required packages:
pip install torch torchvision pip install numpy scipy matplotlib ipython jupyter pandas sympy nose
2. Requirements
Any network topology may be used for this bootcamp. In addition to the Python script, include a plot of both training and validation losses over epochs (matplotlib.pyplot can be used for this). The code should:
Follow our style guide: Python Style Guide
Have comments for each process explaining what is occurring at that step and why
Actually train
Accuracy should be at least 0.7
3. Submit
To submit your bootcamp project you should create a pull request and put the link to your pr in #autonomy-bootcamp
channel. Note that this does not mean you are done, we will review your pull request and give you feedback and you will be expected to update it so that it meets all requirements.
When submitting, please include an image of the plots that you produced, as well as a text file of your terminal output (or a screenshot of your final accuracy).
Once your pull request has been merged you are ready to work on the Autonomy project. See
Autonomy Onboarding for onboarding instructions.
Resources
Python
PythonProgramming.net has tutorials for both python and a variety of machine learning processes. The official documentation for both Python and Matplotlib may also be useful.
PyTorch
PyTorch has the best Starting guide and Documentation! You can almost learn everything there, and ofc our old friend Stack Overflow
PyTorch for Deep Learning is a great resource as well!
TensorFlow and Neural Networks (legacy if you want to learn about TensorFlow as well)
The TensorFlow website has documentation for all of its functions as well as a number of tutorials. Two useful books are Deep Learning with Python and Deep Learning. Deep Learning with Python also has example code found here.