精华内容
下载资源
问答
  • 我的毕设做的是基于opencv卷积神经网络的人脸识别项目。在做完这个项目之后,我一直想好好总结一下所学到的关于卷积神经网络的知识。现在趁着有点空闲,随手记录一点以前学过的,或者正在学习的知识点,相当于一个...

    1.前言

    我的毕设做的是基于opencv和卷积神经网络的人脸识别项目。在做完这个项目之后,我一直想好好总结一下所学到的关于卷积神经网络的知识。现在趁着有点空闲,随手记录一点以前学过的,或者正在学习的知识点,相当于一个备忘录。

    **

    2.卷积神经网络模型概览

    **
    常见的卷积神经网络结构
    从一开始的LeNet到后来的VGGNet,再到google的Inception系列,再到ResNet系列,每一种神经网络模型都有其创新的点,下面我们就来按照历史脉络好好讲解一下各种模型的特点。(里面涉及到的各种卷积神经网络的基础知识要点可以参见我的另一篇基础博客)

    2.1LeNet模型结构

    LeNet网络结构是再1998年由lecun提出的。它被创造出来的目的是解决手写数字识别的问题。即它是一个10分类任务的解决办法。下图是它的一个基本的网络结构。
    LeNet网络结构
    网络结构图中显示的很清楚。它包括了两个卷积层,两个下采样层,两个全连接层和一个激活层,最后有一个sotfmax分类层。可以说,LeNet麻雀虽小,五脏俱全。包括了基本的卷积神经网络的所有单元。

    2.2 AlexNet

    话不多说,我们直接上来看AlexNet的网络结构:
    在这里插入图片描述
    我们可以看到,它的网络结构被分成了两支,这是因为当时的GPU计算能力不够,显存容量不够大。为了完成模型的训练,作者使用了两块显卡来进行分布式的训练。我们现在想要训练这样一个模型,只需要实现其中一条就好了。
    emmmm我其实个人是想知道怎么进行分布式训练的,但是我没有两块显卡(贫穷限制了我的发展) 找不到相关技术资料,这里就不赘述了。
    对比刚刚的LeNet,我们可以发现从结构上来看,它并没有很大的改变。我们看它的网络结构:输入层是224* 224的数据,然后进行了多轮卷积(提取特征),其中包括11* 11的卷积核,5* 5的卷积核,3* 3的卷积核。虽然在图片上我们只画了卷积层,但我们应该知道,每一个卷积层之后都会跟上一个激活层(用来增加模型的非线性表达能力),一个降采样pooling层(减小数据量,提取主要特征),以及一个局部归一化处理(对数据进行一定的约束,使我们的数据约束在一定的范围内,使网络更好的收敛)。经过多个卷积层之后,就会有三个fc层(全连接层)。同样的,在每一个fc层之后,也会有有一个relu激活层,以及一个dropout层(减小参数量,防止过拟合,增加i网络结构变化)。最后呢,通过一个fc层+softmax层来将我们的数据映射到一个一千维的向量上去(因为实现的是一千种物品的分类网络),这个向量就是我们输入的图像在这一千个类别上的概率分布。其中概率值最高的那个类别就是网络判断出来图像所属的类别。相较与LeNet网络,它的网络深度更深,并且成功运用了gpu进行运算,为后面的人们打开了新世界大门。整个网络的参数量在60兆以上,最中训练出来的模型文件在200兆以上。它最大的意义在于,通过这次实验,证明了更深层次的卷积神经网络,可以提取出更加鲁棒的特征信息,并且这些特征信息能更好的区分物品类别。

    我个人的意见是,这个更深层网络提取更高维度的特征,它是这么个意思:前面的卷积层提取一些浅层的特征,比如纹理,形状(我们输入的是颜色特征),然后中间的卷积层呢,提取的是一些更复杂的特征,这些特征难以描述,就类似于我们中国说看山不是山,看水不是水的境界,只可意会,不可言传。而最后的分类信息,就是最后的看山还是山,看水还是水的境界。

    在AlexNet网络中,有以下特点:

    • 增加了relu非线性激活函数,增强了模型的非线性表达能力。成为以后卷积层的标配。
    • dropout层防止过拟合。成为以后fc层的标配。
    • 通过数据增强,来减少过拟合。
    • 引入标准化层(Local Response Normalization):通过放大那些对分类贡献较大的神经元,抑制那些对分类贡献较小的神经元,通过局部归一的手段,来达到作用。

    当然后来人们通过研究发现,这个LRN层并没有啥太好的作用,所以在后来的网络结构中,它被BN层(批归一化层)取代了。

    2.3 ZFNet

    在这里插入图片描述
    ZFNet在AlexNet的基础上做了小小的改进:

    • 调整第一层卷积核大小为7*7
    • 设置卷积参数stride=2

    通过更小的卷积核和更小的步长,来提取更多的信息,确保网络提取出来的信息更加有效。其次,它增加了卷积核数量,导致网络更加庞大。
    最重要的是:它从可视化的角度出发,解释了CNN有非常好的性能的原因。
    在这里插入图片描述

    如图所示,右半边是我们一个正常的神经网络的数据流向:对于一副输入图像,我们通过pooling层来进行下采样,再通过卷积层进行特征提取,通过relu层来提升非线性表达能力。对于最后的输出结果,我们怎么把它还原成原始的图片呢?
    实际上,如果我们想进行100%的还原是不可能的,因为每一次的pooling层都会丢失一些信息。因此我们在可视化的时候,更主要的是对它的特征的语义进行更高层次的分析。通过对输出层进行上采样,可以得到与我们原始图像大小一致的特征图。通过观察这些特征图,作者得出了这样的一些结论:

    • 特征分层次体系结构(就是我前面说的三层)
    • 深层特征更鲁棒(区分度高,不受图片微小的影响)
    • 深层特征收敛更慢

    2.4 VGGNet

    它由牛津大学计算机视觉组和Google Deepmind共同设计。主要是为了研究网络深度对模型准确度的影响,并采用小卷积堆叠的方式,来搭建整个网络。它的参数量达到了138M,整个模型的大小>500M.网络结构如下:
    在这里插入图片描述
    从上面的结构中我们可以看到,VGGNet的网络结构被分为11,13,16,19层。每层都包含了不同数量的卷积层(需要注意的是,每层卷积层之后都有激活层和池化层,只是由于长度限制没有在表中列出来),最后通过三个fc层来将我们的特征进行最后的向量化,最终得到一个1000维的向量,这个向量经过softmax之后,就会得到最终我们类别上的概率分布。而概率值最高的那个,就是我们所要分类的那个类别。
    VGGNet的特点:

    • 网络深,卷积层多。结构哦更加规整,简单。
    • 卷积核都是3* 3的或者1* 1的,且同一层中channel的数量都是相同的。最大池化层全是2*
      2。
    • 每经过一个pooling层后,channel的数量会乘上2.
      也就是说,每次池化之后,Feature Map宽高降低一半,通道数量增加一倍。VGGNet网络层数更多,结构更深,模型参数量更大。

    VGGNet的意义:

    • 证明了更深的网络,能更好的提取特征。
    • 成为了后续很多网络的backbone。

    2.5 GoogleNet/Inception v1

    在设计网络结构时,不仅仅考虑网络的深度,也会考虑网络的宽度,并将这种结构定义为Inception结构(一种网中网(Network in Network)的结构,即原来的节点也是一个网络)。
    值得一提的是,GoogleNet网络的参数量只有6.9兆,模型大小大约50M.
    为什么GoogleNet网络的参数这么少呢?我们先来看一下它的基本单元的结构:
    在这里插入图片描述
    主要原因就是它有效的利用了1* 1 的卷积核。不同于VGGNet从上到下的类似于一个串的结构,Inception的结构表现为一个网中网的结构。也就是说,对于我们中间的一个隐藏层层,它的每个节点也都是一个卷积网络。对于前一层传入进来的特征图,这层的每一个节点对它进行了1* 1 ,3* 3,5* 5的卷积和3* 3的pooling操作。其中值得一提的是,在3* 3和5* 5 的卷积操作之前,该网络用1* 1 的卷积核降低了输入层的channel的数量。例如:我们的输入是一个56* 56 * 128维的这么一个特征(这时候128就是我们channel的数量)。我们通过一个1* 1 的卷积核,可以将通道数降为32,然后我们将它再输入到3* 3的卷积核中。大大减少了计算量。最后,我们将所有的Feature Map进行连接,最后得到这个层的输出。
    在ZFNet的学习中我们知道,更深层的网络收敛的速度就越慢。在GoogleNet中,为了保证网络更深之后,能够哦收敛的比较好,它采用了两个loss来对网络参数进行调节,进而确保在网络变深之后,依然能够达到一个比较好的收敛效果。
    这里需要解释一下什么叫网络宽度:网络深度指的是当前的这个网络一共有多少层,宽度则是说在同一层上channel的数量。
    在这里插入图片描述
    这里我们举了一个例子,来说明如何通过1* 1 的卷积核来进行计算量的一个节省,以及参数规模的一个降低。大家自行体会。

    2.6 Inception v2/v3

    在提出了Inception v1之后,google又提出了Inception v2/v3/v4.在前面介绍视觉感受野的时候,我们曾经说过,一个大的卷积核可以由多个小的卷积核来替代。在v2/v3中,他们有效的利用了这个知识。在Inceptiion v2中,伟大的作者们通过两层3* 3的卷积核代替掉了5* 5的卷积核。而在Inception v3中,更是桑心病狂 别出心裁的用n* 1 + 1* n的卷积核代替了n* n的卷积核。
    在这里插入图片描述
    通过这样的操作,我们能够实现什么样的效果呢?

    • 参数量降低,计算量减少。
    • 网络变深,网络非线性表达能力更强(因为在每一个卷积层后面都可以增加一个激活层)

    要注意的是,在实验中伟大的先行者们发现,并不是拆分都能达到很好的效果。卷积的拆分最好是用在中间的部分,不要在图像的开始就进行这样的拆分。

    2.7 ResNet

    它是在2015年,有何凯明团队提出,引入了跳连的结构来防止梯度消失的问题,进而可以进一步加大网络深度。它的结构如下所示:
    在这里插入图片描述
    跳连的结构如下所示:
    在这里插入图片描述
    可以发现,其他的网络中,都是从上到下的串联的结构 ,而resnet网络则是跳连结构,它的意思是将输入特征直接传输到输出层,和经过卷积之后的特征相加,共同组成输出层的一部分。
    那么,为什么通过跳连结构就可以加深网络的深度呢?在VGG网络中,我们知道当网络深度达到一定界限的时候,在训练中就较难收敛。较难收敛的原因就是随着网络深度的加深,产生了梯度消失的问题。什么是梯度消失呢?有基础的人应该知道,卷积神经网络在进行BP时,都是通过梯度来计算权重修改量的。而梯度的计算遵循的是链式法则,即一个参数的梯度是多个梯度相乘之后的结果。假如每个梯度都小于1的话,那么,x1 * x2* x3* x4…,当n趋于无穷的时候,limxn=0,即梯度消失。假如每个梯度都大于1的话,那么,x1 * x2 x3 * x4…,当n趋于无穷的时候,limxn=正无穷,即梯度爆炸。(这里的n其实就是卷积的层数)所以理论上来说,伴随着网络的加深,我们可以提取到更好的特征,但是网络的参数是非常难以调节的,因为这时候我们求解出来的梯度是没办法来调节参数的。而resnet通过跳连的结构,就可以缓解这个问题。
    我们可以很清楚的从跳连结构示意图中看到,加入了跳连结构之后,并没有增加模型的参数量,尽管它改变了网络结构。
    从ResNet的网络结构中我们可以发现,它在一开始时设置卷积核大小为7
    7,这是因为一开始的时候我们的输入图像的channel只有3,与7* 7的卷积核进行计算的话并不会增加多少计算量。而在ResNet网络的最后,伟大的作者们又一次别出心裁,用average pool层代替了全连接层。这一手操作也是大大的降低了参数量和计算量。因为我们知道,全连接层的参数多,且计算最为复杂,在VGG中,全连接层的参数量占到了总参数量的80%。而pooling层并没有参数。
    接下来我们来讨论一下,为什么ResNet网络可以缓解梯度消失的问题呢? 跳连结构实际上也被称为恒等映射:H(x)=F(x)+x。当F(x)=0时,H(x)=x,这就是所谓的恒等映射。这个跳连的这根线,可以实现差分放大的效果,将梯度放大,来缓解梯度的消失(具体的我也不太明白,等以后有时间再更一篇专门写的吧)。举个例子,假设F(x)=2x,当x从5变化成为5.1时,F(x)从10变为10.2.如果这时候求F(x)的导数的话,公式为(10.2-10)/(5.1-5)=2.而如果变成H(x)的话,导数为(10.2+5.1-(10.0+5))/(5.1-5)=3.这样就放大了导数,即梯度。
    在ResNet中有两种跳连结构:
    在这里插入图片描述
    左边的是当层数较小时,不用1* 1的卷积核来降低参数量和计算量,后面的是在50,101,152层的网络中,用1* 1 的卷积核来降低参数量和计算量。
    在ResNet中,除了跳连结构之外,它还采用了BatchNormalization批归一化来对数据scale和分布进行约束,同时BN层也可以进行简单的正则化,提高网络抗过拟合能力(每个卷积之后配合一个BN层)。
    ResNet的设计特点:

    • 核心单元简单堆叠。
    • 跳连结构解决网络梯度消失问题。
    • Average Pooling层代替fc层。
    • BN层加快网络训练速度和收敛时的稳定性。
    • 加大网络深度,提高模型的特征抽取能力。

    **

    3.卷积神经网络结构对比

    **

    在这里插入图片描述

    展开全文
  • 数据可视化都有一个共同的目的,那就是准确而高效、精简而全面地传递信息知识。可视化能将不可见的数据现象转化为可见的图形符号...而人类右脑记忆图像的速度比左脑记忆抽象的文字快100万倍。因此,数据可视化能够...

    数据可视化都有一个共同的目的,那就是准确而高效、精简而全面地传递信息和知识。可视化能将不可见的数据现象转化为可见的图形符号,能将错综复杂、看起来没法解释和关联的数据,建立起联系和关联,发现规律和特征,获得更有商业价值的洞见和价值。
      并且利用合适的图表直截了当且清晰而直观地表达出来,实现数据自我解释、让数据说话的目的。而人类右脑记忆图像的速度比左脑记忆抽象的文字快100万倍。因此,数据可视化能够加深和强化受众对于数据的理解和记忆。

    图形表现数据,实际上比传统的统计分析法更加精确和有启发性。我们可以借助可视化的图表寻找数据规律、分析推理、预测未来趋势。另外,利用可视化技术可以实时监控业务运行状况,更加阳光透明,及时发现问题第一时间做出应对。例如天猫的双11数据大屏实况直播,可视化大屏展示大数据平台的资源利用、任务成功率、实时数据量等。

    数据可视化能做到简单、充实、高效、兼具美感就是好的可视化:

    简单点说好的数据可视化和好的产品是一样,都有友好的用户体验,不能让人花了时间又看得一头雾水,甚至被误导得出错误的结论。准确 用最简单的方式传递最准确的信息,节约人们思考的时间。 最简单方式就是最合理的图表,需要根据比较关系、数据维数、数据多少选择。

    充实一份数据分析报告或者解释清楚一个问题,很少是单一一个的图表能够完成的,都需要多个指标或者同一指标的不同维度相互配合佐证分析结论。

    高效成功的可视化,虽表面简单却富含深意,可以让观察者一眼就能洞察事实并产生新的理解,管理者能够沿着你规划的可视化路径能够迅速地找到和发现决策之道。

    美感除了准确、充实高效外,也需要美观。 美观分为两个层次,第一层是整体协调美,没有多余元素,图表中的坐标轴、形状、线条、字体、标签、标题排版等元素是经过合理安排的 ,UI设计中的四大原则(对比、重复、对齐、亲密性) 同样适用于图表。 第二层才是让人愉悦的视觉美,色彩应用恰到好处。把握好视觉元素中色彩的运用,使图形变得更加生动、有趣,信息表达得更加准确和直观。色彩可以帮助人们对信息进行深入分类、强调或淡化,生动而有趣的可视化作品的表现形式,常常给受众带来视觉效果上的享受。协调美是视觉美的基础
      人工智能、大数据、云计算和物联网的未来发展值得重视,均为前沿产业,多智时代专注于人工智能和大数据的入门和科谱,在此为你推荐几篇优质好文:
    1.在学习大数据之前,需要具备什么基础
    http://www.duozhishidai.com/article-12916-1.html
    2.大数据工程师培训,需要学习的有哪些课程?
    http://www.duozhishidai.com/article-15081-1.html
    3.大数据的特点是什么,大数据与Hadoop有什么关系?
    http://www.duozhishidai.com/article-13276-1.html


    多智时代-人工智能大数据学习入门网站|人工智能、大数据、物联网云计算的学习交流网站

    多智时代-人工智能大数据学习入门网站|人工智能、大数据、云计算、物联网的学习服务的好平台
    展开全文
  • 从人类的历史发展来看,近200年来的科技发展的成果超过了过去几千年中科技发展的成果,而且从短时间来看,这种加速趋势也是非常明显的,想想十年前现在的对比,科技的发展确实是日新月异。科技的发展固然有偶然的...

    从人类的历史发展来看,近200年来的科技发展的成果超过了过去几千年中科技发展的成果,而且从短时间来看,这种加速趋势也是非常明显的,想想十年前和现在的对比,科技的发展确实是日新月异。科技的发展固然有偶然的重大发现推动整个科技历史进程的事件,但最基本的方法其实是试错法和组合法,试错法是基础,是组合法的基础,组合则是在试错法的基础上对成果进行组合以得到新的成果,通过这种方式,使得人类在科技的发展方面必然是加速度的。组合的最基本手段当然是穷举,在元素个数比较小的情况下,这种穷举其实是非常有效的,但如果元素个数比较多的情况下,根据排列公式或者组合公式,大家知道,有些东西你是无法通过穷举来完成的。现在的科技成果非常多,利用这些成果进行组合创新当然是可能的,也是可行的,但效率取决于运气,但如果从这些成果中总结出有限(相对于人的处理能力)的规律性的东西,然后利用这些规律性的东西进行组合进行限定,就可以大大的减少试错代价,这其实就是TRIZ发明解决方法的本质。

    TRIZ方法还提供了一个比较励志的信息,那就是:发明其实不一定非得要天才,普通人也可行。

    http://baike.baidu.com/link?url=irnVpz7wffZPm6dA2rw-EjMRFyYcBkXTXgoNvv2q8yz34XgRjEBmKbvkpcOQeapM

     

    如果更多的普通人都加入到这种发明创新中,未来人类科技的加速度会越来越高。

     

    展开全文
  • 深度学习(1): 深度学习简介

    万次阅读 多人点赞 2019-08-09 11:10:29
    2 深度学习应用2.1 机器学习的一般方法2.2 深度学习的一般方法3 GPU的迅速发展3.1 GPU与显卡的区别3.2 GPU 与 CPU 区别3.3 GPU种类参考资料 注:转载请标明原文出处链接:...

    在这里插入图片描述

    注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/98944012


    1 什么是深度学习?

    深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI, Artificial Intelligence)。
    深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。 深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。
    深度学习在搜索技术,数据挖掘,机器学习,机器翻译,自然语言处理,多媒体学习,语音,推荐和个性化技术,以及其他相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。
    (以上均来自百度百科)

    下面了解一下人工智能、机器学习和深度学习之间的关系。下图是三者之间的关系,可以看出三者之间是包含和被包含的关系。

    在这里插入图片描述



    2 深度学习应用

    2.1 机器学习的一般方法

    机器学习按照方法主要可以分为两大类:监督学习和无监督学习。其中监督学习主要由分类和回归等问题组成,无监督学习主要由聚类和关联分析等问题组成。深度学习则属于监督学习当中的一种。下图为监督学习的一般方法。
    在这里插入图片描述

    2.2 深度学习的一般方法

    随着深度学习的爆发,最新的深度学习算法已经远远超越了传统的机器学 习算法对于数据的预测和分类精度。深度学习不需要我们自己去提取特征,而是自 动地对数据进行筛选,自动地提取数据高维特征。下图为深度学习的一般方法,与传统机器学习中的监督学习一般方法(如上图)相比,少了特征工程,节约了工程师们大量工作时间。

    在这里插入图片描述
    神经网络应用的突破领域之一是控制论,神经网络有着一套完美的反馈机制,给控制论增添了不少色彩。而深度学习的出现就 如寒武纪生命大爆发一样,前几年我们或许听到更多的是大数据处理、数据挖掘, 而如今在科技创新的生态中,几乎每个人都在谈论深度学习、人工智能。下面简单 来介绍关于深度学习的应用。

    (1) 图像处理

    在这里插入图片描述

    (2) 自动驾驶

    在这里插入图片描述

    (3) 机器人
    波士顿动力机器人

    在这里插入图片描述


    在这里插入图片描述


    (4) 医疗健康诊断

    在这里插入图片描述


    在这里插入图片描述
    深度学习技术己经开始渗透到每一个领域当中,使得机器学习能够实现更多的应用场景,并且极大地拓展了人工智能的领域范畴。从无人驾驶汽车、无人驾驶飞机,到生物医学的预防性诊断、病理预测,甚至是更加贴近年轻一代的电影推荐、购物指南,几乎所有领域都可以使用深度学习。



    3 GPU的迅速发展

    GPU (Graphics Processing Unit, 图形处理器) 作为硬件加速器之一,通过大量图形处理单元与 CPU 协同工作,对深度学习、数据分析,以及大量计算的工程应用进行加速 。 从 2007 年 NVIDIA 公司发布了第一个支持 CUDA 的 GPU 后, GPU 的应用范围不断拓展,从政府实验室、大学、企业的大型数据中心,到现今非常火热的人工智能汽车、无人驾驶飞机和机器人等嵌入式平台, GPU 都发挥着巨大的作用。
    CUDA (Compute Unified Device Architecture, 统一计算设备架构)。随着显卡的发展, GPU 越来越强大, GPU 开始主要为显示图像做优化,在计算上已经超越了通用的 CPU 。 如此强大的芯片如果只是作为显卡就太浪费了,因此 NVIDIA 推出 CUDA 这一通用并行计算架构,该架构使 GPU 能够解决复杂的计算问题 。

    3.1 GPU与显卡的区别

    GPU只是显卡上的一个核心处理芯片,是显卡的心脏,不能单独作为外接扩展卡使用,GPU因并行计算任务较重,所以功耗较大,只能焊接在显卡的电路板上使用。显卡上都有GPU,它是区分显性能的最主要元件,显卡也叫显示适配器,分为独立显卡和主板上集成显卡,独立显卡主要由GPU、显存和接口电路构成,集成显卡没有独立显存而是使用主板上的内存。
    GPU是图形处理器,一般GPU就是焊接在显卡上的,大部分情况下,我们所说GPU就等于指显卡,但是实际情况是GPU是显示卡的“心脏”,是显卡的一个核心零部件,核心组成部分。它们是“寄生与被寄生”关系。GPU本身并不能单独工作,只有配合上附属电路和接口,才能工作。这时候,它就变成了显卡
    参考链接: https://baijiahao.baidu.com/s?id=1607965696317204020&wfr=spider&for=pc

    3.2 GPU 与 CPU 区别

    比较 GPU 和 CPU ,就是比较它们两者如何处理任务。如下图图 1-9 所示, CPU 使用几个核心处理单元去优化串行顺序任务,而 GPU 的大规模并行架构拥有数以千计的更小、更高效的处理单元,用于处理多个并行小任务。
    CPU 拥有复杂的系统指令,能够进行复杂的任务操作和调度,两者是互补关系,而不能相互代替。
    在这里插入图片描述

    GPU 是大规模并行架构,处理并行任务毫无疑问是非常快的,深度学习需要高
    效的矩阵操作和大量的卷积操作, GPU 的并行架构再适合不过。简单来说,确实如此,但是为什么 GPU 进行矩阵操作和卷积操作会比 CPU 要快呢?真正原因是 GPU具有如下特性
    (1) 高带宽
    (2) 高速的缓存性能
    (3) 并行单元多

    在执行多任务时, CPU 需要等待带宽,而 GPU 能够优化带宽。举个简单的例子,我们可以把 CPU 看作跑车, GPU 是大卡车,如下图图 1-10 所示任务就是要把一堆货物从北京搬运到广州。 CPU(跑车〉可以快速地把数据(货物〉从内存读入 RAM 中,然而 GPU (大卡车〉装货的速度就好慢了。不过后面才是重点, CPU (跑车)把这堆数据(货物)从北京搬运到广州|需要来回操作很多次,也就是往返京广线很多次,而 GPU (大卡车)只需要一 次就可以完成搬运(一次可以装载大量数据进入内存)。换言之, CPU 擅长操作小的内存块,而 GPU 则擅长操作大的内存块 。 CPU 集群大概可以达到 50GB/s 的带宽总量,而等量的 GPU 集群可以达到 750GB/s 的带宽量。

    在这里插入图片描述

    如果让一辆大卡车去装载很多堆货物,就要等待很长的时间了,因为要等待大卡车从北京运到广州,然后再回来装货物。设想一下,我们现在拥有了跑车车队和卡车车队(线程并行〉,运载一堆货物(非常大块的内存数据需要读入缓存,如大型矩阵)。我们会等待第一辆卡车,但是后面就不需要等待的时间了,因为在广州会有一队伍的大卡车正在排队输送货物(数据),这时处理器就可以直接从缓存中读取数据了。在线性并行的情况下, GPU 可以提供高带宽,从而隐藏延迟时间。这也就是GPU 比 CPU 更适合处理深度学习的原因。


    3.3 GPU种类

    特别是最近几年,随着 GPU处理能力的飞速进步 ,在 2012 年需要 l 个月才能完成的深度学习训练,在 2015 年只需几天即可完成 。 在这样的背景下,深度学习的发展恰逢其时,将会引发进一步的革新和发展。

    对于深度学习的加速器 GPU,现在市面上主要的品牌有 AMD 、 NVIDIA 、Intel 的 Xeon Phi,如下图所示。
    在这里插入图片描述
    NVIDIA公司的GUP使用最为广泛,NVIDIA 的计算加速标准库 cuDNN 使得工程师在 CUDA 平台中构建深度学习变得非常容易,而且在同 一张显卡的前提下比没有使用 cnDNN 的速度提升 5 倍之多。有良好的生态。下图是NVIDIA公司的三种类型的GPU。
    在这里插入图片描述
    其中,
    (1) GeForce 系列面向大众,常见的有:GeForce GTX 1080, GeForce GTX 1080 Ti, GeForce GTX 2080 Ti
    (2) Tesla 系列面向科学计算
    (3) Tegra 系列面向嵌入式的 GPU 主板



    参考资料

    [1] 图解深度学习
    [2] 深度学习原理与实践
    [3] TensorFlow实战Google深度学习框架(第2版)

    展开全文
  • 什么是FPGA它的发展历史

    千次阅读 2019-11-05 11:50:39
    FPGA是什么 FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了...
  • 什么很多宽带的上传速度都很慢?? 随着互联网进入千家万户,一个真正的互联网的时代已经到来。可是在国内,很多家庭用户的上传速度远低于下载速度,很多4M、8M甚至20M的宽带,上传速度甚至不足50K/s。这到底是为...
  • ssd为什么比hdd速度要快

    千次阅读 2017-06-15 15:46:23
    可以说,磁盘存储技术的发展并不慢,不过仅限于存储密度方面,随着单位面积存储容量的提高,我们可以享用到更高容量的硬盘,但是读写数据的速度上并没有太大突破。因为决定寻道时间、潜伏周期的关键因素:磁头移动...
  • MPC模型预测控制

    万次阅读 多人点赞 2018-12-17 17:02:00
    LMPC)的基础上,发展了非线性模型预测控制(Non-linear Model Predictive Control, NMPC),显示模型预测控制(Explicit Model Predictive Control, EMPC) 鲁棒模型预测控制(Robust Model Predictive Control...
  • 信息技术发展的趋势是什么

    千次阅读 2020-12-10 13:10:39
    信息技术发展趋势包括以下10个方面: 1.高速度大容量 2.集成化平台化 3.智能化 4.虚拟计算 5.通信技术 6.遥感传感技术(传感技术、计算机技术、通信技术被称为信息技术的三大支柱) 7.移动智能终端 8.以人为本 9...
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    在系统需要挂上大量NFS文件系统时可以加快加载的速度。 -f:通常用于除错。它会使mount不执行实际挂上的动作,而是模拟整个挂上的过程,通常会-v一起使用。 -t vfstype:显示被加载文件系统的类型。 -n:...
  • 自动驾驶概述

    万次阅读 2020-02-08 20:27:27
    随着5G逐渐走进人们的视线,自动驾驶汽车成为一个社会...自动驾驶是分阶段实现的,目前处于初级阶段,就是车本身的各种驾驶辅助系统以及自动驾驶的进化配套系统的建立,重点在于解决如何提高汽车驾驶的安全性...
  • 01什么是数字经济?数字经济是继农业经济、工业经济之后的一种新的经济社会发展形态。人们对数字经济的认识是一个不断深化的过程。在众多关于数字经济的定义中,以2016年G20...
  • GPU

    千次阅读 多人点赞 2019-08-01 21:12:42
    1.GPU是什么: GPU是图形处理器(Graphics Processing Unit),计算机显卡的处理器. 2.GPU产生背景: 在GPU出世之前,处理2D、3D图像都依赖于CPU,这样会使”日理万机“的CPU更加劳累不堪,再加上一些设计上的原因...
  • 初识人工智能——人工智能的冷落与兴起

    万次阅读 多人点赞 2018-11-14 21:42:41
    今天开始慢慢进入人工智能的介绍与算法网络等的实现的“传送期”,希望大家能够喜欢! 好,揭幕!...那现在耳熟能详的机器学习,深度学习人工智能又是什么关系呢? 看下图: 人工智能(Artificial Inte...
  • 并行接口速度比串行接口速度快,这是若干年前的情况了。 在实际时钟频率比较低的情况下,并口因为可以同时传输若干比特,速率确实串口快。 但是,随着技术的发展,时钟频率越来越高,并行导线之间的相互干扰越来越...
  • 固态硬盘读写速度快的原理是什么? 我们先来回顾一下普通的机械硬盘是如何工作的。机械硬盘的读写过程需要磁头在其他机械零件的精密配合下进行寻道找到磁盘上数据存储的位置。也就是说机械硬盘的读写过程依靠的是...
  • 尽管服务机器人行业还有不少需要改善的地方,但是它已经对人们生活造成了深远的影响。服务机器人面向对象群体广阔,...由于其外形小巧并且直接服务于家用,在众多种类服务机器人里它也在人们可承受消费水平内,因...
  • 测试行业的发展趋势看法

    万次阅读 多人点赞 2019-02-20 15:49:46
    这将成为测试行业的重要力量,所以测试内容职责发生了转移,那么测试的地位也会相应的随变化。 二、性能测试的现状未来 性能测试听起来高大上,但是他有致命的弱点,就是性能测试的活儿太少, 一家公司...
  • 其主要功能为管理计算机设备,提高他们的利用率系统吞吐量,并为用户应用程序提供简单的接口,便于用户使用。OS是现代计算机系统中最重要的最基本的系统软件。 操作系统的目标作用 操作系统的目标 在...
  • 物联网是新一代信息技术的高度集成综合运用,全球各国尤其是发达国家对发展物联网均加以高度重视,并积极进行战略布局,以期把握未来国际经济与科技的竞争主动权。埃森哲预计,到2024年连接设备的数量将超过400亿...
  • 浅谈5G通信

    万次阅读 2019-09-04 18:01:45
    5G是什么? G为Generation(代),即为第五代移动通信系统;从1G到5G,信号传输速率以及信息传送量极大的提高。 为什么要使用5G,4G网速不是可以满足正常的生活生产需求了吗? 首先要先说一下5G的优点:超高频率...
  • Spark入门教程(1)——spark是什么发展趋势概述

    万次阅读 多人点赞 2016-04-06 09:41:30
    随着互联网为代表的信息技术深度发展,其背后由于历史积累产生了TB、PB甚至EB级数据量,由于传统机器的软硬件不足以支持如此庞大的数据量的存储、管理及分析能力,因而专门应对大数据的分布式处理技术应运而生。...
  • DDR扫盲——DDR的发展简史

    万次阅读 多人点赞 2018-10-06 15:03:54
    DDR数据传输速度为系统钟频率的两倍,能在选通脉冲的上升沿下降沿传输数据 DDR2的数据传输速度为系统时钟频率的四倍 DDR3的数据传输速度为系统时钟频率的8倍 DDR的发展图 Samsung-DDR的...
  • CPU性能发展所遇到的瓶颈

    千次阅读 2018-08-13 14:15:17
    在经典CPU中一般有两个常用的组件:北桥(North Bridge)南桥(SouthBridge)。它们是处理器内存以及其他外设沟通的渠道。图1给出了处理器、内存、南北桥以及其他总线之间的关系。   从图一可以看到: 1)...
  • Linux运维工程师到底是做什么的? 如果你想要进入运维管理领域这一行,首先你应该了解linux运维工程师是干什么的。他主要是对Linux下各种网络服务...
  • CPU缓存L1,L2L3是什么?如何工作?

    千次阅读 2020-06-16 21:15:39
    CPU市场正在以前所未有的速度向前发展。 这样,我们必定会看到缓存设计跟上CPU不断增长的能力。 缓存设计方面进行了相当多的试验,英特尔甚至还在试验L4缓存。CPU市场正在以前所未有的速度向前发展。 这样,我们必定...
  • 注:本文源自本人的硕士毕业论文,未经许可,严禁转载! 原文请参考知网:知网本论文下载地址 第一章 绪论 1.1 研究背景与意义 ...这个领域目前正在以几何倍的速度增长着,并且未来也将持续健康发展...
  • 水声通信技术的发展

    千次阅读 2019-11-05 16:51:30
    介绍了水声通信技术的发展历程,分析了水声通信系统由于水声信道的特性而表现出的特点。列出了水声通信系统的研究进展,得出水声通信系统已经取得了发展,但任需要完善的结论。 关键词:水声通信;水声信道;调制;...
  • 现在越来越多的设备中都用到了加速度传感器(即加速计)、角速度传感器(即陀螺仪)、磁感应传感器(即磁力计)。但是很多人对这3类传感器,以及它们所产生的组合套装(比如3轴传感器、6轴传感器、9轴传感器等)不是...
  • 现代移动通讯以1986年第一代通讯技术(1G)发明为标志,经过三十多年的爆发式增长,极大地改变了人们的生活方式,并成为推动社会发展的最重要动力一。下面我们先来回顾一下从1G到4G的发展历程。 1G 时代:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 491,948
精华内容 196,779
关键字:

发展速度是什么和什么之比