Keras 深度学习

2021-11-01 10:04 更新

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 模型由两种类型:

顺序模型(Sequential Model)

顺序模型基本上是 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)

顺序模型公开了Model类供我们创建自定义模型。我们可以使用子分类概念来创建我们自己的复杂模型。

功能 API

功能 API 基本上用于创建复杂的模型。

Keras 模型中的每个 Keras 层代表实际提出的神经网络模型中的对应层(输入层、隐藏层和输出层)。Keras 提供了很多预构建层,因此可以轻松创建任何复杂的神经网络。下面指定了一些重要的 Keras 层,

  • 核心层(Core)
  • 卷积层(Convolution)
  • 池化层(Pooling)
  • 循环层(Recurrent)

使用顺序模型表示神经网络模型的简单 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 行 添加了具有softmax激活(使用 Activation 模块)功能的最终密集层(Dense API)。

Keras 还提供了创建我们自己的自定义层的选项。自定义层可以通过对 Keras.Layer类进行子分类来创建,它类似于对 Keras 模型进行子分类。

核心模块

Keras 还提供了很多内置的神经网络相关函数来正确创建 Keras 模型和 Keras 层。一些功能如下:

  • 激活(Activation)模块 激活函数是 ANN 中的一个重要概念,激活模块提供了许多激活函数,如:softmaxrelu等,
  • 损失(Loss)模块 损失模块提供损失函数,如:mean_squared_errormean_absolute_errorpoisson等,
  • 优化器(Optimizer)模块 优化器模块提供优化器功能,如:adamsgd等,
  • 正则化器(Regularizers) 正则化器模块提供L1正则化器L2正则化器等功能,

让我们在接下来的章节中详细学习 Keras 模块。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号