Code examples

代码示例

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

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

= Good starter example

V3
= Keras 3 example

计算机视觉

Image classification

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

Image segmentation

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

Object detection

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

3D

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

OCR

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

Image enhancement

V3
用于图像去噪的卷积自编码器
V3
使用MIRNet进行低光照图像增强
V3
使用高效子像素卷积神经网络进行图像超分辨率
V2
用于单张图像超分辨率的增强型深度残差网络
V3
用于低光照图像增强的Zero-DCE

Data augmentation

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

Image & Text

V3
图像说明生成
V2
使用双编码器进行自然语言图像搜索

Vision models interpretability

V3
可视化卷积神经网络的学习内容
V3
用集成梯度解释模型
V3
研究视觉变换器表示
V3
Grad-CAM 类激活可视化

Image similarity search

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

Video

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

Performance recipes

V3
为了更好的训练性能进行梯度集中化
V3
学习在视觉Transformers中进行标记化
V3
知识蒸馏
V3
FixRes:解决训练与测试分辨率不一致的问题
V3
带有LayerScale的类注意力图像变压器
V3
用聚合注意力增强卷积神经网络
V3
学习调整大小

Other

V2
Semi-supervision and domain adaptation with AdaMatch
V2
Barlow Twins for Contrastive SSL
V2
Consistency training with supervision
V2
Distilling Vision Transformers
V2
Focal Modulation: A replacement for Self-Attention
V2
Using the Forward-Forward Algorithm for Image Classification
V2
Masked image modeling with Autoencoders
V2
Segment Anything Model with 🤗Transformers
V2
Semantic segmentation with SegFormer and Hugging Face Transformers
V2
Self-supervised contrastive learning with SimSiam
V2
Supervised Contrastive Learning
V2
When Recurrence meets Transformers
V2
Efficient Object Detection with YOLOV8 and KerasCV

自然语言处理

Text classification

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

Machine translation

V3
使用KerasNLP进行英西翻译
V3
使用序列到序列的Transformer进行英语到西班牙语的翻译
V3
字符级递归序列到序列模型

Entailment prediction

V2
多模态蕴涵

Named entity recognition

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

Sequence-to-sequence

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

Text similarity search

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

Language modeling

V2
端到端的BERT掩蔽语言模型
V2
使用Hugging Face Transformers进行BERT预训练

Parameter efficient fine-tuning

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

Other

V2
Abstractive Text Summarization with BART
V2
Training a language model from scratch with 🤗 Transformers and TPUs
V2
MultipleChoice Task with Transfer Learning
V2
Question Answering with Hugging Face Transformers
V2
Abstractive Summarization with Hugging Face Transformers

结构化数据

Structured data classification

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

Recommendation

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

时间序列

Timeseries classification

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

Anomaly detection

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

Timeseries forecasting

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

生成式深度学习

Image generation

V3
去噪扩散隐式模型
V3
使用稳定扩散穿越潜在空间
V2
DreamBooth 梦想展位
V2
去噪扩散概率模型
V2
通过文本反演教会StableDiffusion新概念
V2
微调稳定扩散
V3
变分自编码器
V3
在GAN中重写Model.train_step
V3
WGAN-GP 覆盖 Model.train_step
V3
条件生成对抗网络
V2
CycleGAN
V2
具有自适应鉴别器增强的数据高效GANs
V3
深度梦境
V3
用于条件图像生成的GauGAN
V3
PixelCNN
V2
使用StyleGAN生成面部图像
V2
向量量化变分自编码器

Style transfer

V3
神经风格迁移
V2
利用AdaIN进行神经风格迁移

Text generation

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

Graph generation

V2
使用变分自编码器生成药物分子
V2
使用R-GCN的WGAN-GP生成小分子图

Other

V2
Density estimation using Real NVP

音频数据

Speech recognition

V3
使用Transformer的自动语音识别

Other

V2
Automatic Speech Recognition using CTC
V2
MelGAN-based spectrogram inversion using feature matching
V2
Speaker Recognition
V2
English speaker accent recognition using Transfer Learning
V2
Audio Classification with Hugging Face Transformers

强化学习

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

图数据

Graph attention network (GAT) for node classification
Node Classification with Graph Neural Networks
Message-passing neural network (MPNN) for molecular property prediction
Graph representation learning with node2vec

快速Keras食谱

Keras usage tips

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

Serving

V3
使用TFServing提供TensorFlow模型

ML best practices

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

Other

V2
Approximating non-Function Mappings with Mixture Density Networks
V2
Probabilistic Bayesian Neural Networks
V2
Knowledge distillation recipes
V2
Evaluating and exporting scikit-learn metrics in a Keras callback
V2
How to train a Keras model on TFRecord files

添加新的代码示例

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

  • 应该少于 300 行代码(注释可以随意长)。
  • 应该展示现代 Keras 的最佳实践。
  • 在主题上应与上述所有示例有实质性的不同。
  • 应该有充分的文档和注释。

新的示例通过向 keras.io 仓库 提交 Pull Requests 添加。 它们必须作为遵循特定格式的 .py 文件提交。它们通常是从 Jupyter 笔记本生成的。 有关更多详细信息,请参见 tutobooks 文档

如果您想将 Keras 2 示例转换为 Keras 3,请向 keras.io 仓库 提交 Pull Request。