CS231n: Convolutional Neural Networks for Visual Recognition

CS231n is a Stanford course on using neural networks to train visual recognition. It lasts 10 weeks and takes students through the process of designing and implementing a neural network that can identify visual classifications of objects.

Created by: Fei-Fei Li

Produced in 2017

Quality Score

Content Quality
Video Quality
Qualified Instructor
Course Pace
Course Depth & Coverage

Overall Score : 92 / 100

Live Chat with CourseDuck's Co-Founder for Help

Need help deciding on a artificial intelligence course? Or looking for more detail on Fei-Fei Li's CS231n: Convolutional Neural Networks for Visual Recognition? Feel free to chat below
Join CourseDuck's Online Learning Discord Community

Course Description

artificial intelligence Awards Best Free Course

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 lecture collection 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. From this lecture collection, students will learn to implement, train and debug their own neural networks and gain a detailed understanding of cutting-edge research in computer vision.



    • This is an elite class taught by an elite university. Completing this course denotes high-level proficiency in neural network design and implementation.
    • Course is available for audit and sit-in.
    • This is an active college course and comes with the professor access that entails.
    • This is an advanced class and not readily accessible. Students need to know calculus and linear algebra in addition to multiple programming languages.
    • Course is just plain hard.
    • Course access is prioritized for the Stanford community.

Instructor Details

Fei-Fei Li

Dr. Fei-Fei Li is a Professor in the Computer Science Department at Stanford University, and Co-Director of Stanford's Human-Centered AI Institute. She served as the Director of Stanford's AI Lab from 2013 to 2018. And during her sabbatical from Stanford from January 2017 to September 2018, she was Vice President at Google and served as Chief Scientist of AI/ML at Google Cloud. Dr. Fei-Fei Li obtained her B.A. degree in physics from Princeton in 1999 with High Honors, and her PhD degree in electrical engineering from California Institute of Technology (Caltech) in 2005. She joined Stanford in 2009 as an assistant professor. Prior to that, she was on faculty at Princeton University (2007-2009) and University of Illinois Urbana-Champaign (2005-2006).



5 total reviews

5 star 4 star 3 star 2 star 1 star
% Complete
% Complete
% Complete
% Complete
% Complete

By Walter Volodenkov on 04/02/2016

In my opinion CS231n is probably the best introductory course into Deep Learning for beginners or specialists who want to refresh their memories on the theory. Even though the name the name implies focus on CV it provides good material of general methods and concepts of Deep Learning. You will benefit from the course even if your area of interests lies outside CV (e.g. text processing or speech recognition). Content specific to CV is introduced gradually in the first half of the course and intensifies in the second half. However, CV related content does not require deep prior knowledge to follow and still can provide valuable information regarding Convolutional Neural Networks or Recurrent Neural Networks. The course includes recent findings in the field and which is especially important for such a rapid changing area of research. Therefore, I recommend the course for everyone interested in entering the field of Deep Learning.

By hamelg on 03/30/2016

You could get a lot out of CS231n just by watching a few lectures on topics of interest. You will gain a deeper understanding of the content and have a chance to implement, train and fine-tune your own neural nets if you go through the assignments, but be prepared to spend a lot of time working your way through. This is a meaty course with over 20 hours of lecture and you may spend several times that amount on the assignments. The 3 assignments are very well made, but they are lengthy, with each having 4 to 5 separate notebooks you have to work through and many functions you have to create in separate files. The assignments provide a healthy amount of guidance and many tests to make sure your code is working so things don't break later on. Still, getting everything to work on your own can be challenging and the forums are only for Stanford students. Try searching online if you get stuck; there is a Reddit sub and various GitHub pages that can help you get through. It's worth completing the notebooks even if you have to copy some code, because you'll get to play around with some interesting applications like visualizing the filters on the top layer of your conv nets and warping images with your own version of DeepDream.CS231n is everything Udacity's Deep Learning should have been. You'd be hard-pressed to find a better course on neural nets anywhere on the web or on a campus. It covers everything you need to understand neural nets, from high level concepts to low level implementation details and the focus on recent advances makes it more relevant than older courses on the same subject.

By Fortyq on 03/06/2015

That is freaking awesome. Doing cs231n right now, and very happy about that.

By phyizal on 01/05/2018

Another resource worth checking for learning deep learning is Stanford's CS231 for deep learning. It is available here : http://cs231n.github.io/. All there examples are in python and numpy and offer a lot more practice with low level details of a Convolution Neural Network.

By Arpan Gupta on 06/28/2016

Stanfords CNN course (cs231n) covers only CNN, RNN and basic neural network concepts, with emphasis on practical implementation. The only prerequisite for taking this course is a basic Machine Learning course along with some Mathematical background. The instructor Andrej Karpathy and his team have made the course self-contained and you will get enough background to start working on deep learning projects on your own.