*This network is running live in your browser
The Convolutional Neural Network in this example is classifying images live in your browser using Javascript, at about 10 milliseconds per image. It takes an input image and transforms it through a series of functions into class probabilities at the end. The transformed representations in this visualization can be losely thought of as the activations of the neurons along the way. The parameters of this function are learned with backpropagation on a dataset of (image, label) pairs. This particular network is classifying CIFAR-10 images into one of 10 classes and was trained with ConvNetJS. Its exact architecture is [conv-relu-conv-relu-pool]x3-fc-softmax, for a total of 17 layers and 7000 parameters. It uses 3x3 convolutions and 2x2 pooling regions. By the end of the class, you will know exactly what all these numbers mean.

Course Description

Computer Vision has become ubiquitous in our society, with applications in search, image understanding, apps, mapping, medicine, drones, and self-driving cars. Core to many of these applications are visual recognition tasks such as image classification, localization and detection. Recent developments in neural network (aka “deep learning”) approaches have greatly advanced the performance of these state-of-the-art visual recognition systems. This course is a deep dive into details of the deep learning architectures with a focus on learning end-to-end models for these tasks, particularly image classification. During the 10-week course, students will learn to implement, train and debug their own neural networks and gain a detailed understanding of cutting-edge research in computer vision. The final assignment will involve training a multi-million parameter convolutional neural network and applying it on the largest image classification dataset (ImageNet). We will focus on teaching how to set up the problem of image recognition, the learning algorithms (e.g. backpropagation), practical engineering tricks for training and fine-tuning the networks and guide the students through hands-on assignments and a final course project. Much of the background and materials of this course will be drawn from the ImageNet Challenge.

Teaching Assistants

Ben Poole

Class Time and Location

Winter quater (January - March, 2015).
Lecture: Monday, Wednesday 2:15-3:30
Bishop Auditorium in Lathrop Building (map)

Office Hours

Fei-Fei: Wed 3:30 - 4:30, Gates 246
(for research and project discussions)
Andrej: Mon 4:00 - 5:00, Gates 300
Yuke: Tue 5:00 - 7:00, Gates 259
Justin: Thu 5:00 - 7:00, Gates 259
Brett: Wed 5:00 - 7:00, Gates 259
Ben: Fri 1:30 - 3:30pm, Gates B28

Grading Policy

Assignment #1: 15%
Assignment #2: 15%
Assignment #3: 15%
Midterm: 15%
Final Project: 40%

Course Discussions

Stanford students: Piazza
Online discussions for non-Stanford students: Reddit on r/cs231n
Our Twitter account: @cs231n

Assignment Details

See the Assignment Page for more details on how to hand in your assignments.

Course Project Details

See the Project Page for more details on the course project.



Is this the first time this class is offered?
Yes, this is an entirely new class designed to introduce students to deep learning in context of Computer Vision. We will place a particular emphasis on Convolutional Neural Networks, which are a class of deep learning models that have recently given dramatic improvements in various visual recognition tasks. You can read more about it in this recent New York Times article.
Can I follow along from the outside?
We'd be happy if you join us! We plan to make the course materials widely available: The assignments, course notes and slides will be available online. We plan on providing videos but this is currently not done. We hope to use this class to develop a comprehensive resource on this topic. We won't be able to give you course credit.
Can I take this course on credit/no cred basis?
Yes. Credit will be given to those who would have otherwise earned a C- or above.
Can I audit or sit in?
In general we are very open to sitting-in guests if you are a member of the Stanford community (registered student, staff, and/or faculty). Out of courtesy, we would appreciate that you first email us or talk to the instructor after the first class you attend.
Can I work in groups for the Final Project?
Yes, in groups of up to two people.
I have a question about the class. What is the best way to reach the course staff?
Stanford students please use an internal class forum on Piazza so that other students may benefit from your questions and our answers. If you have a personal matter, email us at the class mailing list cs231n-winter1415-staff@lists.stanford.edu.
Can I combine the Final Project with another course?
Yes, you may. There are a couple of courses concurrently offered with CS231n that are natural choices, such as CS231a (Computer Vision, by Prof. Silvio Savarese) and CS228 (Graphical Models, by Prof. Stefano Ermon). If you are taking some combination of these classes, please speak to the instructors to receive permission to combine the Final Project assignments.