> [!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)将模型分布到多个 GPU(VGG-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) |