AgentSkillsCN

deep-learning

全面指南:使用 Keras 3 进行深度学习(多后端支持:JAX、TensorFlow、PyTorch)。适用于构建神经网络、用于计算机视觉的 CNN、用于自然语言处理的 RNN/Transformer、时间序列预测,或生成式模型(VAE、GAN)。涵盖模型构建(Sequential/Functional/Subclassing API)、自定义训练循环、数据增强、迁移学习,以及生产环境的最佳实践。

SKILL.md
--- frontmatter
name: deep-learning
description: "Comprehensive guide for Deep Learning with Keras 3 (Multi-Backend: JAX, TensorFlow, PyTorch). Use when building neural networks, CNNs for computer vision, RNNs/Transformers for NLP, time series forecasting, or generative models (VAEs, GANs). Covers model building (Sequential/Functional/Subclassing APIs), custom training loops, data augmentation, transfer learning, and production best practices."

Deep Learning with Keras 3

Patterns and best practices based on Deep Learning with Python, 2nd Edition by François Chollet, updated for Keras 3 (Multi-Backend).

Core Workflow

  1. Prepare Data: Normalize, split train/val/test, create tf.data.Dataset
  2. Build Model: Sequential, Functional, or Subclassing API
  3. Compile: model.compile(optimizer, loss, metrics)
  4. Train: model.fit(data, epochs, validation_data, callbacks)
  5. Evaluate: model.evaluate(test_data)

Model Building APIs

Sequential - Simple stack of layers:

python
model = keras.Sequential([
    layers.Dense(64, activation="relu"),
    layers.Dense(10, activation="softmax")
])

Functional - Multi-input/output, shared layers, non-linear topologies:

python
inputs = keras.Input(shape=(64,))
x = layers.Dense(64, activation="relu")(inputs)
outputs = layers.Dense(10, activation="softmax")(x)
model = keras.Model(inputs=inputs, outputs=outputs)

Subclassing - Full flexibility with call() method:

python
class MyModel(keras.Model):
    def __init__(self):
        super().__init__()
        self.dense1 = layers.Dense(64, activation="relu")
        self.dense2 = layers.Dense(10, activation="softmax")

    def call(self, inputs):
        x = self.dense1(inputs)
        return self.dense2(x)

Quick Reference: Loss & Optimizer Selection

TaskLossFinal Activation
Binary classificationbinary_crossentropysigmoid
Multiclass (one-hot)categorical_crossentropysoftmax
Multiclass (integers)sparse_categorical_crossentropysoftmax
Regressionmse or maeNone

Optimizers: rmsprop (default), adam (popular), sgd (with momentum for fine-tuning)

Domain-Specific Guides

TopicReferenceWhen to Use
Keras 3 Migrationkeras3_changes.mdSTART HERE: Multi-backend setup, keras.ops, import keras
Fundamentalsbasics.mdOverfitting, regularization, data prep, K-fold validation
Keras Deep Divekeras_working.mdCustom metrics, callbacks, training loops, tf.function
Computer Visioncomputer_vision.mdConvnets, data augmentation, transfer learning
Advanced CVadvanced_cv.mdSegmentation, ResNets, Xception, Grad-CAM
Time Seriestimeseries.mdRNNs (LSTM/GRU), 1D convnets, forecasting
NLP & Transformersnlp_transformers.mdText processing, embeddings, Transformer encoder/decoder
Generative DLgenerative_dl.mdText generation, VAEs, GANs, style transfer
Best Practicesbest_practices.mdKerasTuner, mixed precision, multi-GPU, TPU

Essential Callbacks

python
callbacks = [
    keras.callbacks.EarlyStopping(monitor="val_loss", patience=3),
    keras.callbacks.ModelCheckpoint("best.keras", save_best_only=True),
    keras.callbacks.TensorBoard(log_dir="./logs")
]
model.fit(..., callbacks=callbacks)

Utility Scripts

ScriptDescription
quick_train.pyReusable training template with standard callbacks and history plotting
visualize_filters.pyVisualize convnet filter patterns via gradient ascent