Computer Perception Extended - Winter 2019
Intro
In this module we will explore different applications of ML/AI/DL with a particular focus on design and art. We will first learn how neural networks work with simple code examples, then we will experiment with different techniques of Deep Learning:
- DL applied to Computer Vision (image classification, objects detection, pose estimation…)
- Generative Deep Learning (DeepDream, style transfer, Pix2Pix / CycleGAN…)
- etc…
Once we get a good grasp of the different techniques, we will experiment further by building our own ‘AI’ project. ![]()
Schedule
Week 01: Content - Slides
- Intro: General
- ML / AI / DL: History & Example
- Tools: Keras, TFJS, ML5JS, etc…
Week 02: Content - Slides
- Students intro
- Inner working of a Neural Network
- Training a NN: Intro to tools (Keras, ML5js, Paperspace)
Week 03: Content - Slides
- Machine Learning Project Checklist
- Creating a dataset
Week 04: Content - Slides
- Machine Learning for computer vision (ConvNets)
Week 05
- Testing RunwayML
Week 06 Content - Slides
- Projects dicussion
- Machine Learning for computer vision (ConvNets)
- Generative models: LSTM, RNN
Week 07
- Machine Learning Project Checklist
- Remote GPU
- Deploying your models
- Runway API
- Tensorflow.js
- Python API
Week 08 Content - Slides
- Generative models: Deep Dream, Style Transfer, VAE, GAN.
Tools
System requirement
Modern machine with decent hardware and sufficient space on the hard drive (20+ Gb)
Runway
We are using Runway, a tool which makes deploying ML models easy, as middleware to build the interactive experiments. All participants to the workshop should have received an invitations with some GPU credits
. For those who have not installed it prior to the workshop, we will go through the installation process together.
Docker
Docker is needed in order to deploy some of the models locally. This will give us some flexibility when running experiments. It will also allow us to chain models (at the moment a user can only run one model instance using the provided cloud GPU in Runway). A guide to getting started is available. For linux users, those post install steps could be useful as well.
Docker for Windows requires Microsoft Hyper-V, which is supported only in the Pro, Enterprise or Education editions of Windows. If you don’t have a Pro, Enterprise or Education Windows edition you will not be able to install Docker and you will be able to only run some models using cloud GPU.
Conda
Conda is an open source package management system and environment management system that runs on Windows, macOS and Linux. Conda quickly installs, runs and updates packages and their dependencies. Conda easily creates, saves, loads and switches between environments on your local computer. It was created for Python programs, but it can package and distribute software for any language.
Code editor
If you don’t have a code editor, please install one. Some suggestions (in no particular order)
Web server
We need a simple web server to run the experiments locally. Some suggestions
- If you have node.js/npm installed you can use live-server:
npm install -g live-server - Other recommended options
Tensorflow.js
A JavaScript library with a more advanced set of options, also for the web.
Keras
Keras is a high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano. It was developed with a focus on enabling fast experimentation
ML5.js
ML5.js is a simple JavaScript ML library for the web based on tensorflow.js.
P5.js
p5.js is a high level creative programming framework with an intuitive API. If some of you have used Processing before you should be confortable using p5.js. To get familiar with p5 you can go through this list of tutorials / guides:
Magenta.js
Magenta.js is a collection of TypeScript libraries for doing inference with pre-trained Magenta models. All libraries are published as npm packages.
Samples
TBA
References / Reading list
- History:
- Intro:
- Books:
- Programming languages:
- Learn Python the hard way: to (re)learn your basic in Python
- Google’s Python Class: concise and clear
- CodeAcademy Python: Code Academy Python class
- W3School js: JS simple tutorials
- CodeAcademy JS: Code Academy JS class
- Eloquent JS: Eloquent JS
Repository structure
├── docs
│ ├── _layouts
│ ├── assets (img, etc.. for content)
│ │ ├── css
│ │ └── images
│ └── slides (slides of the presentations)
│ ├── demos
│ └── static (img, etc.. for slides)
├── samples (code samples)
└── utilities (scripts and notes)