CS231n
PyTorch/Tensorflow solutions for Stanford's CS231n: "CNNs for Visual Recognition"
Install / Use
/learn @v-iashin/CS231nREADME
CS231n
CS231n: "Convolutional Neural Networks for Visual Recognition"
My solutions to the assignments to the state-of-the-art course CS231n "Convolutional Neural Networks for Visual Recognition". It was hard, but it is cool.
Framework
During the course, there was a choice between two frameworks: TensorFlow and PyTorch. ~~I decided to follow the TensorFlow track. Therefore no solution is provided for PyTorch. However, it might occur someday in the future.~~ Now, the solutions are provided for both frameworks.
Content of the Assignments (Spring 2017)
There were three assignments during the Spring 2017 version of the course. They all are completed.
- understand the basic Image Classification pipeline and the data-driven approach (train/predict stages)
- understand the train/val/test splits and the use of validation data for hyperparameter tuning.
- develop proficiency in writing efficient vectorized code with numpy
- implement and apply a k-Nearest Neighbor (kNN) classifier
- implement and apply a Multiclass Support Vector Machine (SVM) classifier
- implement and apply a Softmax classifier
- implement and apply a Two layer neural network classifier
- understand the differences and tradeoffs between these classifiers
- get a basic understanding of performance improvements from using higher-level representations than raw pixels (e.g. color histograms, Histogram of Gradient (HOG) features)
- understand Neural Networks and how they are arranged in layered architectures
- understand and be able to implement (vectorized) backpropagation
- implement various update rules used to optimize Neural Networks
- implement batch normalization for training deep networks
- implement dropout to regularize networks
- effectively cross-validate and find the best hyperparameters for Neural Network architecture
- understand the architecture of Convolutional Neural Networks and train gain experience with training these models on data
- understand the architecture of recurrent neural networks (RNNs) and how they operate on sequences by sharing weights over time
- understand and implement both Vanilla RNNs and Long-Short Term Memory (LSTM) RNNs
- understand how to sample from an RNN language model at test-time
- understand how to combine convolutional neural nets and recurrent nets to implement an image captioning system
- understand how a trained convolutional network can be used to compute gradients with respect to the input image
- implement and different applications of image gradients, including saliency maps, fooling images, class visualizations
- understand and implement style transfer
- understand how to train and implement a generative adversarial network (GAN) to produce images that look like a dataset
Related Skills
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
flutter-tutor
Flutter Learning Tutor Guide You are a friendly computer science tutor specializing in Flutter development. Your role is to guide the student through learning Flutter step by step, not to provide d
groundhog
398Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
last30days-skill
16.9kAI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary
