深度学习需要多少时间?

2020-08-18 11:58发布

3条回答
Naughty
2楼 · 2020-09-09 10:21







文章目录1什么是深度学习?2深度学习应用2.1机器学习的一般方法2.2深度学习的一般方法3GPU的迅速发展3.1GPU与显卡的区别3.2GPU与CPU区别3.3GPU种类参考资料

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


1什么是深度学习?

深度学习(DL,DeepLearning)是机器学习(ML,MachineLearning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI,ArtificialIntelligence)。

深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。

深度学习在搜索技术,数据挖掘,机器学习,机器翻译,自然语言处理,多媒体学习,语音,推荐和个性化技术,以及其他相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。

(以上均来自百度百科)

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



2深度学习应用

2.1机器学习的一般方法

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



2.2深度学习的一般方法

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


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

(1)图像处理



(2)自动驾驶



(3)机器人

波士顿动力机器人





(4)医疗健康诊断




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


3GPU的迅速发展

GPU(GraphicsProcessingUnit,图形处理器)作为硬件加速器之一,通过大量图形处理单元与CPU协同工作,对深度学习、数据分析,以及大量计算的工程应用进行加速。从2007年NVIDIA公司发布了第一个支持CUDA的GPU后,GPU的应用范围不断拓展,从政府实验室、大学、企业的大型数据中心,到现今非常火热的人工智能汽车、无人驾驶飞机和机器人等嵌入式平台,GPU都发挥着巨大的作用。

CUDA(ComputeUnifiedDeviceArchitecture,统一计算设备架构)。随着显卡的发展,GPU越来越强大,GPU开始主要为显示图像做优化,在计算上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVIDIA推出CUDA这一通用并行计算架构,该架构使GPU能够解决复杂的计算问题。


3.1GPU与显卡的区别

GPU只是显卡上的一个核心处理芯片,是显卡的心脏,不能单独作为外接扩展卡使用,GPU因并行计算任务较重,所以功耗较大,只能焊接在显卡的电路板上使用。显卡上都有GPU,它是区分显性能的最主要元件,显卡也叫显示适配器,分为独立显卡和主板上集成显卡,独立显卡主要由GPU、显存和接口电路构成,集成显卡没有独立显存而是使用主板上的内存。

GPU是图形处理器,一般GPU就是焊接在显卡上的,大部分情况下,我们所说GPU就等于指显卡,但是实际情况是GPU是显示卡的“心脏”,是显卡的一个核心零部件,核心组成部分。它们是“寄生与被寄生”关系。GPU本身并不能单独工作,只有配合上附属电路和接口,才能工作。这时候,它就变成了显卡

参考链接:https://baijiahao.baidu.com/s?id=1607965696317204020????=spider&for=pc


3.2GPU与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.3GPU种类

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

对于深度学习的加速器GPU,现在市面上主要的品牌有AMD、NVIDIA、Intel的XeonPhi,如下图所示。


NVIDIA公司的GUP使用最为广泛,NVIDIA的计算加速标准库cuDNN使得工程师在CUDA平台中构建深度学习变得非常容易,而且在同一张显卡的前提下比没有使用cnDNN的速度提升5倍之多。有良好的生态。下图是NVIDIA公司的三种类型的GPU。


其中,

(1)GeForce系列面向大众,常见的有:GeForceGTX1080,GeForceGTX1080Ti,GeForceGTX2080Ti

(2)Tesla系列面向科学计算;

(3)Tegra系列面向嵌入式的GPU主板。



参考资料

[1]图解深度学习

[2]深度学习原理与实践

[3]TensorFlow实战Google深度学习框架(第2版)



相关问题推荐

  • 回答 3

    换行。比如,print hello\nworld效果就是helloworld\n就是一个换行符。\是转义的意思,'\n'是换行,'\t'是tab,'\\'是,\ 是在编写程序中句子太长百,人为换行后加上\但print出来是一整行。...

  • 回答 42

    十种常见排序算法一般分为以下几种:(1)非线性时间比较类排序:a. 交换类排序(快速排序、冒泡排序)b. 插入类排序(简单插入排序、希尔排序)c. 选择类排序(简单选择排序、堆排序)d. 归并排序(二路归并排序、多路归并排序)(2)线性时间非比较类排序:...

  • 回答 70
    已采纳

    前景很好,中国正在产业升级,工业机器人和人工智能方面都会是强烈的热点,而且正好是在3~5年以后的时间。难度,肯定高,要求你有创新的思维能力,高数中的微积分、数列等等必须得非常好,软件编程(基础的应用最广泛的语言:C/C++)必须得很好,微电子(数字电...

  • 回答 28

    迭代器与生成器的区别:(1)生成器:生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅记住了它的数据状态,生成器还记住了程序...

  • 回答 9

    python中title( )属于python中字符串函数,返回’标题化‘的字符串,就是单词的开头为大写,其余为小写

  • 回答 6

    第一种解释:代码中的cnt是count的简称,一种电脑计算机内部的数学函数的名字,在Excel办公软件中计算参数列表中的数字项的个数;在数据库( sq| server或者access )中可以用来统计符合条件的数据条数。函数COUNT在计数时,将把数值型的数字计算进去;但是...

  • 回答 1

    head是方法,所以需要取小括号,即dataset.head()显示的则是前5行。data[:, :-1]和data[:, -1]。另外,如果想通过位置取数据,请使用iloc,即dataset.iloc[:, :-1]和dataset.iloc[:, -1],前者表示的是取所有行,但不包括最后一列的数据,结果是个DataFrame。...

  • Python入门简单吗2021-09-23 13:21
    回答 45

    挺简单的,其实课程内容没有我们想象的那么难、像我之前同学,完全零基础,培训了半年,直接出来就工作了,人家还在北京大公司上班,一个月15k,实力老厉害了

  • 回答 4

    Python针对众多的类型,提供了众多的内建函数来处理(内建是相对于导入import来说的,后面学习到包package时,将会介绍),这些内建函数功用在于其往往可对多种类型对象进行类似的操作,即多种类型对象的共有的操作;如果某种操作只对特殊的某一类对象可行,Pyt...

  • 回答 8

     相当于 ... 这里不是注释

  • 回答 4

    还有FIXME

  • 回答 3

    python的两个库:xlrd和xlutils。 xlrd打开excel,但是打开的excel并不能直接写入数据,需要用xlutils主要是复制一份出来,实现后续的写入功能。

  • 回答 8

    单行注释:Python中的单行注释一般是以#开头的,#右边的文字都会被当做解释说明的内容,不会被当做执行的程序。为了保证代码的可读性,一般会在#后面加一两个空格然后在编写解释内容。示例:#  单行注释print(hello world)注释可以放在代码上面也可以放在代...

  • 回答 2

    主要是按行读取,然后就是写出判断逻辑来勘测行是否为注视行,空行,编码行其他的:import linecachefile=open('3_2.txt','r')linecount=len(file.readlines())linecache.getline('3_2.txt',linecount)这样做的过程中发现一个问题,...

  • 回答 4

    或许是里面有没被注释的代码

  • 回答 26

    自学的话要看个人情况,可以先在B站找一下视频看一下

没有解决我的问题,去提问