Deep-Learning-Computer-Vision
Deep-Learning-Computer-Vision copied to clipboard
Personal implementation for Stanford CS231n / Umich: Deep Learning for Computer Vision (by Justin Johnson)
1. PyTorch & KNN
The goals of this assignment are as follows:
- Develop proficiency with PyTorch tensors
- Gain experience using notebooks on Google Colab
- 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
- Implement and apply a k-Nearest Neighbor (kNN) classifier
Notebooks:
pytorch101.ipynb
kNN.ipynb
2. SVM & Neural Network
The goals of this assignment are as follows:
- Implement and apply a Multiclass Support Vector Machine (SVM) classifier
- Implement and apply a Two layer neural network classifier
- Understand the differences and tradeoffs between these classifiers
- Practice implementing vectorized gradient code by checking against naive implementations, and using numeric gradient checking
Notebooks:
linear_classifier.ipynb
two_layer_net.ipynb
3. Backpropagation & BN &Dropout
The goals of this assignment are as follows:
- Understand Neural Networks and how they are arranged in layered architectures
- Understand and be able to implement modular backpropagation
- Implement various update rules used to optimize Neural Networks
- Implement Batch Normalization for training deep networks
- Implement Dropout to regularize networks
- Understand the architecture of Convolutional Neural Networks and get practice with training these models on data
Notebooks:
fully_connected_networks.ipynb
convolutional_networks.ipynb
4. PyTorch Modules & RNN & Image Captioning & Attention & Style Transfer
The goals of this assignment are:
- Understand how autograd can help automate gradient computation
- See how to use PyTorch Modules to build up complex neural network architectures
- Understand and implement recurrent neural networks
- See how recurrent neural networks can be used for image captioning
- Understand how to augment recurrent neural networks with attention
- Use image gradients to synthesize saliency maps, adversarial examples, and perform class visualizations
- Combine content and style losses to perform artistic style transfer
Notebooks:
pytorch_autograd_and_nn.ipynb
rnn_lstm_attention_captioning.ipynb
network_visualization.ipynb
style_transfer.ipynb
5. Single/Two Stage Object Detection
The goals of this assignment are:
- Learn about the object detection pipeline
- Understand how to build an anchor-based single-stage object detectors
- Understand how to build a two-stage object detector that combines a region proposal network with a recognition network
Notebooks:
single_stage_detector_yolo.ipynb
two_stage_detector_faster_rcnn.ipynb
6. Generative Adversarial Networks (GANs)
The goals of this assignment are:
- Understand Generative Adversarial Networks (GANs)
- Implement Vanila GAN, LS-GAN, DC-GAN
Notebooks:
generative_adversarial_networks.ipynb
Reference:
EECS 498-007 / 598-005 Deep Learning for Computer Vision Fall 2019