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页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

Keras简介(1)1Keras与TensorFlow的关系目录各深度学习框架对比2Keras常见接口3Keras是由Python编写而成并可以作为TensorFlow、Theano以及CNTK的高阶应用程序接口(API)。Keras在2015年正式成为开源的人工神经网络工具,是众多深度学习框架中较为容易使用的一个。在深度学习中,TensorFlow、PyTorch、CNTK、MXNet、PaddlePaddle属于最常用的框架,这些深度学习框架被应用于计算机视觉、自然语言处理、语音识别、机器学习等多个领域。各深度学习框架对比2015年,某公司宣布推出全新的机器学习开源工具TensorFlow,是基于深度学习基础框架DistBelief构建而成,主要用于机器学习和深度神经网络,一经推出就获得了较大的成功,并迅速成为用户使用最多的深度学习框架。并在2019年,推出了TensorFlow2正式版本。而TensorFlow两个版本之间各有优势,1.x的版本使用静态图进行运算,计算速度会比2.x版本的动态图快,但是2.x搭建网络的过程比1.x版本的简单。因为TensorFlow得到了专业人员的进行开发、维护,所以该框架有着良好的发展性。同时,Tensorflow还拥有众多低级、高级接口,使得其功能十分丰富。但是,由于TensorFlow发展过快,造成了接口、文档混乱的问题。TensorFlow2017年1月,脸书人工智能研究院在GitHub上开源了PyTorch,并迅速成为GitHub热度榜榜首。PyTorch特点是拥有生态完整性和接口易用性,使之成为当下最流行的动态框架之一。2018年Caffe2正式并入PyTorch后,PyTorch的发展势头更加强劲。PyTorch框架因上手简单、功能强大,可以非常快速地验证研究思路而广受研究人员的青睐。Pytorch由于是动态编程,运行效率比较低,没有静态图运行效率高。在工业界部署时比较麻烦。PyTorchCNTK是微软开发的深度学习框架,目前已经发展成一个通用的、跨平台的深度学习系统,在语音识别领域的使用尤其广泛。CNTK拥有丰富的神经网络组件,使得用户不需要编写底层的C++或CUDA,就能通过组合这些组件设计新的、复杂的Layer。同样,CNTK也支持CPU和GPU两种开发模式。CNTK以计算图的形式描述结构,叶子节点代表输入或者网络参数,其他节点代表计算步骤。CNTK同时也拥有较高的灵活度,通过配置文件定义网络结构,通过命令行程序执行训练,支持构建任意的计算图,支持AdaGrad、RmsProp等优化方法。CNTKMXNet是一个深度学习库,也支持主流的开发语言,比如C++、Python、R、MATLAB、JavaScript。支持命令行和程序,可以运行在CPU、GPU上。它的优势在于同样的模型MXNet占用更小的内存和显存,在分布式环境下优势更明显于其他框架。为了完善MXNet生态圈,其先后推出包括MinPy、Keras等诸多接口,但目前也停止了更新。MXNet特点概括起来是分布式性能强大,支持开发语言丰富,但文档完整性不够,稍显混乱。MXNet百度的PaddlePaddle(PArallelDistributedDeepLEarning)是一个易用、高效、灵活、可扩展的深度学习框架。支持命令式编程模式(动态图)功能、性能和体验;原生推理库性能经过显著优化,轻量级推理引擎实现了对硬件支持的极大覆盖。支持CUDA下多线程多流、TRI子图支持动态shape输入,并强化了量化推理;对支持芯片的覆盖度广,包括RK、MTK、百度昆仑、寒武纪、比特大陆、华为NPU,以及对应的模型数量和性能。PaddlePaddlePaddlePaddle的开发套件非常全面,内容涵盖各个领域和方向,具体如下:计算机视觉领域:图像分割(PaddleSeg)、目标检测(PaddleDetection)、图像分类(PaddleClas)、海量类别分类(PLSC)、文字识别(PaddleOCR)。自然语言领域:语义理解(ERNIE)。语音领域:语音识别(DeepSpeech)、语音合成(Parakeet)。推荐领域:弹性计算推荐(ElasticCTR)。其他领域:图学习框架(PGL)、深度强化学习框架(PARL)。PaddlePaddle各类框架的特点如下表所示。PaddlePaddle框架优点缺点TensorFlow设计的神经网络代码简洁,分布式深度学习算法的执行效率高,部署模型便利,迭代更新速度快,社区活跃程度高非常底层,需要编写大量的代码,入门比较困难。必须一遍又一遍重新发明轮子,过于复杂的系统设计PyTorch上手简单、功能强大,支持动态计算图,能处理长度可变的输入和输出API整体设计粗糙,部分bug难以找到解决方案CNTK通用、跨平台,支持多机,多GPU分布式训练,训练效率高,部署简单,性能突出,擅长语音方面相关研究目前不支持ARM构架,限制了其在移动设备上的发挥,社区不够活跃MXNet支持大多数编程语言,支持语言最多,使得使用R语言的开发者特别偏爱MXNet,适合AWS平台使用文档略显混乱PaddlePaddle易用性、高效、灵活、可扩展、PaddlePaddle的代码和设计更加简洁主要偏向于应用,资源还不是特别丰富Keras语法明晰,文档友好,使用简单,入门容易依赖后端,速度较慢,占用GPU内存比较多1Keras与TensorFlow的关系目录各深度学习框架对比2Keras常见接口3Kera1.1.0以前的版本主要使用Theano作为后端,这是因为Keras本身并不具备底层运算的能力,所以需要具备这种能力的后端协同工作。在TensorFlow开源后,Keras开始支持TensorFlow作为后端。随着TensorFlow受欢迎程度的增加,Keras开始将TensorFlow作为的默认后端。Keras的特性之一就是可以改变后端,从一个后端训练并保存的模型可以在其他后端加载和运行。在TensorFlow2发布时,Keras成为了TensorFlow的官方API,即tf.keras。该API用于快速的模型设计和训练。随着Keras2.3.0版本的发布,作者声明:这是Keras首个与tf.keras同步的版本;这也是最后一个支持多个后端(Theano、CNTK)的版本。Keras与TensorFlow的关系1Keras与TensorFlow的关系目录各深度学习框架对比2Keras常见接口3Keras设计的主旨是最大限度地减少常见使用案例所需的用户操作次数,并提供清晰且可操作的错误消息,因此,Keras封装了许多简单易用的API。如:ModlesAPILayerAPIDateSetKeras常见接口Keras的核心结构是模型和层,而ModelsAPI就是用来构建模型。在ModelsAPI中主要提供了函数式模型、继承Model类模型和序贯式模型的构建方式。模型常用的方法如下表所示。ModlesAPI方法说明.compile()编译搭建完毕的模型.fit()训练模型.predict()使用模型进行预测.save()保存模型.summary()查看模型参数状况在Keras框架中,所有的网络层都封装在LayerAPI中。Keras常用的层有全连接层、卷积层、池化层等,这些常用的层都有一些共有的方法,如下表所示。LayerAPI方法说明.get_weights()返回该层的权重.set_weights()设置该层的权重.input()返回该层输入的张量.input_shape()返回该层输入张量的大小.output()返回该层输出的张量.output_shape()返回该层输出张量的大小.get_config()返回该层的参数设置DateSet模块提供了一些内置的数据集,这些数据集已经经过矢量化处理,使用load_date加载数据。这些数据集可用于调试模型或创建简单的代码示例。数据集的简单介绍如下表所示。DateSet数据集说明datasets.boston_housing这是20世纪70年代末波士顿郊区不同地点的房屋的13个属性及其房价的数据集datasets.cifar10这是包含50000张32×32彩色训练图像和10000张测试图像的数据集,标记了10个类别datasets.cifar100这是包含50000张32×32彩色训练图像和10000张测试图像的数据集,标记了100个类别datasets.fashion_mnist这是包含60000张28×28灰度训练图像和10000张测试图像的数据集,标记了10个类别(主要为衣物)dataset

温馨提示

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

评论

0/150

提交评论