/ML-Notebooks

:fire: Machine Learning Notebooks

Primary LanguageJupyter NotebookApache License 2.0Apache-2.0

🐙 Machine Learning Notebooks

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
Kaggle
Neural Machine Translation using Transformer An implementation of Transformer to translate human readable dates in any format to YYYY-MM-DD format.
Kaggle
Feature Tokenizer Transformer An implementation of Feature Tokenizer Transformer on a classification task
Kaggle
Named Entity Recognition using Transformer An implementation of Transformer to perform token classification and identify species in PubMed abstracts
Kaggle
Extractive Question Answering using Transformer An implementation of Transformer to perform extractive question answering
Kaggle

Computer Vision

Name Description Notebook
Siamese Network An implementation of Siamese Network for finding Image Similarity
Kaggle
Variational Auto Encoder An implementation of Variational Auto Encoder to generate Augmentations for MNIST Handwritten Digits
Kaggle
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
Kaggle
Object Detection using Selective Search A basic object detection implementation using selective search on top of an image classifier
Kaggle

Generative Adversarial Network

Name Description Notebook
Deep Convolutional GAN An Implementation of Deep Convolutional GAN to generate MNIST digits
Kaggle
Wasserstein GAN with Gradient Penalty An Implementation of Wasserstein GAN with Gradient Penalty to generate MNIST digits
Kaggle
Conditional GAN An Implementation of Conditional GAN to generate MNIST digits
Kaggle

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.

Reach out on Twitter if you have any questions.

Please cite the following if you use the code examples in your research:

@misc{saravia2022ml,
  title={ML Notebooks},
  author={Saravia, Elvis and Rastogi, Ritvik},
  journal={https://github.com/dair-ai/ML-Notebooks},
  year={2022}
}