六开彩开奖结果,六开彩开奖结果查询,六开彩开奖结果v论坛,www.10889.com,www.6677kj.com六开彩开奖结果,六开彩开奖结果查询,六开彩开奖结果v论坛,www.10889.com,www.6677kj.com

您现在所的位置:主页 > www.10889.com >

入门大爆炸式发展的深度学习你先要了解这6个著名框架

时间:2019-08-07 07:54  来源:未知   作者:admin   点击:

  近几年,深度学习技术的大爆炸式发展,除了理论方面的突破外,还有基础架构的突破,这些都奠定了深度学习繁荣发展的基础。本文将对其中涌现出的几个著名的深度学习平台进行简要介绍。

  Theano是在BSD许可证下发布的一个开源项目,是由LISA集团(现MILA)在加拿大魁北克的蒙特利尔大学开发的,其是以一位希腊数学家的名字命名的。

  Theano是一个Python库,可用于定义、优化和计算数学表达式,特别是多维数组(numpy.ndarray)。它的诞生是为了执行深度学习中的大规模神经网络算法,从本质上而言,Theano可以被理解为一个数学表达式的编译器:用符号式语言定义程序员所需的结果,并且Theano可以高效地运行于GPU或CPU中。

  在过去很长一段时间内,Theano是深度学习开发与研究的行业标准。而且,由于出身学界,它最初是为学术研究而设计的,这也导致深度学习领域的许多学者至今仍在使用Theano。

  尽管Theano已退出历史舞台,但作为Python的第一个深度学习框架,它很好地完成了自己的使命,为深度学习研究人员的早期拓荒提供了极大的帮助,同时也为之后的深度学习框架的开发奠定了基本的设计方向:以计算图为框架的核心,采用GPU加速计算。

  Tensorflow是广泛使用的实现机器学习以及其他涉及大量数学运算的算法库之一。Google几乎在所有应用程序中都使用Tensorflow来实现机器学习。例如,如果你使用过Google照片或Google语音搜索,那么你就间接使用了Tensorflow模型。它们在大型Google硬件集群上工作,在感知任务方面,功能非常强大。

  Tensorflow在很大程度上可以看作是Theano的后继者,不仅因为它们有很大一批共同的开发者,而且它们还拥有相近的设计理念:它们都是基于计算图实现自动微分系统。Tensorflow使用数据流图进行数值计算,图中的节点代表数学运算,图中的边则代表在这些节点之间传递的多维数组(tensor)。

  Tensorflow还支持Windows 7、Windows 10和Windows Server 2016。由于Tensorflow使用C++ Eigen库,所以库可在ARM架构上进行编译和优化。这也就意味着用户可以在各种服务器和移动设备上部署自己的训练模型,香港马会开奖王中王!而无须执行单独的模型解码器或者加载Python解释器。

  作为当前最流行的深度学习框架,Tensorflow获得了极大成功,但在学习过程中读者需要注意下面这些问题。

  由于Tensorflow的接口一直处于快速迭代之中,并且版本之间存在不兼容的问题,因此开发和调试过程中可能会出现一些问题(许多开源代码无法在新版的Tensorflow上运行)。

  想要学习Tensorflow底层运行机制的读者需要做好准备,Tensorflow在GitHub代码仓库的总代码量超过100万行,系统设计比较复杂,因此这将是一个漫长的过程。

  代码层面,对于同一个功能,Tensorflow提供了多种实现,这些实现良莠不齐,使用中还存在细微的区别,请读者注意,避免入坑。另外,Tensorflow还创造了图、会话、命名空间、PlaceHolder等诸多抽象概念,对普通用户来说可能会难以理解。

  总结:凭借着Google强大的推广能力,Tensorflow已经成为当今最为热门的深度学习框架,虽不完美但是最流行,目前,各公司使用的框架也不统一,读者有必要多学习几个流行框架以作为知识储备,Tensorflow无疑是一个不错的选择。

  MXNet是亚马逊(Amazon)的李沐带队开发的深度学习框架。它拥有类似于Theano和Tensorflow的数据流图,为多GPU架构提供了良好的配置,有着类似于Lasagne和Blocks的更高级别的模型构建块,并且可以在你想象的任何硬件上运行(包括手机)。

  MXNet以其超强的分布式支持,明显的内存、显存优化为人所称道。同样的模型,MXNet往往占用更小的内存和显存,并且在分布式环境下,MXNet展现出了明显优于其他框架的扩展性能。

  MXNet的缺点是推广不给力及接口文档不够完善。MXNet长期处于快速迭代的过程中,其文档却长时间未更新,这就导致新手用户难以掌握MXNet,老用户则需要常常查阅源码才能真正理解MXNet接口的用法。

  Keras是一个高层神经网络API,由纯Python语言编写而成,并使用Tensorflow、Theano及CNTK作为后端。Keras为支持快速实验而生,能够将想法迅速转换为结果。

  Keras应该是深度学习框架之中最容易上手的一个,它提供了一致而简洁的API,能够极大地减少一般应用下用户的工作量,避免用户重复造轮子,而且Keras支持无缝CPU和GPU的相互转换。

  为了屏蔽后端的差异性,Keras做了层层封装,导致用户在新增操作或是获取底层的数据信息时过于困难。同时,过度封装也使得Keras的程序过于缓慢,许多bug都隐藏于封装之中。

  另外就是学习Keras十分容易,但是很快就会遇到瓶颈,因为它缺少灵活性。另外,在使用Keras的大多数时间里,用户主要是在调用接口,很难真正学习到深度学习的内容。

  PyTorch是一个Python优先的深度学习框架,能够在强大的GPU加速的基础上实现张量和动态神经网络。

  PyTorch是一个Python软件包,其提供了两种高层面的功能,具体如下。

  相对于Tensorflow,PyTorch的一大优点是,它的图是动态的,而Tensorflow等都是静态图,不利于扩展。同时,PyTorch非常简洁,方便使用。

  Caffe是基于C++语言编写的深度学习框架,作者是中国人贾扬清。它开放源码(具有Licensed BSD),提供了命令行,以及Matlab和Python接口,清晰、可读性强、容易上手。

  Caffe是早期深度学习研究者使用的框架,由于很多研究人员在上面进行开发和优化,因此其现今也是流行的框架之一。Caffe也存在不支持多机、跨平台、可扩展性差等问题。初学者使用Caffe时还需要注意下面这些问题。

  Caffe2出自Facebook人工智能实验室与应用机器学习团队,但贾扬清仍是主要贡献者之一。Caffe2在工程上做了很多优化,比如运行速度、跨平台、可扩展性等,它可以看作是Caffe更细粒度的重构,但在设计上,其实Caffe2与TensorFlow更像。目前代码已开源。

  关于作者:魏溪含 ,爱丁堡大学人工智能硕士,阿里巴巴达摩院算法专家,在计算机视觉、大数据领域有8年以上的算法架构和研发经验。

  涂铭,阿里巴巴数据架构师,对大数据、自然语言处理、图像识别、Python、Java相关技术有深入的研究,积累了丰富的实践经验。

  张修鹏,毕业于中南大学,阿里巴巴技术发展专家,长期从事云计算、大数据、人工智能与物联网技术的商业化应用,在阿里巴巴首次将图像识别技术引入工业,并推动图像识别产品化、平台化。

  推荐语:阿里巴巴达摩院算法专家、阿里巴巴技术发展专家、阿里巴巴数据架构师联合撰写,从技术原理、算法和工程实践3个维度系统展开,既适合零基础读者快速入门,又适合有基础读者理解其核心技术;写作方式上避开了艰涩的数学公式及其推导,深入浅出。

  数据叔最近搞了个大事——联合优质图书出版商机械工业出版社华章公司发起鉴书活动。

  简单说就是:你可以免费读新书,你可以免费读新书的同时,顺手码一篇读书笔记就行。详情请在大数据公众号后台对话框回复合伙人查看。