什么叫做深度学习框架,其作用是什么

如题所述

深度学习框架是一种为了深度学习开发而生的工具,库和预训练模型等资源的总和。有了这种框架,看似复杂神秘的深度学习模型开发被大大简化,成为AI开发者的必用利器。

目前,TensorFlow和PyTorch明显领先,其他框架势微。如下图所示,基于TensorFlow和PyTorch的开源项目,明显领先其它框架。注:Keras不算完整的AI框架,另外KerasAPI已经成为TF2.0的高层API。

TensorFlow 是市场需求最多,也是增长最快的框架,它的领先地位不会在短期内被颠覆。 PyTorch 也在迅速发展,尤其在学术界,越来越多的论文代码基于PyTorch。它在工作列表中的大量增加证明了其使用和需求的增加。

TensorFlow和PyTorch两种框架未来相当时间内会趋同共存。现在PyTorch的在学术界广泛采用;而TensorFlow依赖强大的部署能力,是应用首选。未来TensorFlow2.0大大提高易用性(集成Keras,支持动态库EagerExecution等); PyTorch也在利用ONNX提高部署能力。TensorFlow和PyTorch会越来越趋同。

TensorFlow和PyTorch已是未来几年最主流的深度学习框架。围绕这两种框架的软,硬件,和开发者生态将会迅猛发展,新框架越来越难以成长,其他框架差距越来越大。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-07-29

目前是人工智能的时代,国内外像Google、微软、FaceBook、百度和华为等巨头公司纷纷投入较大的资源进行深度学习框架的研发和应用的拓展。表1列出了github上流行的深度学习框架的星数。

表1 github上流行的深度学习框架的星数

下面有侧重地介绍一下上表中列出的一些深度学习框架。

(一)TensorFlow

TensorFlow是用C++语言开发的,支持C、Java、Python等多种语言的调用,目前主流的方式通常会使用Python语言来驱动应用。这一特点也是其能够广受欢迎的原因。利用C++语言开发可以保证其运行效率,Python作为上层应用语言,可以为研究人员节省大量的开发时间。

TensorFlow相对于其他框架有如下特点。

1、灵活

TensorFlow与CNTK、MXNET、Theano同属于符号计算构架,允许用户在不需要使用低级语言(如在Caffe中)实现的情况下,开发出新的复杂层类型。基于图运算是其基本特点,通过图上的节点变量可以控制训练中各个环节的变量,尤其在需要对底层操作时,TensorFlow要比其他框架更容易。当然它也有缺点,灵活的操作会增加使用复杂度,从而在一定程度上增加了学习成本。

2、便捷、通用

作为主流的框架,TensorFlow生成的模型,具有便捷、通用的特点,可以满足更多使用者的需求。TensorFlow可以适用于Mac、Linux、Windows系统上开发。其编译好的模型几乎适用于当今所有的平台系统,并提满足“开箱即用”的模型使用理念,使模型应用起来更简单。

3、成熟

由于TensorFlow被使用的情况最多,所以其框架的成熟度绝对是第一的。在Google的白皮书上写道,Google内部有大量的产品几乎都用到了TensorFlow,如搜索排序、语音识别、谷歌相册和自然语言处理等。有这么多在该框架上的成功案例,先不说能够提供多少经验技巧,至少可以确保学习者在研究的道路上,遇到挫折时不会怀疑是框架的问题。

4、超强的运算性能

虽然TensorFlow在大型计算机集群的并行处理中,运算性能仅略低于CNTK,但是,其在个人机器使用场景下,会根据机器的配置自动选择CPU或GPU来运算,这方面做得更加友好与智能化。

(二)Caffe

当年深度学习的老大。最初是一个强大的图像分类框架,是最容易测试评估性能的标准深度学习框架,并且提供很多预训练模型,尤其该模型的复用价值在其他框架的学习中都会出现,大大提升了现有模型的训练时间。但是现在的Caffe似乎停滞不前,没有更新。尽管Caffe又重新崛起,从架构上看更像是TensorFlow,而且与原来的Caffe也不在一个工程里,可以独立成一个框架来看待,与原Caffe关系不大。

(三)CNTK

CNTK是一个微软开发的深度学习软件包,以速度快著称,有其独有的神经网络配置语言Brain Script,大大降低了学习门槛。有微软作为后盾,CNTK成为了最具有潜力与Tensor Flow争夺天下的框架。但目前其成熟度要比TensorFlow差太多,即便是发行的版本也会有大大小小的bug。与其他框架一样,CNTK具有文档资料不足的特点。但其与Visual Studio的天生耦合,以及其特定的MS编程风格,使得熟悉Visual Studio工具的小伙伴们从代码角度极易上手。另外,CNTK目前还不支持Mac操作系统。

关于深度学习的基础问题可以看下这个网页的视频教程,网页链接,希望我的回答能帮到你。

第2个回答  2017-08-11
深度学习框架也就像Caffe、tensorflow这些帮助你进行深度学习的工具,简单来说就是库,编程时需要import caffe。
作一个简单的比喻,一套深度学习框架就是这个品牌的一套积木,各个组件就是某个模型或算法的一部分,你可以自己设计如何使用积木去堆砌符合你数据集的积木。
好处是你不必重复造轮子,模型也就是积木,是给你的,你可以直接组装,但不同的组装方式,也就是不同的数据集则取决于你。
深度学习框架的出现降低了入门的门槛,你不需要从复杂的神经网络开始编代码,你可以依据需要,使用已有的模型,模型的参数你自己训练得到,你也可以在已有模型的基础上增加自己的layer,或者是在顶端选择自己需要的分类器。
当然也正因如此,没有什么框架是完美的,就像一套积木里可能没有你需要的那一种积木,所以不同的框架适用的领域不完全一致。本回答被提问者采纳
相似回答