代码示例

代码示例

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

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

= 良好的入门示例

V3
= Keras 3 示例

计算机视觉

图像分类

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

图像分割

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

目标检测

V2
使用 RetinaNet 进行目标检测
V3
使用迁移学习进行关键点检测
V3
使用视觉转换器进行目标检测

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
研究视觉转换器表示
V3
Grad-CAM 类激活可视化

图像相似性搜索

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

视频

V3
使用 CNN-RNN 架构进行视频分类
V3
使用卷积 LSTM 进行下一帧视频预测
V3
使用转换器进行视频分类
V3
视频视觉转换器

性能指南

V3
梯度中心化以提升训练性能
V3
学习在视觉Transformer中进行标记化
V3
知识蒸馏
V3
FixRes:修复训练-测试分辨率差异
V3
具有LayerScale的类别注意力图像Transformer
V3
使用聚合注意力增强卷积神经网络
V3
学习调整大小

其他

V2
使用AdaMatch进行半监督和域适应
V2
Barlow Twins用于对比式SSL
V2
带有监督的一致性训练
V2
蒸馏视觉Transformer
V2
Focal Modulation:自注意力替代方案
V2
使用前馈算法进行图像分类
V2
使用自动编码器的掩码图像建模
V2
使用 🤗Transformers 的 Segment Anything 模型
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
使用宽、深和交叉网络进行结构化数据学习
V2
使用门控残差网络和变量选择网络进行分类
V2
使用TensorFlow决策树进行分类
V3
使用神经决策树进行分类
V3
使用TabTransformer进行结构化数据学习

推荐

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

时间序列

时间序列分类

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

异常检测

V3
使用自动编码器进行时间序列异常检测

时间序列预测

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

生成式深度学习

图像生成

V3
降噪扩散隐式模型
V3
使用稳定扩散在潜在空间中漫步
V2
DreamBooth
V2
降噪扩散概率模型
V2
通过文本反转教授StableDiffusion新概念
V2
微调稳定扩散
V3
变分自动编码器
V3
GAN重写Model.train_step
V3
WGAN-GP重写Model.train_step
V3
条件GAN
V3
CycleGAN
V2
使用自适应判别器增强的数据高效GAN
V3
深度梦境
V3
用于条件图像生成的GauGAN
V3
PixelCNN
V2
使用StyleGAN生成人脸图像
V2
矢量量化变分自动编码器

风格迁移

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

文本生成

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

音频生成

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

图生成

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

其他

V2
使用稳定扩散3在潜在空间中漫步
V2
使用Real NVP进行密度估计

音频数据

语音识别

V3
使用Transformer进行自动语音识别

其他

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

强化学习

演员评论家方法
近端策略优化
Atari Breakout的深度Q学习
深度确定性策略梯度(DDPG)

图数据

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

Keras快速指南

Keras使用技巧

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

服务

V3
使用TFServing服务TensorFlow模型

机器学习最佳实践

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

其他

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

添加新的代码示例

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

  • 代码行数应少于300行(注释可以任意长)。
  • 它们应该展示现代Keras的最佳实践。
  • 它们在主题上应该与上面列出的所有示例有实质性区别。
  • 它们应该有详细的文档和注释。

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

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