程式碼範例

程式碼範例

我們的程式碼範例簡短(少於 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
Compact Convolutional Transformers
V3
使用 ConvMixer 的影像分類
V3
使用 EANet(外部注意力 Transformer)的影像分類
V3
卷積神經網路
V3
使用 Perceiver 的影像分類
V3
使用 Reptile 的少樣本學習
V3
使用 SimCLR 對比預訓練的半監督影像分類
V3
使用 Swin Transformers 的影像分類
V3
在小型資料集上訓練 Vision Transformer
V3
一個沒有注意力的 Vision Transformer
V3
使用 Global Context Vision Transformer 的影像分類
V3
當遞迴遇上 Transformers
V3
使用 BigTransfer (BiT) 的影像分類

影像分割

V3
使用類似 U-Net 架構的影像分割
V3
使用 DeepLabV3+ 的多類別語義分割
V2
使用 BASNet 的高精度邊界分割
V3
使用可組合全卷積網路的影像分割

物件偵測

V2
使用 RetinaNet 的物件偵測
V3
使用遷移學習的關鍵點偵測
V3
使用 Vision Transformers 的物件偵測

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
使用 Integrated Gradients 的模型可解釋性
V3
調查 Vision Transformer 表示
V3
Grad-CAM 類別啟動可視化

影像相似度搜尋

V2
近重複影像搜尋
V3
語義影像群集
V3
使用 Siamese Network 和對比損失的影像相似度估計
V3
使用 Siamese Network 和三元組損失的影像相似度估計
V3
用於影像相似度搜尋的度量學習
V2
使用 TensorFlow Similarity 的影像相似度搜尋度量學習
V3
使用 NNCLR 的自我監督對比學習

影片

V3
使用 CNN-RNN 架構的影片分類
V3
使用卷積 LSTM 的下一幀影片預測
V3
使用 Transformers 的影片分類
V3
Video Vision Transformer

效能秘訣

V3
用於更好訓練效能的梯度中心化
V3
在 Vision Transformers 中學習標記化
V3
知識蒸餾
V3
FixRes:修正訓練-測試解析度差異
V3
具有 LayerScale 的類別注意力影像 Transformers
V3
使用聚合注意力增強卷積網路
V3
學習調整大小

其他

V2
使用 AdaMatch 的半監督和領域適應
V2
用於對比 SSL 的 Barlow Twins
V2
使用監督的一致性訓練
V2
蒸餾 Vision Transformers
V2
Focal Modulation:Self-Attention 的替代方案
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
使用 Transformers 的命名實體辨識

序列到序列

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, and Cross 網路的結構化資料學習
V3
使用 Gated Residual 和 Variable Selection Networks 進行分類
V2
使用 TensorFlow Decision Forests 進行分類
V3
使用 Neural Decision Forests 進行分類
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
透過 Textual Inversion 教導 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 的音訊分類

強化學習

演員-評論家方法
近端策略最佳化
Atari Breakout 的深度 Q 學習
深度決定性策略梯度 (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
使用 Functional Subclassing 打包 Keras 模型以進行廣泛發布

服務

V3
使用 TFServing 服務 TensorFlow 模型

ML 最佳實務

V3
估計模型訓練所需的樣本大小
V3
用於推薦系統的記憶體效率嵌入
V3
建立 TFRecords

其他

V2
使用混合密度網路逼近非函數映射
V2
概率貝氏神經網路
V2
知識蒸餾技巧
V2
在 Keras 回呼中評估和匯出 scikit-learn 指標
V2
如何在 TFRecord 檔案上訓練 Keras 模型

新增程式碼範例

我們歡迎新的程式碼範例!以下是我們的規則

  • 它們的程式碼長度應少於 300 行(註解長度不限)。
  • 它們應示範現代 Keras 最佳實務。
  • 它們的主題應與上面列出的所有範例有顯著不同。
  • 它們應有詳盡的文件和註解。

新的範例透過 Pull Request 新增至 keras.io 儲存庫。它們必須以遵循特定格式的 .py 檔案提交。它們通常從 Jupyter Notebook 產生。請參閱 tutobooks 文件 以取得更多詳細資訊。

如果您想將 Keras 2 範例轉換為 Keras 3,請開啟一個 Pull Request 到 keras.io 儲存庫