代码示例

代码示例

我们的代码示例是简短的(少于 300 行代码),专注于垂直深度学习工作流程的演示。

我们所有的示例都编写为 Jupyter Notebook,并且可以在 Google Colab 中一键运行。Google Colab 是一个托管的 notebook 环境,无需设置,并在云端运行。Google Colab 包括 GPU 和 TPU 运行时。

= 好的入门示例

V3
= Keras 3 示例

计算机视觉

图像分类

V3
从零开始的图像分类
V3
简单的 MNIST 卷积网络
V3
通过使用 EfficientNet 微调进行图像分类
V3
使用 Vision Transformer 进行图像分类
V3
使用基于注意力的深度多实例学习进行分类
V3
使用现代 MLP 模型进行图像分类
V3
一种移动友好的基于 Transformer 的图像分类模型
V3
在 TPU 上进行肺炎分类
V3
紧凑卷积 Transformer
V3
使用 ConvMixer 进行图像分类
V3
使用 EANet (外部注意力 Transformer) 进行图像分类
V3
卷积神经网络
V3
使用 Perceiver 进行图像分类
V3
使用 Reptile 进行少样本学习
V3
使用 SimCLR 对比预训练进行半监督图像分类
V3
使用 Swin Transformer 进行图像分类
V3
在小型数据集上训练 Vision Transformer
V3
无注意力的 Vision Transformer
V3
使用全局上下文 Vision Transformer 进行图像分类
V3
当循环神经网络遇到 Transformer
V3
使用 BigTransfer (BiT) 进行图像分类

图像分割

V3
使用类似 U-Net 的架构进行图像分割
V3
使用 DeepLabV3+ 进行多类语义分割
V2
使用 BASNet 进行高精度边界分割
V3
使用可组合的全卷积网络进行图像分割

目标检测

V2
使用 RetinaNet 进行目标检测
V3
使用迁移学习进行关键点检测
V3
使用 Vision Transformer 进行目标检测

3D

V3
从 CT 扫描进行 3D 图像分类
V3
单目深度估计
V3
使用 NeRF 进行 3D 体积渲染
V3
使用 PointNet 进行点云分割
V3
点云分类

OCR

V3
用于读取验证码的 OCR 模型
V3
手写识别

图像增强

V3
用于图像去噪的卷积自编码器
V3
使用 MIRNet 进行弱光图像增强
V3
使用高效亚像素 CNN 进行图像超分辨率
V3
用于单图像超分辨率的增强型深度残差网络
V3
用于弱光图像增强的 Zero-DCE

数据增强

V3
用于图像分类的 CutMix 数据增强
V3
用于图像分类的 MixUp 增强
V3
用于提高鲁棒性的图像分类 RandAugment

图像 & 文本

V3
图像描述
V2
使用双编码器的自然语言图像搜索

视觉模型可解释性

V3
可视化卷积网络学习的内容
V3
使用积分梯度进行模型可解释性分析
V3
研究 Vision Transformer 表示
V3
Grad-CAM 类激活可视化

图像相似度搜索

V2
近似重复图像搜索
V3
语义图像聚类
V3
使用带有对比损失的 Siamese 网络进行图像相似度估计
V3
使用带有三元组损失的 Siamese 网络进行图像相似度估计
V3
用于图像相似度搜索的度量学习
V2
使用 TensorFlow Similarity 进行图像相似度搜索的度量学习
V3
使用 NNCLR 进行自监督对比学习

视频

V3
使用 CNN-RNN 架构进行视频分类
V3
使用卷积 LSTM 进行下一帧视频预测
V3
使用 Transformer 进行视频分类
V3
视频 Vision Transformer

性能技巧

V3
用于更好训练性能的梯度中心化
V3
在 Vision Transformer 中学习分词
V3
知识蒸馏
V3
FixRes:修复训练-测试分辨率差异
V3
带有 LayerScale 的 Class Attention Image Transformer
V3
使用聚合注意力增强卷积网络
V3
学习调整大小

其他

V2
使用 AdaMatch 进行半监督和领域自适应
V2
用于对比 SSL 的 Barlow Twins
V2
使用监督的一致性训练
V2
蒸馏 Vision Transformer
V2
焦点调制:自注意力的替代方案
V2
使用 Forward-Forward 算法进行图像分类
V2
使用自编码器进行掩码图像建模
V2
带有 🤗Transformers 的 Segment Anything Model
V2
使用 SegFormer 和 Hugging Face Transformers 进行语义分割
V2
使用 SimSiam 进行自监督对比学习
V2
监督对比学习
V2
使用 YOLOV8 和 KerasCV 进行高效目标检测

自然语言处理

文本分类

V3
从零开始的文本分类
V3
使用主动学习进行评论分类
V3
使用 FNet 进行文本分类
V2
大规模多标签文本分类
V3
使用 Transformer 进行文本分类
V3
使用 Switch Transformer 进行文本分类
V2
使用决策森林和预训练嵌入进行文本分类
V3
使用预训练词嵌入
V3
IMDB 上的双向 LSTM
V3
使用 KerasHub 和 tf.distribute 进行数据并行训练

机器翻译

V3
使用 KerasHub 进行英语到西班牙语的翻译
V3
使用序列到序列 Transformer 进行英语到西班牙语的翻译
V3
字符级循环序列到序列模型

蕴含关系预测

V2
多模态蕴含关系

命名实体识别

V3
使用 Transformer 进行命名实体识别

序列到序列

V2
使用 BERT 进行文本提取
V3
用于执行数字加法的序列到序列学习

文本相似度搜索

V3
使用 KerasHub 进行语义相似度计算
V3
使用 BERT 进行语义相似度计算
V3
使用 Siamese RoBERTa 网络进行句子嵌入

语言建模

V3
使用 BERT 进行端到端掩码语言建模
V3
使用 BART 进行抽象文本摘要
V2
使用 Hugging Face Transformers 预训练 BERT

参数高效微调

V3
使用 LoRA 对 GPT-2 进行参数高效微调

其他

V2
使用迁移学习的多项选择任务
V2
使用 Hugging Face Transformers 进行问答
V2
使用 Hugging Face Transformers 进行抽象摘要

结构化数据

结构化数据分类

V3
使用 FeatureSpace 进行结构化数据分类
V3
FeatureSpace 高级用例
V3
不平衡分类:信用卡欺诈检测
V3
从零开始的结构化数据分类
V3
使用 Wide, Deep 和 Cross 网络进行结构化数据学习
V3
使用门控残差和变量选择网络进行分类
V2
使用 TensorFlow 决策森林进行分类
V3
使用神经决策森林进行分类
V3
使用 TabTransformer 进行结构化数据学习

结构化数据回归

V3
客户终身价值的深度学习

推荐

V3
用于电影推荐的协同过滤
V3
基于 Transformer 的推荐系统

时间序列

时间序列分类

V3
从零开始的时间序列分类
V3
使用 Transformer 模型进行时间序列分类
V3
用于动作识别的脑电图信号分类
V3
用于支付卡欺诈检测的事件分类

异常检测

V3
使用自编码器的时间序列异常检测

时间序列预测

V3
使用图神经网络和 LSTM 进行交通预测
V3
用于天气预测的时间序列预测

其他

V2
用于脑机接口的脑电图信号分类

生成式深度学习

图像生成

V3
去噪扩散隐式模型
V3
使用 Stable Diffusion 3 漫步潜在空间
V2
DreamBooth
V2
去噪扩散概率模型
V2
通过文本反演教导 StableDiffusion 新概念
V2
微调 Stable Diffusion
V3
变分自编码器
V3
GAN 重写 Model.train_step
V3
WGAN-GP 重写 Model.train_step
V3
条件 GAN
V3
CycleGAN
V3
使用自适应判别器增强的数据高效 GAN
V3
Deep Dream
V3
用于条件图像生成的 GauGAN
V3
PixelCNN
V2
使用 StyleGAN 生成人脸图像
V2
向量量化变分自编码器
V3
使用 Stable Diffusion 漫步潜在空间

风格迁移

V3
神经风格迁移
V2
使用 AdaIN 的神经风格迁移

文本生成

V3
使用 KerasHub 的 GPT2 文本生成
V3
使用 KerasHub 从零开始的 GPT 文本生成
V3
使用微型 GPT 进行文本生成
V3
使用 LSTM 进行字符级文本生成
V2
使用 FNet 进行文本生成

音频生成

V3
使用 Transformer 模型进行音乐生成

图生成

V3
使用 VAE 生成药物分子
V2
使用带有 R-GCN 的 WGAN-GP 生成小型分子图

其他

V2
使用 Real NVP 进行密度估计

音频数据

人声分离

V3
使用编码器-解码器架构进行人声分离

语音识别

V3
使用 Transformer 的自动语音识别

其他

V2
使用 CTC 的自动语音识别
V2
使用特征匹配的基于 MelGAN 的频谱图反演
V2
说话人识别
V2
使用 STFTSpectrogram 层进行音频分类
V2
使用迁移学习进行英语说话人口音识别
V2
使用 Hugging Face Transformers 进行音频分类

强化学习

Actor Critic 方法
近端策略优化
用于 Atari Breakout 的深度 Q-Learning
深度确定性策略梯度 (DDPG)

图数据

用于节点分类的图注意力网络 (GAT)
使用图神经网络进行节点分类
用于分子属性预测的消息传递神经网络 (MPNN)
使用 node2vec 进行图表示学习

Keras 快速技巧

Keras 使用技巧

V3
使用 LoRA 和 QLoRA 对 Gemma 进行参数高效微调
V3
使用简单 Transformer 模型进行 Float8 训练和推理
V3
Keras 调试技巧
V3
自定义 Conv2D 层的卷积操作
V3
Trainer 模式
V3
Endpoint layer 模式
V3
Keras 模型中的可重复性
V3
使用 TensorFlow NumPy 编写 Keras 模型
V3
简单自定义层示例:Antirectifier
V3
使用函数式子类化打包 Keras 模型以进行广泛分发

服务

V3
使用 TFServing 服务 TensorFlow 模型

ML 最佳实践

V3
估计模型训练所需的样本大小
V3
用于推荐系统的内存高效嵌入
V3
创建 TFRecords

其他

V2
使用混合密度网络近似非函数映射
V2
概率贝叶斯神经网络
V2
知识蒸馏技巧
V2
在 Keras 回调中评估和导出 scikit-learn 指标
V2
如何在 TFRecord 文件上训练 Keras 模型

添加新的代码示例

我们欢迎新的代码示例!以下是我们的规则

  • 它们应少于 300 行代码(注释可以任意长)。
  • 它们应演示现代 Keras 最佳实践。
  • 它们在主题上应与上面列出的所有示例有很大不同。
  • 它们应该被广泛记录和注释。

新示例通过拉取请求添加到 keras.io 存储库。它们必须以遵循特定格式的 .py 文件提交。它们通常从 Jupyter notebook 生成。有关更多详细信息,请参阅 tutobooks 文档

如果您想将 Keras 2 示例转换为 Keras 3,请向 keras.io 存储库打开拉取请求。