lukas/ml-class
Machine learning lessons and teaching projects designed for engineers
repo name | lukas/ml-class |
repo link | https://github.com/lukas/ml-class |
homepage | https://www.youtube.com/channel/UCBp3w4DCEC64FZr4k9ROxig |
language | Jupyter Notebook |
size (curr.) | 139404 kB |
stars (curr.) | 1460 |
created | 2015-09-01 |
license | GNU General Public License v2.0 |
Projects
These are specific bite-sized projects to learn an aspect of deep learning, starting from scratch. There is an associated video around 10 minutes long. I assume no background in ML but some proficiency in python. The projects are in order from beginner to more advanced, but feel free to skip around.
Project | Starter Code | Video |
---|---|---|
Build a simple image classifier for apparel | projects/1-fashion-mnist | Build your first machine learning model |
Improve your image classifier | projects/2-fashion-mnist-mlp | Multi-Layer Perceptrons |
Build a convolutional image classifier | projects/3-fashion-mnist-cnn | Convolutional Neural Networks |
Build a denoising autoencoder | projects/4-fashion-autoencoder | Autoencoders |
Build a text classifier with Scikit-Learn | projects/5-sentiment-analysis | Sentiment Analysis |
Predict the weather with an RNN | projects/6-rnn-timeseries | Recurrent Neural Networks |
Build a text generator | projects/7-text-generator | Text Generation using LSTMs and GRUs |
Build a sentiment classifier on Amazon reviews. | projects/8-text-classification | Text Classification using CNNs |
Hybrid LSTM/CNNs | ||
Seq2seq Models | ||
Transfer Learning | ||
One Shot Learning | ||
Speech Recognition | ||
Data Augmentation | ||
Batch Size and Learning Rate |
More Projects: Benchmarks
If you have done all of the tutorial projects, we have a few more that don’t have associated lessons yet! You can learn by contributing to one of our collaborative Benchmarks.
Project | Link |
---|---|
Japanese handwriting recognition | https://app.wandb.ai/wandb/kmnist/benchmark |
Video prediction with cat GIFs | https://app.wandb.ai/wandb/catz/benchmark |
Drought detection from satellite | https://app.wandb.ai/wandb/droughtwatch/benchmark |
Visual game playing | https://app.wandb.ai/wandb/witness/benchmark |
Image resolution enhancement | https://app.wandb.ai/wandb/superres/benchmark |
Photo colorization | https://app.wandb.ai/wandb/colorizer-applied-dl/benchmark |
Getting Started
- Clone this repository
- Get the python libraries (run ‘pip install -r requirements.txt’)
You don’t need a fancy computer to run most of the examples, but especially to do the later projects you may want to invest in a GPU.
Slides
O’Reilly 9.10.2019 - Using Keras to classify text using LSTMs
Videos
Introduction to Machine Learning
Examples
In my in-person classes, I typically use a lot of the examples in the directory examples. This code is liable to change as I update things.
Reusing the materials
Please feel free to use these materials for your own classes/projects etc. If you do that, I would love it if you sent me a message and let me know what you’re up to.
Windows
Git
Install git if you don’t have it: https://git-scm.com/download/win
Anaconda
Install anaconda
Try running the following from the command prompt:
python --version
You should see something like
Python 3.6.1 :: Anaconda 4.4.0 (64-bit)
If don’t see “Anaconda” in the output, search for “anaconda prompt” from the start menu and enter your command prompt this way. It’s also best to use a virtual environment to keep your packages silo’ed. Do so with:
conda create -n ml-class python=3.6
activate ml-class
Whenever you start a new terminal, you will need to call activate ml-class
.
Clone this github repository
git clone https://github.com/lukas/ml-class.git
cd ml-class
libraries
pip install wandb
conda install -c conda-forge scikit-learn
conda install -c conda-forge tensorflow
conda install -c conda-forge keras
Linux and Mac OS X
Install python
You can download python from https://www.python.org/downloads/. There are more detailed instructions for windows installation at https://www.howtogeek.com/197947/how-to-install-python-on-windows/.
The material should work with python 2 or 3. On Windows, you need to install thre 64 bit version of python 3.5 or 3.6 in order to install tensorflow.
Clone this github repository
git clone https://github.com/lukas/ml-class.git
cd ml-class
If you get an error message here, most likely you don’t have git installed. Go to https://www.atlassian.com/git/tutorials/install-git for intructions on installing git.
Install necessary pip libraries
pip install -r requirements.txt
Reading material for people who haven’t done a lot of programming
If you are uncomfortable opening up a terminal, I strongly recommend doing a quick tutorial before you take this class. Setting up your machine can be painful but once you’re setup you can get a ton out of the class. I recommend getting started ahead of time.
If you’re on Windows I recommend checking out http://thepythonguru.com/.
If you’re on a Mac check out http://www.macworld.co.uk/how-to/mac/coding-with-python-on-mac-3635912/
If you’re on linux, you’re probably already reasonably well setup :).
If you run into trouble, the book Learn Python the Hard Way has installation steps in great detail: https://learnpythonthehardway.org/book/ex0.html. It also has a refresher on using a terminal in the appendix.
Reading material for people who are comfortable with programming, but haven’t done a lot of python
If you are comfortable opening up a terminal but want a python intro/refresher check out https://www.learnpython.org/ for a really nice introduction to Python.
Suggestions for people who have done a lot of programming in python
A lot of people like to follow along with ipython or jupyter notebooks and I think that’s great! It makes data exploration easier. I also really appreciate pull requests to make the code clearer.
If you’ve never used pandas or numpy - they are great tools and I use them heavily in my work and for this class. I assume no knlowedge of pandas and numpy but you may want to do some learning on your own. You can get a quick overview of pandas at http://pandas.pydata.org/pandas-docs/stable/10min.html. There is a great overview of numpy at https://docs.scipy.org/doc/numpy/user/quickstart.html.