Keras - 深度学习



Keras 提供了一个完整的框架来创建任何类型的深度神经网络。Keras 既创新又易于学习。它支持从简单的神经网络到非常庞大且复杂的神经网络模型。让我们在本节中了解 Keras 框架的架构以及 Keras 如何帮助深度学习。

Keras 的架构

Keras API 可以分为三个主要类别:

  • 模型
  • 核心模块

在 Keras 中,每个 ANN 都由Keras 模型表示。反过来,每个 Keras 模型都是Keras 层的组合,并表示 ANN 层,如输入层、隐藏层、输出层、卷积层、池化层等。Keras 模型和层访问Keras 模块以获取激活函数、损失函数、正则化函数等。使用 Keras 模型、Keras 层和 Keras 模块,任何 ANN 算法(CNN、RNN 等)都可以以简单有效的方式表示。

下图描述了模型、层和核心模块之间的关系:

Architecture of Keras

让我们看看 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 模块。

广告

© . All rights reserved.