Keras与深度学习实战 课件 第1章 1.3 Keras简介_第1页
Keras与深度学习实战 课件 第1章 1.3 Keras简介_第2页
Keras与深度学习实战 课件 第1章 1.3 Keras简介_第3页
Keras与深度学习实战 课件 第1章 1.3 Keras简介_第4页
Keras与深度学习实战 课件 第1章 1.3 Keras简介_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

Keras简介(2)1Keras安装目录Keras特性2Keras中的预训练模型3在众多深度学习框架中,Keras在成为TensorFlow的官方API后越发受到关注,并以易操作、模块化、易扩展等特性在众多的API中脱颖而出。截至2021年初,Keras拥有超过40万个人用户,在整个行业和研究领域都得到了广泛的采用。Keras特性Keras号称是人类而非机器而设计的API,使得其易于学习且易于使用。齐全的文档让深度学习的初学者可以很快上手该框架。同时有不少的科研现目也是基于Keras框架,这使得一个新的技术出来的时候,很快就能找到相关的Keras例子。易操作Keras使用面向对象的设计,因此所有内容都被视为对象(如网络层、参数、优化器等)。所有模型参数都可以作为对象属性进行访问。它基于TensorFlow和Theano模块化封装产生,吸纳了TensorFlow、Theano在神经网络上的突出表现,同时提供一致而简洁的API,允许可配置的模块可以用最少的代价自由组合在一起,在新模块的创建上也超级容易。模块化Keras提供了快速构建深度学习网络的模块。但Keras并不处理如张量乘法、卷积等底层操作。这些操作依赖于某种特定的、优化良好的张量操作库。Keras依赖于处理张量的库就称为“后端”。易扩展1Keras安装目录Keras特性2Keras中的预训练模型3本书在TensorFlow2.3.0、Keras2.4.3和Python3.8.5的环境下编写。Keras可以支持很多后端,由于Keras默认使用TensorFlow作为后台,所以在安装Keras前需要安装TensorFlow。在TensorFlow2.x版本的使用中,常在导包时因为环境路径不对出现报错,可以通过安装VisualStudio解决。VisualStudio安装步骤如下。(1)运行安装文件后,可以更改VisualStudio的安装路径,并选择自定义安装如右图所示,然后单击“下一步”按钮。Keras安装(2)之后出现可选择功能,勾选VisualC++如右图所示,然后单击“下一步”按钮。Keras安装(3)选择需要安装的功能后,VisualStudio会提示选定的功能,如下左图所示,然后单击“安装”按钮,出现安装的进度如下右图所示。Keras安装(4)安装成功并重启计算机后,在开始菜单栏中出现VisualStudio2015,如下图所示。安装VisualStudio2015后可以选择安装Anaconda。Anaconda是一个开源的Python发行版本,其包含了conda、Python等多个科学包及其依赖项,使用Anaconda可以相对快速搭建可运行的环境。Keras安装AnacondaPrompt相当于命令提示符CMD,与CMD不同的是Prompt已经配置好环境变量。初次安装Anaconda的包一般比较旧,为了避免之后使用报错,可以先单击打开“AnacondaPrompt”,如右图所示。然后输入“condaupdate–all”命令,更新所有包的版本,在提示是否更新的时候输入“y”(即Yes),然后等待更新完成即可。Keras安装在安装过程中,可以根据不同需求选择pip命令或者conda命令两种方式安装程序包,即“pipinstallpackage_name”和“condainstallpackage_name”,其中“package_name”是指程序包的名称。pip和conda在实现环境中的依赖关系方面有所不同。安装包时,pip会在递归的串行循环中安装依赖项。不能确保同时满足所有包的依赖性。如果较早安装的软件包与稍后安装的软件包具有不兼容的依赖性版本,则可能导致破坏的环境。使用conda进行安装可确保满足环境中安装的所有包的所有要求。conda执行的环境检查可能需要额外的时间,但有助于防止创建破坏的环境。但是不要同时使用两种方式,在安装包时保持使用一致的命令。Keras安装在安装Keras框架之前,需要安装指定版本的TensorFlow,使用pip安装指定版本TensorFlow如以下代码所示。pipinstalltensorflow==2.3.0#安装指定版本keras使用pip安装指定版本Keras,如以下代码所示。pipinstallkeras==2.4.3#安装指定版本kerasKeras安装成功安装Keras的界面如下图所示。Keras安装如果读者之前已经安装过了不同版本的Keras,那么可以升级现有的包或卸载现有的包,如以下代码所示:pipupdatekeras#对现有的Keras包进行升级pipremovekeras#卸载现有的Keras包Keras安装1Keras安装目录Keras特性2Keras中的预训练模型3预训练即提前给模型输入特定参数,这个特定的参数通过其他类似数据集习得,然后再使用已有的数据集进行训练,最终得到合适的模型参数。相比较于随机初始化参数的模型,预训练的模型得到结果速度更快,但是两者得到的结果并没有太大的差距。Keras中的预训练模型由于时间限制或硬件水平限制,在训练比较复杂的模型时通常的做法并不会从头开始训练模型,这也就是预训练模型(pre-trainedmodel)存在的意义。预训练模型是前人为了解决类似问题所创造出来的模型,在解决问题的时候,不用从零开始训练一个新模型,可以从类似问题中训练过的模型入手。一个预训练模型对于需要解决的问题并不是100%的准确对接,但可以节省大量时间。在一个属于图像分类的手机图片分辨项目上,训练数据集中有四千多张图片,测试集中有1200张图片,项目任务是将图片分到16个类别中。预训练模型的概念如果采用一个简单的多层感知机(Multi-laterPerceptron,MLP)模型,在对输入图片(224×224×3)平整化后,训练模型所得结果的准确率只有百分之六左右。尝试对隐藏层、隐层神经元以及丢弃率进行调整,但准确率都没有显著提高。如果采用卷积神经网络,训练结果表明准确率有了显著的提高,可以达到原来的两倍以上,但距离分类最低的标准还是太远。如果采用在ImageNet数据集上预先训练好的模型VGG16,在VGG16结构的基础上,将softmax层的“1000”改为16,从而适应16分类的问题,训练结果的准确率可以达到70%。同时,使用VGG16最大的好处是大大减少了训练的时间,只需要对全连接层进行训练。预训练模型的概念在大数据集上训练模型,并将模型的结构和权重应用到目前面对的问题上,这一行为被称作“迁移学习”,即将预训练模型“迁移”到正在面对的特定问题上。在解决目前面对的问题的时候需要匹配好对应的预训练模型,如果问题与预训练模型训练情景有很大不同,那么模型所得到的预测结果会非常不理想,例如,把一个原本用于语音识别的模型用做用户识别,只能得到非常差的结果。ImageNet数据集已经被广泛用作训练集,因为数据规模足够大(120万张图片),有助于训练一般模型,ImageNet数据集的训练目标是将所有的图片准确划分到1000个分类条目下。数据集的1000个分类来源于日常生活,如动物类、家庭生活用品、交通工具等。在迁移学习中,使用ImageNet数据集训练的网络对于数据集外的图片也表现出很好的泛化能力。预训练模型的使用在迁移学习中,不会过多的修改预训练模型中的权重,而是对权重进行微调(finetune),例如,在修改模型的过程中,通常会采用比一般训练模型更低的学习率。另一种使用预训练模型的方法是对它进行部分的训练,具体做法是保持模型起始的一些层的权重不变,重新训练后面的层,得到新的权重,这个过程可以进行多次尝试。不同场景中预训练模型的使用如下。预训练模型的使用在这种场景下,因为数据与训练模型的训练数据相似度很高,因此不需要重新训练模型,只需要将输出层改为符合问题情境下的结果即可。例如,手机图片分辨场景中提到的16分类问题,只需将输出从1000个类别改为16个类别。预训练模型的使用1.场景一:数据集小,数据相似度高在这种情况下,可以冻结预训练模型中的前k个层中的权重,然后重新训练后面的n-k个层,当然最后一层也需要根据相应的输出格式进行修改。因为数据的相似度不高,而新数据集的大小又不足,所以只能通过冻结预训练模型的前k层进行补充。预训练模型的使用2.场景二:数据集小,数据相似度不高在这种情况下,因为有一个很大的数据集,所以神经网络的训练过程将会比较有效率,但因为实际数据与预训练模型的训练数据之间存在很大差异,采用预训练模型将不会是一种高效的方式。最好的方法是将预处理模型中的权重全都初始化后在新数据集的基础上重新开始训练。预训练模型的使用3.场景三:数据集大,数据相似度不高在这种理想情况下,最好的方式是保持模型原有的结构和初始权重不变,随后在新数据集的基础上重新训练。预训练模型的使用4.场景四:数据集大,数据相似度高Keras中自带20多种常用的深度学习网络预训练模型,这些预训练模型可以通过keras.application包调用,主要包含VGG(VGG16和VGG19)、ResNet、DenseNet等常用网络结构及其权重。加载预训练模型如以下所示。fromkeras.applications.resnet50importResNet50ResNet主要有5种变形:ResNet50、Res101、Res152、ResNet50V2、Res101V2、Res152V2。每个网络都包括3个主要部分:输入部分、输出部分和中间卷积部分。尽管ResNet变种形式丰富,但是都遵循上述结构特点,网络之间的不同主要在于中间卷积部分的参数和个数存

温馨提示

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

评论

0/150

提交评论