You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repo contains machine learning notebooks for different tasks and applications. The notebooks are meant to be minimal, easily reusable, and extendable. You are free to use them for educational and research purposes.
This repo supports Codespaces!
Spin up a new instance by clicking on the green "<> Code" button followed by the "Configure and create codespace" option. Make sure to select the dev container config provided with this repo. This setups an environment with all the dependencies installed and ready to go.
Once the codespace is fully running, you can install all the libraries you will need to run the notebooks under the /notebooks folder. Open up a terminal and simply run conda create --name myenv --file spec-file.txt to install all the Python libraries including PyTorch.
Activate your environment conda activate myenv. You might need to run conda init zsh or whatever shell you are using... and then close + reopen terminal.
Finally you can try out if everything is working by opening a notebook such as /notebooks/bow.ipynb.
Getting Started
Name
Description
Notebook
Introduction to Computational Graphs
A basic tutorial to learn about computational graphs
PyTorch Hello World!
Build a simple neural network and train it
A Gentle Introduction to PyTorch
A detailed explanation introducing PyTorch concepts
Counterfactual Explanations
A basic tutorial to learn about counterfactual explanations for explainable AI
Linear Regression from Scratch
An implementation of linear regression from scratch using stochastic gradient descent
Logistic Regression from Scratch
An implementation of logistic regression from scratch
Concise Logistic Regression
Concise implementation of logistic regression model for binary image classification.
First Neural Network - Image Classifier
Build a minimal image classifier using MNIST
Neural Network from Scratch
An implementation of simple neural network from scratch
Introduction to GNNs
Introduction to Graph Neural Networks. Applies basic GCN to Cora dataset for node classification.
NLP
Name
Description
Notebook
Bag of Words Text Classifier
Build a simple bag of words text classifier.
Continuous Bag of Words (CBOW) Text Classifier
Build a continuous bag of words text classifier.
Deep Continuous Bag of Words (Deep CBOW) Text Classifier
Build a deep continuous bag of words text classifier.
Text Data Augmentation
An introduction to the most commonly used data augmentation techniques for text and their implementation
Emotion Classification with Fine-tuned BERT
Emotion classification using fine-tuned BERT model
Transformers
Name
Description
Notebook
Text Classification using Transformer
An implementation of Attention Mechanism and Positional Embeddings on a text classification task
Neural Machine Translation using Transformer
An implementation of Transformer to translate human readable dates in any format to YYYY-MM-DD format.
Feature Tokenizer Transformer
An implementation of Feature Tokenizer Transformer on a classification task
Named Entity Recognition using Transformer
An implementation of Transformer to perform token classification and identify species in PubMed abstracts
Extractive Question Answering using Transformer
An implementation of Transformer to perform extractive question answering
Computer Vision
Name
Description
Notebook
Siamese Network
An implementation of Siamese Network for finding Image Similarity
Variational Auto Encoder
An implementation of Variational Auto Encoder to generate Augmentations for MNIST Handwritten Digits
Object Detection using Sliding Window and Image Pyramid
A basic object detection implementation using sliding window and image pyramid on top of an image classifier
Object Detection using Selective Search
A basic object detection implementation using selective search on top of an image classifier
Generative Adversarial Network
Name
Description
Notebook
Deep Convolutional GAN
An Implementation of Deep Convolutional GAN to generate MNIST digits
Wasserstein GAN with Gradient Penalty
An Implementation of Wasserstein GAN with Gradient Penalty to generate MNIST digits
Conditional GAN
An Implementation of Conditional GAN to generate MNIST digits
Parameter Efficient Fine-tuning
Name
Description
Notebook
LoRA BERT
An Implementation of BERT Finetuning using LoRA
LoRA BERT NER
An Implementation of BERT Finetuning using LoRA for token classification task
LoRA T5
An Implementation of T5 Finetuning using LoRA
LoRA TinyLlama 1.1B
An Implementation of TinyLlama 1.1B Finetuning using LoRA
QLoRA TinyLlama 1.1B
An Implementation of TinyLlama 1.1B Finetuning using QLoRA
QLoRA Mistral 7B
An Implementation of Mistral 7B Finetuning using QLoRA
If you find any bugs or have any questions regarding these notebooks, please open an issue. We will address it as soon as we can.