Skip to content
/ CS231n Public

Stanford-CS231n Convolutional Neural Network for Visual Recognition Course Work

Notifications You must be signed in to change notification settings

oflucas/CS231n

Repository files navigation

Stanford CS231n CNN for Visual Recognition

Solution to 2016 & 2017 Course Assignments

This course is a deep learning treasure. It guides you to implement everything (machine learning models, CNN layers, backpropagation, optimizers, etc.) by hand with only lib of numpy. Though the process of implementing vectorized batch normalization backprop or convolutional filters are painful, it lays a solid fundation on one's understanding in deep learning. The visulizations (saliency map, class image generation) and applications (style transfer) help gain insight. Implementing more powerful models in Tensorflow/PyTorch is a good entry point to start building something fun.

Assignment 1 - Put Together Image Classification

Assignment 2 - Train Deep Neural Networks

  • implement Fully Connected Nets
    • vectorized backpropagation
    • modular layer design for arbitrary depth
    • implement optimization solver with SGD/Momentum/RMSProp/Adam update rules
  • implement Batch Normalization to stably train deep networks
  • implement Dropout to regularize networks
  • implement Convolutional Nets on CIFAR-10
    • implement convolutional layers
    • visualize filters and understand feature extraction, e.g. first layer filters are excited by pattern:

    - effectively cross-validate and find the best hyperparameters - 74% test classification accuracy is achieved by a CNN with only 4 layers on CIFAR-10 dataset, a test sample:

  • implement TensorFlow CNN on CIFAR-10

Assignment 3 - RNNs, GANs, & Image Gradients Applications

Many thanks to CS231n instructors and TAs for creating such a meaty course.

About

Stanford-CS231n Convolutional Neural Network for Visual Recognition Course Work

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages