A collection of various deep learning architectures, models, and tips for TensorFlow and PyTorch in Jupyter Notebooks.
Traditional Machine Learning
| Title |
Dataset |
Description |
Notebooks |
| Perceptron |
2D toy data |
TBD |
 |
| Logistic Regression |
2D toy data |
TBD |
 |
| Softmax Regression (Multinomial Logistic Regression) |
MNIST |
TBD |
 |
| Softmax Regression with MLxtend's plot_decision_regions on Iris |
Iris |
TBD |
 |
| Title |
Dataset |
Description |
Notebooks |
| Multilayer Perceptron |
MNIST |
TBD |
 |
| Multilayer Perceptron with Dropout |
MNIST |
TBD |
 |
| Multilayer Perceptron with Batch Normalization |
MNIST |
TBD |
 |
| Multilayer Perceptron with Backpropagation from Scratch |
MNIST |
TBD |
 |
Convolutional Neural Networks
| Title |
Dataset |
Description |
Notebooks |
| Convolutional Neural Network |
TBD |
TBD |
 |
| CNN with He Initialization |
TBD |
TBD |
 |
| Title |
Dataset |
Description |
Notebooks |
| Replacing Fully-Connected by Equivalent Convolutional Layers |
TBD |
TBD |
 |
| Title |
Dataset |
Description |
Notebooks |
| AlexNet Trained on CIFAR-10 |
TBD |
TBD |
 |
| AlexNet with Grouped Convolutions Trained on CIFAR-10 |
TBD |
TBD |
 |
| Title |
Description |
Daset |
Notebooks |
| DenseNet-121 Digit Classifier Trained on MNIST |
TBD |
TBD |
 |
| DenseNet-121 Image Classifier Trained on CIFAR-10 |
TBD |
TBD |
 |
| Title |
Dataset |
Description |
Notebooks |
| "All Convolutionl Net" -- A Fully Convolutional Neural Network |
TBD |
TBD |
 |
| Title |
Dataset |
Description |
Notebooks |
| LeNet-5 on MNIST |
TBD |
TBD |
 |
| LeNet-5 on CIFAR-10 |
TBD |
TBD |
 |
| LeNet-5 on QuickDraw |
TBD |
TBD |
 |
| Title |
Dataset |
Description |
Notebooks |
| MobileNet-v2 on Cifar-10 |
TBD |
TBD |
 |
| MobileNet-v3 small on Cifar-10 |
TBD |
TBD |
 |
| MobileNet-v3 large on Cifar-10 |
TBD |
TBD |
 |
| MobileNet-v3 large on MNIST via Embetter |
TBD |
TBD |
 |
| Title |
Dataset |
Description |
Notebooks |
| Network in Network Trained on CIFAR-10 |
TBD |
TBD |
 |
| Title |
Dataset |
Description |
Notebooks |
| Convolutional Neural Network VGG-16 Trained on CIFAR-10 |
TBD |
TBD |
 |
| VGG-16 Smile Classifier |
CelebA |
TBD |
 |
| VGG-16 Dogs vs Cats Classifier |
TBD |
TBD |
 |
| Convolutional Neural Network VGG-19 |
TBD |
TBD |
 |
| Title |
Dataset |
Description |
Notebooks |
| ResNet and Residual Blocks |
MNIST |
TBD |
 |
| ResNet-18 Digit Classifier |
MNIST |
TBD |
 |
| ResNet-18 Gender Classifier |
CelebA |
TBD |
 |
| ResNet-34 Digit Classifier |
MNIST |
TBD |
 |
| ResNet-34 Object Classifier |
QuickDraw |
TBD |
 |
| ResNet-34 Gender Classifier |
CelebA |
TBD |
 |
| ResNet-50 Digit Classifier |
MNIST |
TBD |
 |
| ResNet-50 Gender Classifier |
CelebA |
TBD |
 |
| ResNet-101 Gender Classifier |
CelebA |
TBD |
 |
| ResNet-101 |
CIFAR-10 |
TBD |
 |
| ResNet-152 Gender Classifier |
CelebA |
TBD |
 |
| Title |
Dataset |
Description |
Notebooks |
| Multilabel DistilBERT |
Jigsaw Toxic Comment Challenge |
DistilBERT classifier fine-tuning |
 |
| DistilBERT as feature extractor |
IMDB movie review |
DistilBERT classifier with sklearn random forest and logistic regression |
 |
DistilBERT as feature extractor using embetter |
IMDB movie review |
DistilBERT classifier with sklearn random forest and logistic regression using the scikit-learn embetter library |
 |
| Fine-tune DistilBERT I |
IMDB movie review |
Fine-tune only the last 2 layers of DistilBERT classifier |
 |
| Fine-tune DistilBERT II |
IMDB movie review |
Fine-tune the whole DistilBERT classifier |
 |
Ordinal Regression and Deep Learning
Please note that the following notebooks below provide reference implementations to use the respective methods. They are not performance benchmarks.
| Title |
Dataset |
Description |
Notebooks |
| BatchNorm before and after Activation for Network-in-Network CIFAR-10 Classifier |
TBD |
TBD |
 |
| Filter Response Normalization for Network-in-Network CIFAR-10 Classifier |
TBD |
TBD |
 |
| Title |
Dataset |
Description |
Notebooks |
| Siamese Network with Multilayer Perceptrons |
TBD |
TBD |
 |
Fully-connected Autoencoders
| Title |
Dataset |
Description |
Notebooks |
| Autoencoder (MNIST) |
TBD |
TBD |
 |
| Autoencoder (MNIST) + Scikit-Learn Random Forest Classifier |
TBD |
TBD |
 |
Convolutional Autoencoders
| Title |
Dataset |
Description |
Notebooks |
| Convolutional Autoencoder with Deconvolutions / Transposed Convolutions |
TBD |
TBD |
 |
| Convolutional Autoencoder with Deconvolutions and Continuous Jaccard Distance |
TBD |
TBD |
 |
| Convolutional Autoencoder with Deconvolutions (without pooling operations) |
TBD |
TBD |
 |
| Convolutional Autoencoder with Nearest-neighbor Interpolation |
TBD |
TBD |
 |
| Convolutional Autoencoder with Nearest-neighbor Interpolation -- Trained on CelebA |
TBD |
TBD |
 |
| Convolutional Autoencoder with Nearest-neighbor Interpolation -- Trained on Quickdraw |
TBD |
TBD |
 |
| Title |
Dataset |
Description |
Notebooks |
| Variational Autoencoder |
TBD |
TBD |
 |
| Convolutional Variational Autoencoder |
TBD |
TBD |
 |
Conditional Variational Autoencoders
| Title |
Dataset |
Description |
Notebooks |
| Conditional Variational Autoencoder (with labels in reconstruction loss) |
TBD |
TBD |
 |
| Conditional Variational Autoencoder (without labels in reconstruction loss) |
TBD |
TBD |
 |
| Convolutional Conditional Variational Autoencoder (with labels in reconstruction loss) |
TBD |
TBD |
 |
| Convolutional Conditional Variational Autoencoder (without labels in reconstruction loss) |
TBD |
TBD |
 |
Generative Adversarial Networks (GANs)
| Title |
Dataset |
Description |
Notebooks |
| Fully Connected GAN on MNIST |
TBD |
TBD |
 |
| Fully Connected Wasserstein GAN on MNIST |
TBD |
TBD |
 |
| Convolutional GAN on MNIST |
TBD |
TBD |
 |
| Convolutional GAN on MNIST with Label Smoothing |
TBD |
TBD |
 |
| Convolutional Wasserstein GAN on MNIST |
TBD |
TBD |
 |
| Deep Convolutional GAN (DCGAN) on Cats and Dogs Images |
TBD |
TBD |
 |
| Deep Convolutional GAN (DCGAN) on CelebA Face Images |
TBD |
TBD |
 |
Graph Neural Networks (GNNs)
| Title |
Dataset |
Description |
Notebooks |
| Most Basic Graph Neural Network with Gaussian Filter on MNIST |
TBD |
TBD |
 |
| Basic Graph Neural Network with Edge Prediction on MNIST |
TBD |
TBD |
 |
| Basic Graph Neural Network with Spectral Graph Convolution on MNIST |
TBD |
TBD |
 |
Recurrent Neural Networks (RNNs)
Many-to-one: Sentiment Analysis / Classification
| Title |
Dataset |
Description |
Notebooks |
| A simple single-layer RNN (IMDB) |
TBD |
TBD |
 |
| A simple single-layer RNN with packed sequences to ignore padding characters (IMDB) |
TBD |
TBD |
 |
| RNN with LSTM cells (IMDB) |
TBD |
TBD |
 |
| RNN with LSTM cells (IMDB) and pre-trained GloVe word vectors |
TBD |
TBD |
 |
| RNN with LSTM cells and Own Dataset in CSV Format (IMDB) |
TBD |
TBD |
 |
| RNN with GRU cells (IMDB) |
TBD |
TBD |
 |
| Multilayer bi-directional RNN (IMDB) |
TBD |
TBD |
 |
| Bidirectional Multi-layer RNN with LSTM with Own Dataset in CSV Format (AG News) |
TBD |
TBD |
 |
Many-to-Many / Sequence-to-Sequence
| Title |
Dataset |
Description |
Notebooks |
| A simple character RNN to generate new text (Charles Dickens) |
TBD |
TBD |
 |
| Title |
Dataset |
Description |
Notebooks |
| Baseline CNN |
MNIST |
A simple baseline with traditional train/validation/test splits |
 |
K-fold with pl_cross |
MNIST |
A 5-fold cross-validation run using the pl_cross library |
 |
| Title |
Dataset |
Description |
Notebooks |
| AutoAugment & TrivialAugment for Image Data |
CIFAR-10 |
Trains a ResNet-18 using AutoAugment and TrivialAugment |
 |
| Title |
Dataset |
Description |
Notebooks |
| Cyclical Learning Rate |
TBD |
TBD |
 |
| Annealing with Increasing the Batch Size (w. CIFAR-10 & AlexNet) |
TBD |
TBD |
 |
| Gradient Clipping (w. MLP on MNIST) |
TBD |
TBD |
 |
| Title |
Dataset |
Description |
Notebooks |
| Transfer Learning Example (VGG16 pre-trained on ImageNet for Cifar-10) |
TBD |
TBD |
 |
Visualization and Interpretation
| Title |
Dataset |
Description |
Notebooks |
| Vanilla Loss Gradient (wrt Inputs) Visualization (Based on a VGG16 Convolutional Neural Network for Kaggle's Cats and Dogs Images) |
TBD |
TBD |
 |
| Guided Backpropagation (Based on a VGG16 Convolutional Neural Network for Kaggle's Cats and Dogs Images) |
TBD |
TBD |
 |
PyTorch Workflows and Mechanics
PyTorch Lightning Examples
| Title |
Dataset |
Description |
Notebooks |
| MLP in Lightning with TensorBoard -- continue training the last model |
TBD |
TBD |
 |
| MLP in Lightning with TensorBoard -- checkpointing best model |
TBD |
TBD |
 |
| Title |
Dataset |
Description |
Notebooks |
| Custom Data Loader Example for PNG Files |
TBD |
TBD |
 |
| Using PyTorch Dataset Loading Utilities for Custom Datasets -- CSV files converted to HDF5 |
TBD |
TBD |
 |
| Using PyTorch Dataset Loading Utilities for Custom Datasets -- Face Images from CelebA |
TBD |
TBD |
 |
| Using PyTorch Dataset Loading Utilities for Custom Datasets -- Drawings from Quickdraw |
TBD |
TBD |
 |
| Using PyTorch Dataset Loading Utilities for Custom Datasets -- Drawings from the Street View House Number (SVHN) Dataset |
TBD |
TBD |
 |
| Using PyTorch Dataset Loading Utilities for Custom Datasets -- Asian Face Dataset (AFAD) |
TBD |
TBD |
 |
| Using PyTorch Dataset Loading Utilities for Custom Datasets -- Dating Historical Color Images |
TBD |
TBD |
 |
| Using PyTorch Dataset Loading Utilities for Custom Datasets -- Fashion MNIST |
TBD |
TBD |
 |
Training and Preprocessing
| Title |
Dataset |
Description |
Notebooks |
| PyTorch DataLoader State and Nested Iterations |
Toy |
Explains DataLoader behavior when in nested functions |
 |
| Generating Validation Set Splits |
TBD |
TBD |
 |
| Dataloading with Pinned Memory |
TBD |
TBD |
 |
| Standardizing Images |
TBD |
TBD |
 |
| Image Transformation Examples |
TBD |
TBD |
 |
| Char-RNN with Own Text File |
TBD |
TBD |
 |
| Sentiment Classification RNN with Own CSV File |
TBD |
TBD |
 |
Improving Memory Efficiency
| Title |
Dataset |
Description |
Notebooks |
| Gradient Checkpointing Demo (Network-in-Network trained on CIFAR-10) |
TBD |
TBD |
 |
| Title |
Description |
Notebooks |
| Using Multiple GPUs with DataParallel -- VGG-16 Gender Classifier on CelebA |
TBD |
 |
| Distribute a Model Across Multiple GPUs with Pipeline Parallelism (VGG-16 Example) |
TBD |
 |
| Title |
Dataset |
Description |
Notebooks |
| PyTorch with and without Deterministic Behavior -- Runtime Benchmark |
TBD |
TBD |
 |
| Sequential API and hooks |
TBD |
TBD |
 |
| Weight Sharing Within a Layer |
TBD |
TBD |
 |
| Plotting Live Training Performance in Jupyter Notebooks with just Matplotlib |
TBD |
TBD |
 |
| Title |
Dataset |
Description |
Notebooks |
| Getting Gradients of an Intermediate Variable in PyTorch |
TBD |
TBD |
 |
TensorFlow Workflows and Mechanics
| Title |
Description |
Notebooks |
| Chunking an Image Dataset for Minibatch Training using NumPy NPZ Archives |
TBD |
 |
| Storing an Image Dataset for Minibatch Training using HDF5 |
TBD |
 |
| Using Input Pipelines to Read Data from TFRecords Files |
TBD |
 |
| Using Queue Runners to Feed Images Directly from Disk |
TBD |
 |
| Using TensorFlow's Dataset API |
TBD |
 |
Training and Preprocessing
| Title |
Dataset |
Description |
Notebooks |
| Saving and Loading Trained Models -- from TensorFlow Checkpoint Files and NumPy NPZ Archives |
TBD |
TBD |
 |
| Title |
Description |
Notebooks |
| TorchMetrics |
How do we use it, and what's the difference between .update() and .forward()? |
 |