目录
深度学习架构包括如下:
1、AlexNet
AlexNet是首个深度架构,它由深度学习先驱GeoffreyHinton及其同僚共同引入。AlexNet是一个简单却功能强大的网络架构,为深度学习的开创性研究铺平了道路。分解后的AlexNet像是一个简单的架构,卷积层和池化层层叠加,最上层是全连接层。
2、VGGNet
VGG网络由牛津可视化图形组开发,因此其名称为VGG。该网络的特点是金字塔形,与图像最近的底层比较宽,而顶层很深。
3、GoogleNet
GoogleNet或Inception网络是谷歌研究者设计的一种架构。GoogleNet是ImageNet2014的冠军,是当时最强大的模型。该架构中,随着深度增加它包含22层,而VGG只有19层,研究者还开发了一种叫作Inception模块的新型方法。
4、ResNet
ResNet是一个妖怪般的架构,让我们看到了深度学习架构能够有多深。残并迹差网络(ResNet)包含多个后续残差模块,是建立ResNet架构的基础。
5、ResNeXt
ResNeXt据说是解决目标识别问题的最先进技术。它建立在inception和resnet的概念上,并带来改进的新架构。
6、州蔽亮RCNN(基于区域的CNN)
基于区域的CNN架构据说是所有深度学习架构中对目标检测问题最有影响力的架构。为了解决检测问题,RCNN尝试在图像中所有物体上画出边界框,然后识别图像中的物体。
7、YOLO(YouOnlyLookonce)
YOLO是当前深度学习领域解决图像检测问题最先进的实时。如下图所示,YOLO首先将图像划分为规定的边界框,然后对所有边界框并行运行识别算法,来确定物体所属的类别。确定类别之后,yolo继续智能地合并这些边界框,在物体周围形成最优边界框。
8、SqueezeNet
SqueeNet架构是在移动这样的低宽带场景中册宽极其强大的一种架构。这种架构只占用4.9 MB的空间,而Inception架构大小为100MB。这种巨大的差距由一种名为FireModule的特殊结构引起。
9、SegNet
SegNet是一个用于解决图像分割问题的深度学习架构。它包含处理层(编码器)序列,之后是对应的解码器序列,用于分类像素。
10、GAN
GAN是神经网络架构中完全不同的类别。GAN中,一种神经网络用于生成全新的、训练集中未曾有过的图像,但却足够真实。
深度学习框架是一种为了深度学习开发而生的,库和预训练模型等资源的总和。有了这种框架,看似复杂神秘的深度学习模型开发被大大简化,成为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已是未来几年最主流的深度学习框架。围绕这两种框饥宽架的软,硬件,和开发者烂袜亮生态将会迅猛发展,新框架越来越难以成长,其他框架差距越来越大。
目前是人工智能的时代,国内外像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操作。
关于深度学习的基础问题可以看下这个网页的教程,网页链接,希望我的回答能帮到你。
深度学习框架也就像Caffe、tensorflow这些帮助你进行深度学习的,简单来说扒老就是库,编程时需要import caffe。
作一孝唤个简单的比喻,一套深度学习框架就是这个品牌的一套积木,各个组件就是某个模型或算法的一部分,你可以自己设计如何使用积木去堆砌符合你数据集的积木。
好处是你不必重复造轮子,模型也就是积木,是给你的,你可以直接组装,但不同的组装方式,也就是不同的数据集则取决于你。
深度学习框架的出现降低了入门的门槛,你不需要从复杂的神经网络开始编代码,你可以依据需要,使用已有的模型,模型巧此凯的参数你自己训练得到,你也可以在已有模型的基础上增加自己的layer,或者是在顶端选择自己需要的分类器。
当然也正因如此,没有什么框架是完美的,就像一套积木里可能没有你需要的那一种积木,所以不同的框架适用的领域不完全一致。