本文详细介绍了 Keras API 的主要组件,阐述了构成 Keras 深度学习框架的基础类和接口。有关 API 如何生成的信息,请参阅API 生成。
核心 API 组件是 Keras 高级、用户友好型接口的基本构建块,同时保持后端无关的操作。它们使用户能够在不同后端(TensorFlow、JAX、PyTorch、NumPy 和 OpenVINO)之间一致地构建、训练和部署深度学习模型。
来源:keras/__init__.py1-80 keras/api/__init__.py1-60 README.md1-124
Keras API 由多个核心组件组成,每个组件都为构建和训练深度学习模型提供了关键功能。
模型是高级容器,用于定义神经网络的架构、输入和输出。
关键类
Model:所有 Keras 模型的基础类,支持编译、训练、评估和推理。Sequential:一种特殊类型的模型,用于具有单个输入和输出的线性层堆栈。模型处理的操作包括:
.fit() 进行训练.evaluate() 进行评估.predict() 进行预测.save() 和 keras.saving.load_model() 进行保存和加载层是 Keras 中神经网络的基本构建块,封装了权重、计算和状态。
关键类
Layer:所有层的基类,处理权重、计算和形状。Input:用于创建模型输入的特殊层。InputSpec:输入形状的规范,用于验证输入。层可以是:
每个层都实现了一个 call() 方法,执行前向计算并可选地跟踪反向传播的变量。
操作是后端无关的函数,驱动 Keras 在不同框架上的计算。
关键类
Operation:后端无关操作的基类。Function:用于创建可调用图函数的 Keras 函数类。操作被组织成模块:
keras.ops.numpy:兼容 NumPy 的操作keras.ops.nn:神经网络操作操作有两种执行模式:
KerasTensor 对象支持模型训练、评估和性能测量的组件。
关键类
Loss:用于优化模型的损失函数基类。Metric:用于评估模型性能的指标基类。Optimizer:更新模型权重的优化器基类。这些组件在模型训练过程中协同工作:
来源:keras/api/__init__.py50-51 keras/api/__init__.py56
在 Keras 框架内表示张量和变量的类。
关键类
KerasTensor:在模型构建期间使用的符号张量表示。Variable:保存张量值的可训练参数对象。来源:keras/api/__init__.py37 keras/api/__init__.py36
用于在模型训练期间优化内存使用的组件。
关键类
RematScope:用于启用重计算(梯度检查点)的上下文管理器。重计算通过在反向传播期间重新计算中间激活而不是存储它们,从而以计算换取内存,这对于在内存限制内训练大型模型特别有用。
来源:keras/src/backend/common/remat.py8-186 keras/src/backend/common/remat_test.py13-118
允许自定义模型行为的组件。
关键类
Initializer:权重初始化器的基类。Regularizer:权重正则化器的基类。Quantizer:权重量化的基类。这些组件支持模型训练和部署的自定义:
来源:keras/api/__init__.py46 keras/api/__init__.py58 keras/api/__init__.py57
控制 Keras 操作执行行为的组件。
关键类
StatelessScope:用于无状态(确定性)执行的上下文管理器。SymbolicScope:用于符号执行的上下文管理器。这些作用域修改了操作的执行方式:
Keras API 被组织成模块,将相关功能进行分组:
| 模块 | 描述 | 关键组件 |
|---|---|---|
keras.models | 模型定义 | Model、Sequential |
keras.layers | 层定义 | 核心层、卷积层等。 |
keras.losses | 损失函数 | Loss,以及像 BinaryCrossentropy 这样的预定义损失函数 |
keras.metrics | 性能指标 | Metric,以及像 Accuracy 这样的预定义指标 |
keras.optimizers | 优化算法 | Optimizer,以及像 Adam 这样的实现 |
keras.callbacks | 训练回调 | Callback,以及像 EarlyStopping 这样的实现 |
keras.preprocessing | 数据预处理 | 预处理层、图像预处理 |
keras.applications | 预训练模型 | 像 ResNet、VGG 这样的模型 |
keras.ops | 后端操作 | 神经网络和兼容 NumPy 的操作 |
keras.backend | 后端接口 | 后端特定功能和配置 |
keras.saving | 模型序列化 | 用于保存和加载模型的功能 |
keras.utils | 实用函数 | 各种任务的辅助函数 |
来源:keras/__init__.py1-80 keras/api/__init__.py7-35
Keras API 是使用 api_gen.py 从源代码自动生成的。这确保了公共 API 的一致性,同时保持了清晰的内部实现。API 组织在 keras/api/ 目录中,每个模块都有自己的文件或子目录。
有关 API 如何生成的更多详细信息,请参阅API 生成。