- Keras 教程
- Keras - 首页
- Keras - 简介
- Keras - 安装
- Keras - 后端配置
- Keras - 深度学习概述
- Keras - 深度学习
- Keras - 模块
- Keras - 层
- Keras - 自定义层
- Keras - 模型
- Keras - 模型编译
- Keras - 模型评估和预测
- Keras - 卷积神经网络
- Keras - 使用MPL进行回归预测
- Keras - 使用LSTM RNN进行时间序列预测
- Keras - 应用
- Keras - 使用ResNet模型进行实时预测
- Keras - 预训练模型
- Keras 有用资源
- Keras - 快速指南
- Keras - 有用资源
- Keras - 讨论
Keras - 深度学习
Keras 提供了一个完整的框架来创建任何类型的深度神经网络。Keras 既创新又易于学习。它支持从简单的神经网络到非常庞大且复杂的神经网络模型。让我们在本节中了解 Keras 框架的架构以及 Keras 如何帮助深度学习。
Keras 的架构
Keras API 可以分为三个主要类别:
- 模型
- 层
- 核心模块
在 Keras 中,每个 ANN 都由Keras 模型表示。反过来,每个 Keras 模型都是Keras 层的组合,并表示 ANN 层,如输入层、隐藏层、输出层、卷积层、池化层等。Keras 模型和层访问Keras 模块以获取激活函数、损失函数、正则化函数等。使用 Keras 模型、Keras 层和 Keras 模块,任何 ANN 算法(CNN、RNN 等)都可以以简单有效的方式表示。
下图描述了模型、层和核心模块之间的关系:
让我们看看 Keras 模型、Keras 层和 Keras 模块的概述。
模型
Keras 模型有两种类型,如下所述:
顺序模型 - 顺序模型基本上是 Keras 层的线性组合。顺序模型简单、最小,并且能够表示几乎所有可用的神经网络。
一个简单的顺序模型如下所示:
from keras.models import Sequential from keras.layers import Dense, Activation model = Sequential() model.add(Dense(512, activation = 'relu', input_shape = (784,)))
其中,
第 1 行从 Keras 模型导入Sequential模型
第 2 行导入Dense层和Activation模块
第 4 行使用Sequential API 创建一个新的顺序模型
第 5 行添加一个具有relu激活(使用 Activation 模块)函数的密集层(Dense API)。
Sequential模型公开了Model类来创建自定义模型。我们可以使用子类化概念来创建我们自己的复杂模型。
函数式 API - 函数式 API 主要用于创建复杂的模型。
层
Keras 模型中的每个 Keras 层都表示实际提出的神经网络模型中的对应层(输入层、隐藏层和输出层)。Keras 提供了许多预构建的层,以便可以轻松创建任何复杂的神经网络。下面列出了一些重要的 Keras 层:
- 核心层
- 卷积层
- 池化层
- 循环层
使用顺序模型表示神经网络模型的简单 Python 代码如下所示:
from keras.models import Sequential from keras.layers import Dense, Activation, Dropout model = Sequential() model.add(Dense(512, activation = 'relu', input_shape = (784,))) model.add(Dropout(0.2)) model.add(Dense(512, activation = 'relu')) model.add(Dropout(0.2)) model.add(Dense(num_classes, activation = 'softmax'))
其中,
第 1 行从 Keras 模型导入Sequential模型
第 2 行导入Dense层和Activation模块
第 4 行使用Sequential API 创建一个新的顺序模型
第 5 行添加一个具有relu激活(使用 Activation 模块)函数的密集层(Dense API)。
第 6 行添加一个 dropout 层(Dropout API)来处理过拟合。
第 7 行添加另一个具有relu激活(使用 Activation 模块)函数的密集层(Dense API)。
第 8 行添加另一个 dropout 层(Dropout API)来处理过拟合。
第 9 行添加最终的密集层(Dense API),并使用softmax激活(使用 Activation 模块)函数。
Keras 还提供创建我们自己的自定义层的选项。自定义层可以通过子类化Keras.Layer类来创建,这类似于子类化 Keras 模型。
核心模块
Keras 还提供了许多内置的神经网络相关函数,以便正确创建 Keras 模型和 Keras 层。其中一些功能如下:
激活模块 - 激活函数是 ANN 中的一个重要概念,激活模块提供了许多激活函数,如 softmax、relu 等。
损失模块 - 损失模块提供损失函数,如 mean_squared_error、mean_absolute_error、poisson 等。
优化器模块 - 优化器模块提供优化器函数,如 adam、sgd 等。
正则化器 - 正则化器模块提供函数,如 L1 正则化器、L2 正则化器等。
让我们在下一章详细学习 Keras 模块。