Files
rasbt--deeplearning-models/README.md
T
2026-07-13 10:42:15 +00:00

426 lines
34 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- WEHUB_ZH_README -->
> [!NOTE]
> 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
> [English](./README.en.md) · [原始项目](https://github.com/rasbt/deeplearning-models) · [上游 README](https://github.com/rasbt/deeplearning-models/blob/HEAD/README.md)
> 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
# 深度学习模型
TensorFlow 与 PyTorch 在 Jupyter Notebook 中的各类深度学习架构、模型与实践技巧合集。
## 传统机器学习
|Title | Dataset | Description | Notebooks |
| --- | --- | --- | --- |
| Perceptron | 2D 玩具数据 | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/basic-ml/perceptron.ipynb) [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/basic-ml/perceptron.ipynb) |
| Logistic Regression | 2D 玩具数据 | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/basic-ml/logistic-regression.ipynb) [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/basic-ml/logistic-regression.ipynb)|
| Softmax Regression (Multinomial Logistic Regression) | MNIST | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/basic-ml/softmax-regression.ipynb) [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/basic-ml/softmax-regression.ipynb) |
| Softmax Regression with MLxtend's plot_decision_regions on Iris | Iris | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/basic-ml/softmax-regression-mlxtend-1.ipynb) |
## 多层感知器(Multilayer Perceptrons
|Title | Dataset | Description | Notebooks |
| --- | --- | --- | --- |
| Multilayer Perceptron | MNIST | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/mlp/mlp-basic.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mlp/mlp-basic.ipynb) [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/mlp/mlp-basic.ipynb) |
| Multilayer Perceptron with Dropout | MNIST | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/mlp/mlp-dropout.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mlp/mlp-dropout.ipynb) [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/mlp/mlp-dropout.ipynb) |
|Multilayer Perceptron with Batch Normalization | MNIST | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/mlp/mlp-batchnorm.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mlp/mlp-batchnorm.ipynb) [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/mlp/mlp-batchtnorm.ipynb) |
|Multilayer Perceptron with Backpropagation from Scratch | MNIST | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mlp/mlp-fromscratch__sigmoid-mse.ipynb) [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/mlp/mlp-fromscratch__sigmoid-mse.ipynb)|
## 卷积神经网络(Convolutional Neural Networks
#### 基础
|Title | Dataset | Description | Notebooks |
| --- | --- | --- | --- |
| Convolutional Neural Network | TBD | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/cnn/cnn-basic.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-basic.ipynb) [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/cnn/cnn-basic.ipynb) |
| CNN with He Initialization | TBD | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/cnn/cnn-he-init.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-he-init.ipynb) |
#### 概念
|Title | Dataset | Description | Notebooks |
| --- | --- | --- | --- |
| Replacing Fully-Connected by Equivalent Convolutional Layers | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/fc-to-conv.ipynb) |
---
#### AlexNet
|Title | Dataset | Description | Notebooks |
| --- | --- | --- | --- |
| AlexNet Trained on CIFAR-10 | TBD | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/cnn/cnn-alexnet-cifar10.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-alexnet-cifar10.ipynb) |
| AlexNet with Grouped Convolutions Trained on CIFAR-10 | TBD | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/cnn/cnn-alexnet-grouped-cifar10.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-alexnet-grouped-cifar10.ipynb) |
#### DenseNet
|Title | Description | Daset | Notebooks |
| --- | --- | --- | --- |
| DenseNet-121 Digit Classifier Trained on MNIST | TBD | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/cnn/cnn-densenet121-mnist.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-densenet121-mnist.ipynb) |
| DenseNet-121 Image Classifier Trained on CIFAR-10 | TBD | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/cnn/cnn-densenet121-cifar10.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-densenet121-cifar10.ipynb) |
#### 全卷积(Fully Convolutional
|Title | Dataset | Description | Notebooks |
| --- | --- | --- | --- |
| "All Convolutionl Net" -- A Fully Convolutional Neural Network | TBD | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/cnn/cnn-allconv.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-allconv.ipynb) |
#### LeNet
|Title | Dataset | Description | Notebooks |
| --- | --- | --- | --- |
| LeNet-5 on MNIST | TBD | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/cnn/cnn-lenet5-mnist.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-lenet5-mnist.ipynb) |
| LeNet-5 on CIFAR-10 | TBD | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/cnn/cnn-lenet5-cifar10.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-lenet5-cifar10.ipynb) |
| LeNet-5 on QuickDraw | TBD | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/cnn/cnn-lenet5-quickdraw.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-lenet5-quickdraw.ipynb) |
#### MobileNet
|Title | Dataset | Description | Notebooks |
| --- | --- | --- | --- |
| MobileNet-v2 on Cifar-10 | TBD | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/cnn/cnn-mobilenet-v2-cifar10.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-mobilenet-v2-cifar10.ipynb) |
| MobileNet-v3 small on Cifar-10 | TBD | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/cnn/cnn-mobilenet-v3-small-cifar10.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-mobilenet-v3-small-cifar10.ipynb) |
| MobileNet-v3 large on Cifar-10 | TBD | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/cnn/cnn-mobilenet-v3-large-cifar10.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-mobilenet-v3-large-cifar10.ipynb) |
| MobileNet-v3 large on MNIST via Embetter | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-embetter-mobilenet.ipynb) |
#### Network in Network
|Title | Dataset | Description | Notebooks |
| --- | --- | --- | --- |
| Network in Network Trained on CIFAR-10 | TBD | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/cnn/cnn-nin-cifar10.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/nin-cifar10.ipynb) |
#### VGG
|Title | Dataset | Description | Notebooks |
| --- | --- | --- | --- |
| 在 CIFAR-10 上训练的卷积神经网络 VGG-16 | TBD | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/cnn/cnn-vgg16.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-vgg16.ipynb) [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/cnn/cnn-vgg16.ipynb) |
| VGG-16 微笑分类器 | [CelebA](https://mmlab.ie.cuhk.edu.hk/projects/CelebA.html) | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/cnn/cnn-vgg16-celeba.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-vgg16-celeba.ipynb) |
| VGG-16 猫狗分类器 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-vgg16-cats-dogs.ipynb) |
| 卷积神经网络 VGG-19 | TBD | TBD | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/cnn/cnn-vgg19.ipynb) [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-vgg19.ipynb) |
#### ResNet
|Title | Dataset | Description | Notebooks |
| --- | --- | --- | --- |
| ResNet 与残差块(Residual Blocks | [MNIST](http://yann.lecun.com/exdb/mnist/) | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/resnet-ex-1.ipynb) |
| ResNet-18 数字分类器| [MNIST](http://yann.lecun.com/exdb/mnist/) | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-resnet18-mnist.ipynb) |
| ResNet-18 性别分类器 | [CelebA](https://mmlab.ie.cuhk.edu.hk/projects/CelebA.html) | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-resnet18-celeba-dataparallel.ipynb) |
| ResNet-34 数字分类器 | [MNIST](http://yann.lecun.com/exdb/mnist/) | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-resnet34-mnist.ipynb) |
| ResNet-34 物体分类器 | [QuickDraw](https://quickdraw.withgoogle.com) | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-resnet34-quickdraw.ipynb) |
| ResNet-34 性别分类器| [CelebA](https://mmlab.ie.cuhk.edu.hk/projects/CelebA.html) | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-resnet34-celeba-dataparallel.ipynb) |
| ResNet-50 数字分类器| [MNIST](http://yann.lecun.com/exdb/mnist/) | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-resnet50-mnist.ipynb) |
| ResNet-50 性别分类器 | [CelebA](https://mmlab.ie.cuhk.edu.hk/projects/CelebA.html) | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-resnet50-celeba-dataparallel.ipynb) |
| ResNet-101 性别分类器| [CelebA](https://mmlab.ie.cuhk.edu.hk/projects/CelebA.html) | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-resnet101-celeba.ipynb) |
| ResNet-101| [CIFAR-10](https://www.cs.toronto.edu/~kriz/cifar.html) | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-resnet101-cifar10.ipynb) |
| ResNet-152 性别分类器| [CelebA](https://mmlab.ie.cuhk.edu.hk/projects/CelebA.html) | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-resnet152-celeba.ipynb) |
---
## Transformers
|Title | Dataset | Description | Notebooks |
| --- | --- | --- | --- |
| 多标签 DistilBERT | [Jigsaw Toxic Comment Challenge](https://www.kaggle.com/competitions/jigsaw-toxic-comment-classification-challenge) | DistilBERT 分类器微调 | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/transformer/distilbert-multilabel.ipynb) |
| DistilBERT 作为特征提取器 | [IMDB movie review](https://ai.stanford.edu/~amaas/data/sentiment/) | 结合 sklearn 随机森林与逻辑回归的 DistilBERT 分类器 | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/transformer/1_distilbert-as-feature-extractor.ipynb) |
| 使用 `embetter` 的 DistilBERT 特征提取器 | [IMDB movie review](https://ai.stanford.edu/~amaas/data/sentiment/) | 使用 scikit-learn `embetter` 库的 sklearn 随机森林与逻辑回归 DistilBERT 分类器 | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/transformer/distilbert-embetter-feature-extractor.ipynb) |
| 微调 DistilBERT I | [IMDB movie review](https://ai.stanford.edu/~amaas/data/sentiment/) | 仅微调 DistilBERT 分类器的最后 2 层 | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/transformer/distilbert-finetune-last-layers.ipynb) |
| 微调 DistilBERT II | [IMDB movie review](https://ai.stanford.edu/~amaas/data/sentiment/) | 微调整个 DistilBERT 分类器 | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/transformer/distilbert-hf-finetuning.ipynb) [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/transformer/distilbert-finetuning-ii.ipynb) |
---
## 序数回归(Ordinal Regression)与深度学习
请注意,以下 notebook 提供的是使用相应方法的参考实现,并非性能基准测试。
|Title | Dataset | Description | Notebooks |
| --- | --- | --- | --- |
| 基线多层感知机(multilayer perceptron | Cement | 使用标准交叉熵损失训练的用于分类的基线多层感知机 | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/ordinal/baseline_cement.ipynb) [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/ordinal/baseline-light_cement.ipynb) |
| CORAL 多层感知机 | Cement | [Rank Consistent Ordinal Regression for Neural Networks with Application to Age Estimation](https://www.sciencedirect.com/science/article/pii/S016786552030413X) 2020 的实现 | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/ordinal/CORAL_cement.ipynb) [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/ordinal/CORAL-light_cement.ipynb) |
| CORN 多层感知机 | Cement | [Deep Neural Networks for Rank-Consistent Ordinal Regression Based On Conditional Probabilities](https://arxiv.org/abs/2111.08851) 2022 的实现 | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/ordinal/CORN_cement.ipynb) [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/ordinal/CORN-light_cement.ipynb) |
| 二元扩展多层感知机 | Cement | [Ordinal Regression with Multiple Output CNN for Age Estimation](https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Niu_Ordinal_Regression_With_CVPR_2016_paper.pdf) 2016 的实现 | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/ordinal/niu2016_cement.ipynb) [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/ordinal/niu2016-light_cement.ipynb) |
| 重公式化平方误差多层感知机 | Cement | [A simple squared-error reformulation for ordinal classification](https://arxiv.org/abs/1612.00775) 2016 的实现 | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/ordinal/beckham2016_cement.ipynb) [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/ordinal/beckham2016-light_cement.ipynb) |
| 类距离加权交叉熵损失 | Cement | [Class Distance Weighted Cross-Entropy Loss for Ulcerative Colitis Severity Estimation](https://arxiv.org/abs/2202.05167) 2022 的实现 | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/ordinal/polat2022_cement.ipynb) [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/ordinal/polat2022-light_cement.ipynb) |
---
## 归一化层 (Normalization Layers)
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| Network-in-Network CIFAR-10 分类器中激活前后的 BatchNorm | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/nin-cifar10_batchnorm.ipynb) |
| Network-in-Network CIFAR-10 分类器的 Filter Response Normalization | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/nin-cifar10_filter-response-norm.ipynb) |
## 度量学习 (Metric Learning)
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| 多层感知机孪生网络 (Siamese Network) | TBD | TBD | [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/metric/siamese-1.ipynb) |
## 自编码器 (Autoencoders)
#### 全连接自编码器
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| 自编码器 (MNIST) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/autoencoder/ae-basic.ipynb) [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/autoencoder/ae-basic.ipynb) |
| 自编码器 (MNIST) + Scikit-Learn 随机森林分类器 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/autoencoder/ae-basic-with-rf.ipynb) [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/autoencoder/ae-basic-with-rf.ipynb) |
#### 卷积自编码器
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| 带反卷积/转置卷积的卷积自编码器 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/autoencoder/ae-deconv.ipynb) [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/autoencoder/ae-deconv.ipynb) |
| 带反卷积与连续 Jaccard 距离的卷积自编码器 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/autoencoder/ae-deconv-jaccard.ipynb) |
| 带反卷积的卷积自编码器(无池化操作) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/autoencoder/ae-deconv-nopool.ipynb) |
| 带最近邻插值的卷积自编码器 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/autoencoder/ae-conv-nneighbor.ipynb) [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/autoencoder/ae-conv-nneighbor.ipynb) |
| 带最近邻插值的卷积自编码器 —— 在 CelebA 上训练 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/autoencoder/ae-conv-nneighbor-celeba.ipynb) |
| 带最近邻插值的卷积自编码器 —— 在 Quickdraw 上训练 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/autoencoder/ae-conv-nneighbor-quickdraw-1.ipynb) |
#### 变分自编码器 (Variational Autoencoders)
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| 变分自编码器 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/autoencoder/ae-var.ipynb) |
| 卷积变分自编码器 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/autoencoder/ae-conv-var.ipynb) |
#### 条件变分自编码器
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| 条件变分自编码器(重建损失中包含标签) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/autoencoder/ae-cvae.ipynb) |
| 条件变分自编码器(重建损失中不包含标签) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/autoencoder/ae-cvae_no-out-concat.ipynb) |
| 卷积条件变分自编码器(重建损失中包含标签) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/autoencoder/ae-cnn-cvae.ipynb) |
| 卷积条件变分自编码器(重建损失中不包含标签) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/autoencoder/ae-cnn-cvae_no-out-concat.ipynb) |
## 生成对抗网络 (Generative Adversarial Networks, GANs)
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| MNIST 上的全连接 GAN | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/gan/gan.ipynb) [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/gan/gan.ipynb) |
| MNIST 上的全连接 Wasserstein GAN | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/gan/wgan-1.ipynb) |
| MNIST 上的卷积 GAN | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/gan/gan-conv.ipynb) [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/gan/gan-conv.ipynb) |
| 带标签平滑的 MNIST 卷积 GAN | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/gan/gan-conv-smoothing.ipynb) [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/gan/gan-conv-smoothing.ipynb) |
| MNIST 上的卷积 Wasserstein GAN | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/gan/dc-wgan-1.ipynb) |
| 猫狗图像上的深度卷积 GAN (DCGAN) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/gan/dcgan-cats-and-dogs.ipynb) |
| CelebA 人脸图像上的深度卷积 GAN (DCGAN) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/gan/dcgan-celeba.ipynb) |
## 图神经网络 (Graph Neural Networks, GNNs)
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| MNIST 上带高斯滤波的最基本图神经网络 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/gnn/gnn-basic-1.ipynb) |
| MNIST 上带边预测的基本图神经网络 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/gnn/gnn-basic-edge-1.ipynb) |
| MNIST 上带谱图卷积的基本图神经网络 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/gnn/gnn-basic-graph-spectral-1.ipynb) |
## 循环神经网络 (Recurrent Neural Networks, RNNs)
#### 多对一:情感分析/分类
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| 简单的单层 RNN (IMDB) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/rnn/rnn_simple_imdb.ipynb) |
| 使用打包序列以忽略填充字符的简单单层 RNN (IMDB) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/rnn/rnn_simple_packed_imdb.ipynb) |
| 带 LSTM 单元的 RNN (IMDB) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/rnn/rnn_lstm_packed_imdb.ipynb) |
| 带 LSTM 单元与预训练 GloVe 词向量的 RNN (IMDB) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/rnn/rnn_lstm_packed_imdb-glove.ipynb) |
| 带 LSTM 单元与 CSV 格式自定义数据集的 RNN (IMDB) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/rnn/rnn_lstm_packed_own_csv_imdb.ipynb) |
| 带 GRU 单元的 RNN (IMDB) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/rnn/rnn_gru_packed_imdb.ipynb) |
| 多层双向 RNN (IMDB) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/rnn/rnn_lstm_bi_imdb.ipynb) |
| 带 LSTM 的多层双向 RNN 与 CSV 格式自定义数据集 (AG News) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/rnn/rnn_bi_multilayer_lstm_own_csv_agnews.ipynb) |
#### 多对多 / 序列到序列(Many-to-Many / Sequence-to-Sequence
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| 使用简单字符 RNN 生成新文本(Charles Dickens | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/rnn/char_rnn-charlesdickens.ipynb) |
## 模型评估
### K 折交叉验证(K-Fold Cross-Validation
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| 基线 CNN | MNIST | 采用传统训练/验证/测试划分的简单基线 | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/kfold/baseline-cnn-mnist.ipynb) [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/kfold/baseline-light-cnn-mnist.ipynb) |
| 使用 `pl_cross` 的 K 折交叉验证 | MNIST | 使用 `pl_cross` 库进行 5 折交叉验证 | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](pytorch-lightning_ipynb/kfold/kfold-light-cnn-mnist.ipynb) |
## 数据增强
| 标题 | 数据集 | 描述 | Notebook |
| -------------------------- | ------- | ----------- | ------------------------------------------------------------ |
| 图像数据的 AutoAugment 与 TrivialAugment | CIFAR-10 | 使用 AutoAugment 和 TrivialAugment 训练 ResNet-18 | [![PyTorch Lightning](https://img.shields.io/badge/PyTorch-Lightning-blueviolet)](./pytorch-lightning_ipynb/data-augmentation/autoaugment) |
## 技巧与窍门
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| 周期性学习率(Cyclical Learning Rate | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/tricks/cyclical-learning-rate.ipynb) |
| 随批次大小递增的退火(CIFAR-10 与 AlexNet | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/tricks/cnn-alexnet-cifar10-batchincrease.ipynb) |
| 梯度裁剪(MNIST 上的 MLP | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/tricks/gradclipping_mlp.ipynb) |
## 迁移学习(Transfer Learning
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| 迁移学习示例(在 ImageNet 上预训练的 VGG16 用于 Cifar-10 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/transfer/transferlearning-vgg16-cifar10-1.ipynb) |
## 可视化与解释
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| 原始损失梯度(相对于输入)可视化(基于用于 Kaggle 猫狗图像的 VGG16 卷积神经网络) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/viz/cnns/cats-and-dogs/cnn-viz-grad__vgg16-cats-dogs.ipynb) |
| 引导反向传播(基于用于 Kaggle 猫狗图像的 VGG16 卷积神经网络) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/viz/cnns/cats-and-dogs/cnn-viz-guided-backprop__vgg16-cats-dogs.ipynb) |
## PyTorch 工作流与机制
#### PyTorch Lightning 示例
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| 在 Lightning 中使用 TensorBoard 的 MLP —— 继续训练上一个模型 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/lightning/lightning-mlp.ipynb) |
| 在 Lightning 中使用 TensorBoard 的 MLP —— 保存最佳模型检查点 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/lightning/lightning-mlp-best-model) |
#### 自定义数据集
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| PNG 文件的自定义 Data Loader 示例 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/custom-dataloader-png/custom-dataloader-example.ipynb) |
| 使用 PyTorch 数据集加载工具处理自定义数据集 —— 将 CSV 文件转换为 HDF5 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/custom-data-loader-csv.ipynb) |
| 使用 PyTorch 数据集加载工具处理自定义数据集 —— CelebA 人脸图像 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/custom-data-loader-celeba.ipynb) |
| 使用 PyTorch 数据集加载工具处理自定义数据集 —— Quickdraw 涂鸦 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/custom-data-loader-quickdraw.ipynb) |
| 使用 PyTorch 数据集加载工具处理自定义数据集 —— 街景门牌号(SVHN)数据集中的涂鸦 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/custom-data-loader-svhn.ipynb) |
| 使用 PyTorch 数据集加载工具处理自定义数据集 —— 亚洲人脸数据集(AFAD) | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/custom-data-loader-afad.ipynb) |
| 使用 PyTorch 数据集加载工具处理自定义数据集 —— 历史彩色图像年代鉴定 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/custom-data-loader_dating-historical-color-images.ipynb) |
| 使用 PyTorch 数据集加载工具处理自定义数据集 —— Fashion MNIST | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/custom-data-loader-quickdraw.ipynb) |
#### 训练与预处理
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| PyTorch DataLoader 状态与嵌套迭代 | Toy | 说明嵌套函数中 DataLoader 的行为 | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/dataloader-nesting.ipynb)|
| 生成验证集划分 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/validation-splits.ipynb) |
| 使用固定内存(Pinned Memory)进行数据加载 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-resnet34-cifar10-pinmem.ipynb) |
| 图像标准化 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-standardized.ipynb) |
| 图像变换示例 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/torchvision-transform-examples.ipynb) |
| 使用自有文本文件的字符 RNN | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/rnn/char_rnn-charlesdickens.ipynb) |
| 使用自有 CSV 文件的情感分类 RNN | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/rnn/rnn_lstm_packed_own_csv_imdb.ipynb) |
#### 提升内存效率
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| 梯度检查点演示(在 CIFAR-10 上训练的 Network-in-Network | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/gradient-checkpointing-nin.ipynb) |
#### 并行计算
|标题 | 描述 | Notebook |
| --- | --- | --- |
| 使用 DataParallel 进行多 GPU 训练 —— CelebA 上的 VGG-16 性别分类器 | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/cnn/cnn-vgg16-celeba-data-parallel.ipynb) |
| 使用流水线并行(Pipeline Parallelism)将模型分布到多个 GPUVGG-16 示例) | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/model-pipeline-vgg16.ipynb) |
#### 其他
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| 启用与禁用确定性行为的 PyTorch —— 运行时基准测试 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/deterministic_benchmark.ipynb) |
| Sequential API 与 hooks | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/mlp-sequential.ipynb) |
| 层内权重共享 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/cnn-weight-sharing.ipynb) |
| 仅使用 Matplotlib 在 Jupyter Notebook 中实时绘制训练性能 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/plot-jupyter-matplotlib.ipynb) |
#### Autograd
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| 在 PyTorch 中获取中间变量的梯度 | TBD | TBD | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/mechanics/manual-gradients.ipynb) |
## TensorFlow 工作流与机制
#### 自定义数据集
|标题 | 描述 | Notebook |
| --- | --- | --- |
| 使用 NumPy NPZ 归档文件为小批量训练分块图像数据集 | TBD | [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/mechanics/image-data-chunking-npz.ipynb) |
| 使用 HDF5 为小批量训练存储图像数据集 | TBD | [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/mechanics/image-data-chunking-hdf5.ipynb) |
| 使用输入管道从 TFRecords 文件读取数据 | TBD | [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/mechanics/tfrecords.ipynb) |
| 使用 Queue Runners 直接从磁盘供给图像 | TBD | [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/mechanics/file-queues.ipynb) |
| 使用 TensorFlow 的 Dataset API | TBD | [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/mechanics/dataset-api.ipynb) |
#### 训练与预处理
|标题 | 数据集 | 描述 | Notebook |
| --- | --- | --- | --- |
| 保存与加载训练好的模型——从 TensorFlow 检查点文件和 NumPy NPZ 归档 | TBD | TBD | [![TensorFlow](https://img.shields.io/badge/Tensor-Flow1.0-orange)](tensorflow1_ipynb/mechanics/saving-and-reloading-models.ipynb) |
## 相关库
|标题 | 描述 | Notebook |
| --- | --- | --- |
| TorchMetrics | 我们如何使用它,以及 .update() 与 .forward() 有何区别? | [![PyTorch](https://img.shields.io/badge/Py-Torch-red)](pytorch_ipynb/related-libraries/torchmetrics-update-forward.ipynb) |