← Open Source
dair-ai

ML-Notebooks

:fire: Machine Learning Notebooks

TutorialsML/AI fundamentalsJupyter Notebook
Open on GitHub
Momentum
+0stars in 24 hours0.0%
3.44k
Stars
539
Forks
+2
This week
5
Contributors
Created 2022-03-26 · Updated 2026-10-02 · #6444 today
Top developers
README

🐙 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](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/ritvik1909/text-classification-attention)

Neural Machine Translation using Transformer

An implementation of Transformer to translate human readable dates in any format to YYYY-MM-DD format.

 [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/ritvik1909/neural-machine-translation-attention)

Feature Tokenizer Transformer

An implementation of Feature Tokenizer Transformer on a classification task

 [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/ritvik1909/feature-tokenizer-transformer/)

Named Entity Recognition using Transformer

An implementation of Transformer to perform token classification and identify species in PubMed abstracts

 [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/ritvik1909/named-entity-recognition-attention)

Extractive Question Answering using Transformer

An implementation of Transformer to perform extractive question answering

 [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/ritvik1909/question-answering-attention/)

Computer Vision

Name

Description

Notebook

Siamese Network

An implementation of Siamese Network for finding Image Similarity

 [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://kaggle.com/code/ritvik1909/siamese-network)

Variational Auto Encoder

An implementation of Variational Auto Encoder to generate Augmentations for MNIST Handwritten Digits

 [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/ritvik1909/variational-auto-encoder)

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](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/ritvik1909/object-detection-sliding-window)

Object Detection using Selective Search

A basic object detection implementation using selective search on top of an image classifier

 [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/ritvik1909/object-detection-selective-search)

Generative Adversarial Network

Name

Description

Notebook

Deep Convolutional GAN

An Implementation of Deep Convolutional GAN to generate MNIST digits

 [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/ritvik1909/deep-convolutional-gan/)

Wasserstein GAN with Gradient Penalty

An Implementation of Wasserstein GAN with Gradient Penalty to generate MNIST digits

 [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/ritvik1909/wasserstein-gan-with-gradient-penalty/)

Conditional GAN

An Implementation of Conditional GAN to generate MNIST digits

 [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/ritvik1909/conditional-gan/)

Parameter Efficient Fine-tuning

Name

Description

Notebook

LoRA BERT

An Implementation of BERT Finetuning using LoRA

 [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/ritvik1909/lora-bert/)

LoRA BERT NER

An Implementation of BERT Finetuning using LoRA for token classification task

 [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/ritvik1909/lora-bert-ner/)

LoRA T5

An Implementation of T5 Finetuning using LoRA

 [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/ritvik1909/lora-t5/)

LoRA TinyLlama 1.1B

An Implementation of TinyLlama 1.1B Finetuning using LoRA

 [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/ritvik1909/lora-tinyllama-1-1b/)

QLoRA TinyLlama 1.1B

An Implementation of TinyLlama 1.1B Finetuning using QLoRA

 [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/ritvik1909/qlora-tinyllama-1-1b/)

QLoRA Mistral 7B

An Implementation of Mistral 7B Finetuning using QLoRA

 [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/ritvik1909/qlora-mistral-7b/)

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}
}