34 KiB
34 KiB
Note
本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
深度学习模型
TensorFlow 与 PyTorch 在 Jupyter Notebook 中的各类深度学习架构、模型与实践技巧合集。
传统机器学习
多层感知器(Multilayer Perceptrons)
卷积神经网络(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 |
AlexNet
| Title | Dataset | Description | Notebooks |
|---|---|---|---|
| AlexNet Trained on CIFAR-10 | TBD | TBD | |
| AlexNet with Grouped Convolutions Trained on CIFAR-10 | TBD | TBD |
DenseNet
| Title | Description | Daset | Notebooks |
|---|---|---|---|
| DenseNet-121 Digit Classifier Trained on MNIST | TBD | TBD | |
| DenseNet-121 Image Classifier Trained on CIFAR-10 | TBD | TBD |
全卷积(Fully Convolutional)
| Title | Dataset | Description | Notebooks |
|---|---|---|---|
| "All Convolutionl Net" -- A Fully Convolutional Neural Network | TBD | TBD |
LeNet
| Title | Dataset | Description | Notebooks |
|---|---|---|---|
| LeNet-5 on MNIST | TBD | TBD | |
| LeNet-5 on CIFAR-10 | TBD | TBD | |
| LeNet-5 on QuickDraw | TBD | TBD |
MobileNet
| 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 |
Network in Network
| Title | Dataset | Description | Notebooks |
|---|---|---|---|
| Network in Network Trained on CIFAR-10 | TBD | TBD |
VGG
| Title | Dataset | Description | Notebooks |
|---|---|---|---|
| 在 CIFAR-10 上训练的卷积神经网络 VGG-16 | TBD | TBD | |
| VGG-16 微笑分类器 | CelebA | TBD | |
| VGG-16 猫狗分类器 | TBD | TBD | |
| 卷积神经网络 VGG-19 | TBD | TBD |
ResNet
| Title | Dataset | Description | Notebooks |
|---|---|---|---|
| ResNet 与残差块(Residual Blocks) | MNIST | TBD | |
| ResNet-18 数字分类器 | MNIST | TBD | |
| ResNet-18 性别分类器 | CelebA | TBD | |
| ResNet-34 数字分类器 | MNIST | TBD | |
| ResNet-34 物体分类器 | QuickDraw | TBD | |
| ResNet-34 性别分类器 | CelebA | TBD | |
| ResNet-50 数字分类器 | MNIST | TBD | |
| ResNet-50 性别分类器 | CelebA | TBD | |
| ResNet-101 性别分类器 | CelebA | TBD | |
| ResNet-101 | CIFAR-10 | TBD | |
| ResNet-152 性别分类器 | CelebA | TBD |
Transformers
| Title | Dataset | Description | Notebooks |
|---|---|---|---|
| 多标签 DistilBERT | Jigsaw Toxic Comment Challenge | DistilBERT 分类器微调 | |
| DistilBERT 作为特征提取器 | IMDB movie review | 结合 sklearn 随机森林与逻辑回归的 DistilBERT 分类器 | |
使用 embetter 的 DistilBERT 特征提取器 |
IMDB movie review | 使用 scikit-learn embetter 库的 sklearn 随机森林与逻辑回归 DistilBERT 分类器 |
|
| 微调 DistilBERT I | IMDB movie review | 仅微调 DistilBERT 分类器的最后 2 层 | |
| 微调 DistilBERT II | IMDB movie review | 微调整个 DistilBERT 分类器 |
序数回归(Ordinal Regression)与深度学习
请注意,以下 notebook 提供的是使用相应方法的参考实现,并非性能基准测试。
| Title | Dataset | Description | Notebooks |
|---|---|---|---|
| 基线多层感知机(multilayer perceptron) | Cement | 使用标准交叉熵损失训练的用于分类的基线多层感知机 | |
| CORAL 多层感知机 | Cement | Rank Consistent Ordinal Regression for Neural Networks with Application to Age Estimation 2020 的实现 | |
| CORN 多层感知机 | Cement | Deep Neural Networks for Rank-Consistent Ordinal Regression Based On Conditional Probabilities 2022 的实现 | |
| 二元扩展多层感知机 | Cement | Ordinal Regression with Multiple Output CNN for Age Estimation 2016 的实现 | |
| 重公式化平方误差多层感知机 | Cement | A simple squared-error reformulation for ordinal classification 2016 的实现 | |
| 类距离加权交叉熵损失 | Cement | Class Distance Weighted Cross-Entropy Loss for Ulcerative Colitis Severity Estimation 2022 的实现 |
归一化层 (Normalization Layers)
| 标题 | 数据集 | 描述 | Notebook |
|---|---|---|---|
| Network-in-Network CIFAR-10 分类器中激活前后的 BatchNorm | TBD | TBD | |
| Network-in-Network CIFAR-10 分类器的 Filter Response Normalization | TBD | TBD |
度量学习 (Metric Learning)
| 标题 | 数据集 | 描述 | Notebook |
|---|---|---|---|
| 多层感知机孪生网络 (Siamese Network) | TBD | TBD |
自编码器 (Autoencoders)
全连接自编码器
| 标题 | 数据集 | 描述 | Notebook |
|---|---|---|---|
| 自编码器 (MNIST) | TBD | TBD | |
| 自编码器 (MNIST) + Scikit-Learn 随机森林分类器 | TBD | TBD |
卷积自编码器
变分自编码器 (Variational Autoencoders)
| 标题 | 数据集 | 描述 | Notebook |
|---|---|---|---|
| 变分自编码器 | TBD | TBD | |
| 卷积变分自编码器 | TBD | TBD |
条件变分自编码器
| 标题 | 数据集 | 描述 | Notebook |
|---|---|---|---|
| 条件变分自编码器(重建损失中包含标签) | TBD | TBD | |
| 条件变分自编码器(重建损失中不包含标签) | TBD | TBD | |
| 卷积条件变分自编码器(重建损失中包含标签) | TBD | TBD | |
| 卷积条件变分自编码器(重建损失中不包含标签) | TBD | TBD |
生成对抗网络 (Generative Adversarial Networks, GANs)
图神经网络 (Graph Neural Networks, GNNs)
| 标题 | 数据集 | 描述 | Notebook |
|---|---|---|---|
| MNIST 上带高斯滤波的最基本图神经网络 | TBD | TBD | |
| MNIST 上带边预测的基本图神经网络 | TBD | TBD | |
| MNIST 上带谱图卷积的基本图神经网络 | TBD | TBD |
循环神经网络 (Recurrent Neural Networks, RNNs)
多对一:情感分析/分类
多对多 / 序列到序列(Many-to-Many / Sequence-to-Sequence)
| 标题 | 数据集 | 描述 | Notebook |
|---|---|---|---|
| 使用简单字符 RNN 生成新文本(Charles Dickens) | TBD | TBD |
模型评估
K 折交叉验证(K-Fold Cross-Validation)
| 标题 | 数据集 | 描述 | Notebook |
|---|---|---|---|
| 基线 CNN | MNIST | 采用传统训练/验证/测试划分的简单基线 | |
使用 pl_cross 的 K 折交叉验证 |
MNIST | 使用 pl_cross 库进行 5 折交叉验证 |
数据增强
| 标题 | 数据集 | 描述 | Notebook |
|---|---|---|---|
| 图像数据的 AutoAugment 与 TrivialAugment | CIFAR-10 | 使用 AutoAugment 和 TrivialAugment 训练 ResNet-18 |
技巧与窍门
| 标题 | 数据集 | 描述 | Notebook |
|---|---|---|---|
| 周期性学习率(Cyclical Learning Rate) | TBD | TBD | |
| 随批次大小递增的退火(CIFAR-10 与 AlexNet) | TBD | TBD | |
| 梯度裁剪(MNIST 上的 MLP) | TBD | TBD |
迁移学习(Transfer Learning)
| 标题 | 数据集 | 描述 | Notebook |
|---|---|---|---|
| 迁移学习示例(在 ImageNet 上预训练的 VGG16 用于 Cifar-10) | TBD | TBD |
可视化与解释
| 标题 | 数据集 | 描述 | Notebook |
|---|---|---|---|
| 原始损失梯度(相对于输入)可视化(基于用于 Kaggle 猫狗图像的 VGG16 卷积神经网络) | TBD | TBD | |
| 引导反向传播(基于用于 Kaggle 猫狗图像的 VGG16 卷积神经网络) | TBD | TBD |
PyTorch 工作流与机制
PyTorch Lightning 示例
| 标题 | 数据集 | 描述 | Notebook |
|---|---|---|---|
| 在 Lightning 中使用 TensorBoard 的 MLP —— 继续训练上一个模型 | TBD | TBD | |
| 在 Lightning 中使用 TensorBoard 的 MLP —— 保存最佳模型检查点 | TBD | TBD |
自定义数据集
训练与预处理
提升内存效率
| 标题 | 数据集 | 描述 | Notebook |
|---|---|---|---|
| 梯度检查点演示(在 CIFAR-10 上训练的 Network-in-Network) | TBD | TBD |
并行计算
| 标题 | 描述 | Notebook |
|---|---|---|
| 使用 DataParallel 进行多 GPU 训练 —— CelebA 上的 VGG-16 性别分类器 | TBD | |
| 使用流水线并行(Pipeline Parallelism)将模型分布到多个 GPU(VGG-16 示例) | TBD |
其他
| 标题 | 数据集 | 描述 | Notebook |
|---|---|---|---|
| 启用与禁用确定性行为的 PyTorch —— 运行时基准测试 | TBD | TBD | |
| Sequential API 与 hooks | TBD | TBD | |
| 层内权重共享 | TBD | TBD | |
| 仅使用 Matplotlib 在 Jupyter Notebook 中实时绘制训练性能 | TBD | TBD |
Autograd
| 标题 | 数据集 | 描述 | Notebook |
|---|---|---|---|
| 在 PyTorch 中获取中间变量的梯度 | TBD | TBD |
TensorFlow 工作流与机制
自定义数据集
| 标题 | 描述 | Notebook |
|---|---|---|
| 使用 NumPy NPZ 归档文件为小批量训练分块图像数据集 | TBD | |
| 使用 HDF5 为小批量训练存储图像数据集 | TBD | |
| 使用输入管道从 TFRecords 文件读取数据 | TBD | |
| 使用 Queue Runners 直接从磁盘供给图像 | TBD | |
| 使用 TensorFlow 的 Dataset API | TBD |
训练与预处理
| 标题 | 数据集 | 描述 | Notebook |
|---|---|---|---|
| 保存与加载训练好的模型——从 TensorFlow 检查点文件和 NumPy NPZ 归档 | TBD | TBD |
相关库
| 标题 | 描述 | Notebook |
|---|---|---|
| TorchMetrics | 我们如何使用它,以及 .update() 与 .forward() 有何区别? |