/stanford_cs231n_2019

Solutions and comments to assignments for 2019 Stanford's course on convolutional neural networks

Primary LanguageJupyter Notebook

Stanford's course cs231n "Convolutional Neural Networks for Visual Recognition" is one of the best ways to dive into Deep Learning in general, in particular, into Computer Vision. If you plan to excel in another subfiled of DL (say, NLP or Reinforcement Learning), we still recommend that you start with cs231n, because it gives you fundamental understanding and hands-on skills. Beware, the course is very challenging!

To motivate you to work as hard as Stanford's students, here are actual applications that you'll implement in A3 - style transfer and class visualization.

alt-text-1 alt-text-2

For the first one (on the left), you take a base image and a style image and "apply the style" to the base image (reminds of Prisma and Artisto, right?). The second example (on the right) is a random image, gradually perturbed in a way that a neural network classifies it more and more confidently as a gorilla. DIY Depp Dream, isn't it? And it's all math under the hood, it's cool to figure out how it all works. You'll get to this understanding if you pass cs231n, it'll be hard but at the same time an exciting journey from efficient kNN implementation to these fascinating applications. If you think that these two application are too eye-cathy (yes they are), then take a look at a picture above - a Convolutional Neural Network classifying images. That's the basics of how machines can "see" the world. The course will teach you both how to build such an algorithm from scratch and how to use modern tools to run State-of-the-Art models for your tasks.

Assignment 1

Assignment 2

Assignment 3

Passing cs231n together within the OpenDataScience community

Next start - from 02.12.2019 till 08.03.2020

Main links

Assignments

There are 3 big and tough assignments in this course. The biggest challenge is to actually do these assignments on your own because solutions are easily accessible anywhere on the Internet and are even shared by me in this repo.

Competitions & projects

In the original course they've got projects. You can also complete one, but actually, lectures and assignments is already a good workload. So my advice is to first cope with assignments and then you can go on with pet projects or Kaggle.

GPUs For some parts of the 3rd assignment, you'll need GPUs. Kaggle Kernels or Google Colaboratory will do.

Plan