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模型有两种类型,如下所述

序列 模型 – 序列模型基本上是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模型中导入 序列 模型

  • 第 2行 导入 密集 层和 激活 模块

  • 第 4行 使用 Sequential API创建一个新的顺序模型

  • 第 5行 添加一个密集层(Dense API),并添加 relu activation(使用Activation模块)功能。

顺序 模型也暴露了 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模型中导入 序列 模型

  • 第 2行 导入 密集 层和 激活 模块

  • 第 4行 使用 Sequential API创建一个新的顺序模型

  • 第 5 行添加了一个密集层(Dense API),并带有 relu 激活(使用Activation模块)功能。

  • 第 6 行添加一个dropout层(Dropout API)来处理过度拟合。

  • 第 7 行增加了另一个密集层(Dense API),并使用 重新 激活(使用Activation模块)功能。

  • 第 8 行增加了另一个dropout层(Dropout API)来处理过度拟合。

  • 第9行 增加了最后一个密集层(Dense API),使用 softmax 激活(使用Activation模块)函数。

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

核心模块

Keras还提供了很多内置的神经网络相关函数,以正确创建Keras模型和Keras层。其中一些函数如下—

  • 激活模块 – 激活函数是ANN中的一个重要概念,激活模块提供了许多激活函数,如softmax、relu等、

  • 损失模块 – 损失模块提供损失函数,如均方误差、均方绝对误差、泊松等、

  • 优化器模块 – 优化器模块提供优化器函数,如adam、sgd等、

  • 正则器– 正则器模块提供了L1正则器、L2正则器等函数、

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程