Giter Site home page Giter Site logo

yirusun / stanford-cs231n-2023 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jaskanwal/stanford-cs231n-2023

0.0 0.0 0.0 17.87 MB

Homework assignments for the Stanford CS 231n (Deep Learning for Computer Vision) class offered in Spring 2023.

Shell 0.03% Python 2.09% Jupyter Notebook 97.86% Cython 0.03%

stanford-cs231n-2023's Introduction

CS 231n: Deep Learning for Computer Vision

This repo documents my solutions for assignments of the Stanford CS 231n (Deep Learning for Computer Vision - 2023) class. Setup details and the assignment descriptions can be found on the course website. Video lectures covering most of the course content can be found here:

A brief summary of key concepts covered in different assignments is summarized below.

This assignment provides experience on multi-class image classification using kNN, SVM, Softmax and Fully connected neural networks using CIFAR-10 dataset. Losses and gradients for different models are derivered and are implemented using Numpy in a vectorized manner. Following are the key goals of this assignment:

  • 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 as opposed to raw pixels, e.g. color histograms, Histogram of Oriented Gradient (HOG) features, etc.

Following are the key goals of this assignment:

  • Understand Neural Networks and how they are arranged in layered architectures.
  • Understand and be able to implement (vectorized) backpropagation for fully connected, batch norm, layer norm, dropout, among other, commonly used layers.
  • Implement various update rules (SGD, RMSProp, Adam, etc.) used to optimize Neural Networks.
  • Implement Batch Normalization and Layer Normalization for training deep networks.
  • Implement Dropout to regularize networks.
  • Understand the architecture of Convolutional Neural Networks and get practice with training them.
  • Gain experience with a major deep learning framework, PyTorch.

The linked blog post was found to be very useful for understanding the backpropogarion of Batch norm and also motivated the implementation of layer norm and spatial group norm layers in this assignment.

The goals of this assignment are as follows:

  • Visualizing network layers and understanding key image attributes resulting in model predictions in a specific class.
    • Experimentation by making Saliency Maps, generating fooling images to increase changes of model predicting a target class and visualizing different classes.

Saliency Maps

  • Understand and implement RNN, LSTM, and Transformer networks. Combine them with CNN networks for image captioning.
  • Understand how to train and implement a Generative Adversarial Network (GAN) to produce images that resemble samples from a dataset.

Vanilla, Least Square, Deep Convolutional GAN outputs on MNIST dataset

  • Understand how to leverage self-supervised learning techniques to help with image classification task by implementing SimCLR algorithm.

SimCLR algorithm implemented in this assignment

stanford-cs231n-2023's People

Contributors

jaskanwal avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.