深度学习应用开发 课件 第3章 Keras-TensorFlow的高级API_第1页
深度学习应用开发 课件 第3章 Keras-TensorFlow的高级API_第2页
深度学习应用开发 课件 第3章 Keras-TensorFlow的高级API_第3页
深度学习应用开发 课件 第3章 Keras-TensorFlow的高级API_第4页
深度学习应用开发 课件 第3章 Keras-TensorFlow的高级API_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录1Keras概述01任务Keras特点02任务1Keras概述1Keras概述前面我们介绍过深度学习的相关概念,深度学习是机器学习框架的主要子领域之一,其主要方法核心是人工神经网络。深度学习由Theano、TensorFlow、Caffe、MXNet等各种深度学习框架支持,而Keras是功能强大且易于使用的深度学习框架之一,Keras框架建立在TensorFlow等流行的深度学习框架的基础上,旨在快速定义深度学习模型,使创建深度学习模型更为简单。2Keras特点2Keras特点Keras提供了一种简洁的方法来创建基于TensorFlow或Theano的深度学习模型,并运用了各种优化技术使神经网络API调用变得轻松高效。Keras框架具有以下功能特点:(1)用户友好Keras是专门为用户而设计的API;把用户体验放在首要位置,提供统一且易懂的API,将常见用例所需的用户操作简单化;在用户操作错误时提供清晰的说明和反馈。2Keras特点(2)模块化网络模型是由一系列独立的、完全可配置的模块组成的序列;在keras中,常见的模块有神经网络层、损失函数、优化器、初始化方法、激活函数、正则化方法等;根据所需的功能模块,可以将这些模块以尽可能少的限制组合在一起构建新模型。2Keras特点(3)易扩展性使用keras创建的模型,可以增加或删除模块,以提升模型的性能,新的模块是很容易添加的。由于能够轻松地创建可以提高模型性能的新模块,Keras更加适合高级学术研究。2Keras特点(4)基于Python实现Keras没有特定格式的单独配置文件,模块是用Python代码来定义的,这些代码紧凑,易于调试,并且易于扩展。ThankYOU!目录1Keras体系结构介绍01任务Keras搭建模型的方法02任务1Keras体系结构介绍1Keras体系结构介绍Keras具有很强的创新性,而且非常易于学习,提供了一个完整的框架来支持从简单的神经网络到复杂的神经网络模型等多种类型的神经网络的创建;Keras的体系结构可以分为三个主要类别:模型、层和核心模块;通过调用Keras模型、层和核心模块,可以以简单有效的方式构建如CNN、RNN等神经网络。2Keras搭建模型方法2Keras搭建模型方法Keras提供了序列式(Sequential)、函数式(Functional)和子类(Subclassing)三种定义模型的API,这里我们重点对序列式模型和函数式模型进行介绍。(1)序列式模型序列式模型也称为顺序模型,顺序模型基本上是Keras层的线性组成;顺序模型简单,并且能够表示几乎所有可用的神经网络。2Keras搭建模型方法序列式模型的构建使用Sequential()函数构造器来创建序列式模型,序列式模型有两种写法。以列表的形式为Sequential()函数填充参数:2Keras搭建模型方法另一种写法是使用add()函数,将各网络层添加到模型中:2Keras搭建模型方法(2)函数式模型Keras函数式模型API是用户定义多输出模型、非循环有向模型等复杂模型的有效途径。下面通过使用函数式方法构建一个全连接神经网络模型,帮助我们理解函数式模型创建方法。ThankYOU!目录1Keras核心模块介绍01任务Keras核心模块02任务1Keras核心模块介绍1Keras核心模块介绍Keras提供了许多内置的与神经网络相关的功能模块,用户可以方便地调用模块创建Keras模型和Keras层,常用的核心模块有激活函数、损失函数、优化器和正则化器等。2Keras核心模块2Keras核心模块(1)损失函数损失函数也称为目标函数或优化评分函数,诸如均方误差(mean_squared_error,MSE)、平均绝对误差(MeanAbsoluteError,MAE),泊松(poisson)等损失函数。损失函数是在模型编译的过程中设置的参数,代码如下所示:2Keras核心模块(2)评估指标评估指标用于评估当前训练模型的性能,常见的评估指标有准确率(Accuracy)、精确度(Precision)和召回率(Recall)等,评估指标也是编译模型时的一个重要参数。示例代码如下:2Keras核心模块(3)优化器优化器,即神经网络优化算法,或梯度下降算法。常见的优化器模块有Adam、SGD等。优化器可以通过改善训练方式,最小化损失值,不断优化模型。2Keras核心模块(4)激活函数激活函数是神经网络中的重要概念,激活函数模块提供了许多激活函数类型,例如softmax、relu等。激活函数可以由单独的激活函数层构建,也可以在构造网络层的时候设置激活函数参数,比如可以在添加全连接层的时候设置激活函数参数:2Keras核心模块(5)回调函数回调函数(Keras.callback)模块是一个函数集合,回调函数用在模型训练阶段,可以使用回调函数查看训练模型的状态,在使用fit()或fit_generator()训练模型时,回调函数就是一个用以访问模型的状态与性能的函数,根据模型状态采取中断训练、保存模型等措施。回调函数模块包括许多内置的函数:①keras.callback.ModelCheckPoint:在训练过程中的不同时间点,保存模型的当前权重;②keras.callback.EarlyStopping:如果验证集上的损失不再改善,则中断训练;③keras.callback.ReduceLROnPlateau:如果验证集上的损失不再改善,可以通过该回调函数降低学习率。2Keras核心模块(6)数据集Keras的数据集模块中集成了许多常用的数据集,在做模型训练时,可以直接调用数据集,比如:①CIFAR-10图像分类数据集②CIFAR-100图像分类数据集③IMDB电影评论情感分类数据集④路透社新闻主题分类数据集⑤MNIST手写字符数据集⑥Fashion-MNIST时尚物品数据集⑦Boston房价回归数据集ThankYOU!目录1Keras网络层介绍01任务Keras网络层类型02任务1Keras网络层介绍1Keras网络层介绍Keras模型中的每个层代表神经网络模型中的对应层,Keras提供了许多预构建层,如输入层、隐藏层、输出层、卷积层、池化层等,因此提高了构建复杂神经网络模型的效率。2Keras网络层类型2Keras网络层类型(1)全连接层:神经网络中最常用到的层,全连接层的每一个神经元都与上一层的所有神经元相连,用来把前边提取到的特征综合起来。实现对神经网络里的神经元激活。参数说明:units:全连接层输出的维度,即下一层神经元的个数activation:激活函数,默认使用Reluuse_bias:是否使用bias偏置项2Keras网络层类型(2)激活层:对上一层的输出应用激活函数。参数说明:activation:激活函数的名称,如:relu、tanh、sigmoid等2Keras网络层类型(3)Dropout层:对上一层的神经元随机选取一定比例的失活,不更新参数,但是权重仍然保留,防止模型过拟合。参数说明:

rate:失活的比例,为0-1之间的浮点数。2Keras网络层类型(4)Flatten层:将一个维度大于或等于3的高维矩阵,“压扁”为一个二维矩阵。即保留第一个维度(如:batch的个数),然后将剩下维度的值相乘为“压扁”矩阵的第二个维度。2Keras网络层类型(5)Reshape层:该层的作用和numpy.reshape一样,就是将输入的维度重构成特定的shape。参数说明:

target_shape:目标矩阵的维度,不包含batch样本数。2Keras网络层类型(6)卷积层:卷积操作分为一维、二维、三维,分别为Conv1D、Conv2D、Conv3D。一维卷积主要用于处理时间序列数据或文本数据,二维卷积通常用于处理图像数据。这三类的使用方法和参数基相同,这里我们主要介绍用于处理图像数据的二维卷积。参数说明:filters:滤波器的个数。kernel_size:卷积核的大小。strides:卷积操作的步长,二维中默认为(1,1),一维默认为1。Padding:补“0”策略2Keras网络层类型(7)池化层:与卷积层类似,池化层分为最大池化层和平均池化层,也分为一维池化、二维池化和三维池化三种,由于使用和参数基本相同,所以主要以MaxPooling2D进行说明。参数说明:pool_size:表示池化核大小,池化核大小可以数组或元祖表示。strides:和卷积步长类似,表示池化核的移动步长,默认和pool_size保持一致。padding:和卷积层的padding参数类似。ThankYOU!目录1Keras建模流程介绍01任务Keras建模具体流程02任务1Keras建模流程介绍1Keras建模流程介绍深度学习框架Keras是像搭积木般构建神经网络模型,主要分为6个部分,每个部分只需调用kerasAPI函数就能实现。使用keras框架建模流程通常包括:(1)数据预处理:获取并预处理训练数据;(2)建立模型:定义由网络层组成的网络或模型,将输入数据映射成目标;(3)编译模型:配置训练过程参数,包括损失函数、优化器、模型评估指标;(4)训练模型:调用函数在训练数据上进行迭代,更新模型权重;(5)评估模型:使用测试集或验证数据集,评估模型的性能是否达到要求;(6)模型预测:使用训练好的模型预测新的数据。2Keras建模具体流程2Keras建模具体流程(1)数据预处理在以深度学习为主的人工智能任务流程中,第一步要做的就是数据的处理,因为有了数据,网络模型才能够训练,数据处理的步骤主要有以下几个环节:数据采集数据标注数据增强数据清洗数据标准化数据的划分在本课程的案例中,均使用keras数据集模块加载相应的数据集,然后进行相应的数据处理。2Keras建模具体流程(2)建立模型Keras框架中,有序列式和函数式两种常用的建模方法。比如使用序列式API建模,代码如下:使用model.add()给模型添加了一个Dense层,参数2表示该层神经元的数量;一般层的添加顺序即是各层连接的顺序,也是数据流经模型被处理的顺序。2Keras建模具体流程(3)编译模型定义好模型之后需要通过编译(compile)来对学习过程进行配置,模型编译主要是设置各类参数包括:优化器optimizer,损失函数loss,评估指标metrics等。代码如下:编译的过程也是Keras将定义好的模型转化为底层平台(如TensorFlow)结构描述过程,底层平台会支持后续的计算任务,如GPU、CPU的调度选择,分布式运行等。2Keras建模具体流程(4)训练模型编译后的模型可以使用model.fit()函数进行训练,训练的过程就是通过测试数据来确定神经元间连接权重(weight)的过程。训练过程需要指定训练数据、批量大小、训练代数等参数。代码如下:2Keras建模具体流程(5)评估模型训练后的模型,需要对其性能进行评估,以此来确定训练效果是否达到了预期。评估模型使用的函数是model.evalute(),该函数的参数x_test和y_test与model.fit()方法的数据类型是一样的,一般会选择用测试数据进行评估。2Keras建模具体流程(6)模型预测模型预测是建模的最后一步,当模型的性能评估达到要求后,就可以用训练好的模型在新的数据上进行预测了。预测一般使用测试集或验证集,代码如下:predictions是预测返回的结果,数据格式与输出层的输出格式相同。ThankYOU!目录1案例目标01任务环境配置02任务案例实施04任

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论