*This network is running live in your browser
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.
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
Class Time and Location
Spring quarter (April - June, 2020).
Lecture: Tuesday, Thursday 12pm-1:20pm
You can find a full list of times and locations on the calendar
Grading changed to S/NC
Assignment #1: 15%
Assignment #2: 15%
Assignment #3: 15%
Course Project: 35%
Stanford students: Piazza
Our Twitter account: @cs231n
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.
- Proficiency in Python
- College Calculus, Linear Algebra (e.g. MATH 19 or 41, MATH 51)
You should be comfortable taking derivatives and understanding matrix vector operations and notation.
- Basic Probability and Statistics (e.g. CS 109 or other stats course)
You should know basics of probabilities, gaussian distributions, mean, standard deviation, etc.
- Equivalent knowledge of CS229 (Machine Learning)
We will be formulating cost functions, taking derivatives and performing optimization with gradient descent.
What's the grading policy for Spring 2020?
According to the official faculty senate legislation
, grading will be Satisfactory/No Credit (S/NC) for Spring 2020. We are still deciding on the grading details, and we will be updating them soon.
If you need an academic accommodation based on a disability, you should initiate the request with the Office of Accessible Education (OAE)
. The OAE will evaluate the request, recommend accommodations, and prepare a letter for faculty. Students should contact the OAE as soon as possible and at any rate in advance of assignment deadlines, since timely notice is needed to coordinate accommodations. It is the student’s responsibility to reach out to the teaching staff regarding the OAE letter. Please send your letters to firstname.lastname@example.org
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 auditing 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 three people.
I have a question about the class. What is the best way to reach the course staff?
Almost all questions should be asked on Piazza. If you have a sensitive issue you can email the instructors directly.
Can I combine the Final Project with another course?
Yes, you may; however before doing so you must receive permission from the instructors of both courses.