CN108520300A - 一种深度学习网络的实现方法和装置 - Google Patents
一种深度学习网络的实现方法和装置 Download PDFInfo
- Publication number
- CN108520300A CN108520300A CN201810311861.XA CN201810311861A CN108520300A CN 108520300 A CN108520300 A CN 108520300A CN 201810311861 A CN201810311861 A CN 201810311861A CN 108520300 A CN108520300 A CN 108520300A
- Authority
- CN
- China
- Prior art keywords
- deep learning
- learning network
- characteristic pattern
- computation
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013135 deep learning Methods 0.000 title claims abstract description 99
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000004364 calculation method Methods 0.000 claims description 53
- 238000012545 processing Methods 0.000 claims description 43
- 230000003993 interaction Effects 0.000 claims description 8
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims 2
- 238000000151 deposition Methods 0.000 claims 1
- 238000011002 quantification Methods 0.000 claims 1
- 230000009467 reduction Effects 0.000 abstract description 2
- 238000013527 convolutional neural network Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 8
- 238000005314 correlation function Methods 0.000 description 7
- 238000012549 training Methods 0.000 description 7
- 239000011248 coating agent Substances 0.000 description 6
- 238000000576 coating method Methods 0.000 description 6
- 230000007547 defect Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006049 ring expansion reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种深度学习网络的实现方法和装置,该方法包括:获取预设的深度学习网络模型;在一预设计算层中处理深度学习网络模型的所有计算层的计算。本发明提供了一种深度学习网络的实现方法和装置,操作简单,计算时间减少。
Description
技术领域
本发明涉及人工智能和高性能计算领域,尤指一种深度学习网络的实现方法和装置。
背景技术
深度学习的概念源于人工神经网络的研究,含多隐层的多层感知器就是一种深度学习结构。深度学习应用分为模型训练和应用推理两个阶段,其中,模型训练阶段是通过对大量的计算资源和训练数据不断训练后,得到理想的网络模型。应用推理阶段就是对经过模型训练阶段得到的网络模型进行一次前向运算,从而得到最终分类准确率。
为了提高计算精度,深度学习网络的深度越来越深,同时计算量也越来越大,对推理阶段的实时性要求越来越高,其中实时性要求指的是在短的时间内提供较多的计算图片。然而,传统的计算设备CPU已经很难满足推理阶段的实时性要求。
发明内容
为了解决上述技术问题,本发明提供了一种深度学习网络的实现方法和装置,操作简单,计算时间减少。
为了达到本发明目的,第一方面,本发明提供了一种深度学习网络的实现方法,包括:
获取预设的深度学习网络模型;
在一预设计算层中处理所述深度学习网络模型的所有计算层的计算。
第二方面,本发明提供一种深度学习网络的实现装置,包括:
获取模块,用于获取预设的深度学习网络模型;
处理模块,用于在一预设计算层中处理所述深度学习网络模型的所有计算层的计算。
第三方面,本发明提供了一种深度学习网络的实现装置,包括存储器和处理器,存储器用于存储执行指令;处理器调用所述执行指令,用于执行如第一方面实施例所述的深度学习网络的实现方法。
第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时实现第一方面实施例所述的方法的步骤。
本发明实施例提供了一种深度学习网络的实现方法和装置,在一预设计算层中处理所述深度学习网络模型的所有计算层的计算,提供了一种深度学习网络的通用实现架构,只需调用一次相关函数即可实现所有计算层的计算,避免了每一个计算层的计算都需要单独调用一次相关函数,不同计算层需要调用不同相关函数的缺陷,操作简单,计算时间减少,在短的时间内可以提供较多的计算图片,提高了效率。可使深度学习网络高效、方便的配置到CPU、GPU、FPGA等高性能计算设备,用户不需要了解深度学习网络的算法本身,也不需要对算法进行优化,就可以在产品中方便的使用,既可以推进深度学习算法在实际产品中的使用。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例提供的深度学习网络的实现方法的流程图;
图2为本发明实施例提供的预设计算层的结构示意图;
图3为本发明实施例提供的卷积神经网络的实现架构图;
图4为本发明实施例提供的卷积计算向量化处理的示意图;
图5为本发明实施例一提供的深度学习网络的实现装置的结构示意图;
图6为本发明实施例二提供的深度学习网络的实现装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请对常用的线上推理设备,如X86、ARM、GPU、FPGA,对目前主要的深度学习网络模型卷积神经网络进行了实现和优化,以方便深度学习网络在实际产品中的应用。本申请可应用到人工智能相关的各个应用领域,如服务器设备和嵌入式设备,图像识别、语音识别、人机交互等领域。
本申请主要提供一种深度学习网络的通用实现架构,该架构设计了包含所有基本层计算的预设计算层,该预设计算层为一混合计算层,在该预设计算层可实现卷积神经网络常用的基本计算层的所有计算。同时,该架构可支持卷积神经网络和循环神经网络等不同深度学习网络,对于不同深度学习网络,只需更改核心代码,而不需要修改目前的架构;该架构可支持TensorFlow、Caffe、MxNet等流行开源架构的模型输入,支持浮点模型计算和8位量化模型计算,支持CPU(X86和ARM)、GPU、FPGA三种不同架构的计算设备。
图1为本发明实施例提供的深度学习网络的实现方法的流程图,如图1所示,本发明实施例提供的深度学习网络的实现方法,包括:
S101:获取预设的深度学习网络模型。
具体的,本发明实施例以基于FPGA平台为例,即本发明实施例的执行主体均为FPGA。本发明实施例预设的深度学习网络模型是通过模型训练阶段得到的,深度学习网络模型可以是卷积神经网络和神经循环网络等网络模型。本发明实施例以卷积神经网络模型(Convolutional Neural Network,简称CNN)为例进行阐述。卷积神经网络的实现包括模型训练和和应用推理两个阶段,本发明实施例适用于应用推理阶段。
需要说明的是,在获取预设的深度学习网络模型之前,需要将模型训练阶段获得的预设的深度网络学习模型解析为应用推理阶段支持的模型输入格式。本发明实施例对于不同的开源架构如TensorFlow、Caffe等的模型输入,只需要调用不同的c++或Python接口即可实现模型的解析,进而进行模型的计算。TensorFlow和Caffe的模型解析都是使用Proto Buffer实现。本发明实施例也可以扩展到目前没有支持的模型输入格式,扩展时只需要在本发明实施例提供的卷积神经网络的实现架构基础上实现相应的接口就可,不需要修改相关内容(代码),卷积神经网络的实现架构详见下述实施例的描述,此处不进行赘述。
S102:在一预设计算层中处理深度学习网络模型的所有计算层的计算。
具体的,为了FPGA的高效计算,本发明实施例设计了一预设计算层,该预设计算层为一包含所有计算层计算的混合计算层。本发明实施例将深度学习网络模型的所有计算层的计算放在一预设计算层中计算,只需调用一次相关函数即可实现所有计算层的计算,避免了每一个计算层的计算都需要单独调用一次相关函数,不同计算层需要调用不同相关函数的缺陷,操作简单,减少计算时间,提高效率。用户不需要了解深度学习网络的算法本身,也不需要对算法进行优化,就可以在产品中方便的使用,即可以推进深度学习算法在实际产品中的使用。
需要说明的是,本发明实施例中深度学习网络的计算单元中的一个计算即为一个计算层。比如,一个卷积计算为一个计算层,一个池化计算为一个计算层。
以卷积神经网络为例,卷积神经网络模型常用的基本计算层如卷积层、池化层、BatchNorm层、激活层、EltWise层、局部响应归一化层、DropOut层。图2为本发明实施例提供的预设计算层的结构示意图,如图2所示,将卷积神经网络的卷积层(Convolution)、激活层(ReLU)和池化层(Pool)放在一预设计算层,在该预设计算层完成卷积层(Convolution)、激活层(ReLU)和池化层(Pool)的计算。其中,卷积层用来对待处理的图像进行卷积计算以实现特征提取,激活层用来引入非线性因素,对卷积层提取的特征进行拟合,池化层用来对激活函数处理后的特征图进行压缩。
可选的,并行处理每一预设计算层中所有计算层的计算,不同计算层之间通过通道(Channel)进行通信。具体的,每一计算层计算时会输出多个数据,为了避免现有技术中在一个计算层输出所有数据时,才进行下一个计算层的计算,比较耗时的缺陷,本发明实施例在预设计算层中,将所有计算层的计算并行处理。如图2所示,预设计算层中的卷积层(Convolution)、激活层(ReLU)和池化层(Pool)并行计算,减少计算时间,提高效率。其中,本发明实施例中并行计算(处理)指的是在一个计算层输出一组数据时,即开始下一个计算层的计算,比如,在卷积层输出一组数据时,激活层即开始计算。
可选的,深度学习网络模型包括多个计算单元,一个计算单元包括多个计算层;在一预设计算层中处理深度学习网络模型的所有计算层的计算,包括:设置多个预设计算层,在每一个预设计算层中处理一个计算单元中的所有计算层的计算,将多个预设计算层进行串行计算,以及将各个预设计算层之间通过全局存储器进行数据交互。将深度学习网络模型的所有计算层的计算在预设计算层中进行串行计算,以及各个计算层之间通过全局存储器进行数据交互。
其中,深度学习网络模型包括多个计算单元,一个计算单元包括多个计算,每一个计算为一个计算层。
具体的,图3为本发明实施例提供的卷积神经网络的实现架构图,如图3所示,对于多个预设计算层,如预设计算层1、预设计算层2…预设计算层n,在FPGA上串行实现,各个预设计算层之间通过全局存储器进行数据交互。其中,本发明实施例卷积神经网络架构基于Intel的Software Development Kit(SDK)开发环境和OpenCL语言实现,硬件平台安装Intel SDK开发环境后,编译即可运行于不同的Intel FPGA平台。
本发明实施例提供的深度学习网络的实现方法,在一预设计算层中处理所述深度学习网络模型的所有计算层的计算,提供了一种卷积神经网络的实现架构,只需调用一次相关函数即可实现所有计算层的计算,避免了每一个计算层的计算都需要单独调用一次相关函数,不同计算层需要调用不同相关函数的缺陷,操作简单,减少计算时间,提高效率。可使深度学习网络高效、方便的配置到CPU、GPU、FPGA等高性能计算设备,用户不需要了解深度学习网络的算法本身,也不需要对算法进行优化,就可以在产品中方便的使用,既可以推进深度学习算法在实际产品中的使用。
进一步地,在上述实施例中,在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,向量化处理该预设计算层中卷积计算的输入特征图和输出特征图。
具体的,将每一预设计算层中卷积计算的输入特征图和输出特征图均进行向量化处理。图4为本发明实施例提供的卷积计算向量化处理的示意图,如图4所示,每一层计算的多个输入特征图、输出特征图都进行向量化处理,分别设为VEC_SIZE、LANE_SIZE,即VEC_SIZE个输入特征图为一组进行运算,输出一组即LANE_SIZE个输出特征图。
进一步地,在上述实施例中,向量化处理后的输出特征图为多组;在一预设计算层中处理深度学习网络模型的所有计算层的计算时,采用流水线的方式依次处理向量化处理后的每组输出特征图的卷积计算,并行处理每组输出特征图中的多个卷积计算。
具体的,将深度学习网络模型的所有计算层的计算放在一预设计算层中计算时,以流水线的方式依次处理向量化处理后的每组输出特征图的卷积计算,每组输出特征图中的多个卷积计算并行处理。本发明实施例卷积和激活操作使用单线程OpenCL核函数实现,OpenCL核函数指的是采用OpenCL语言编写的单独的核函数,一个OpenCL核函数可以独立的执行一个功能,核函数中的代码可以并行运行。一个OpenCL核函数有多个并行的线程,一个线程处理一组输出特征图。从全局存储器的输出通道中读取数据,以流水线的方式依次处理每组输出特征图的每个卷积操作,其中,流水线的方式指的是以预设间隔,来一组输出特征图处理一组输出特征图,每组内的单个卷积操作并行进行。每个时钟周期可实现一次卷积操作。输出结果写入通道中。
和/或;
在一预设计算层中处理深度学习网络模型的所有计算层的计算时,采用流水线的方式依次处理向量化处理后的每组输出特征图的池化计算,并行处理每组输出特征图中的多个池化计算。
具体的,将深度学习网络模型的所有计算层的计算放在一预设计算层中计算时,以流水线的方式依次处理向量化处理后的每组输出特征图的池化计算,每组输出特征图中的多个池化计算并行处理。池化操作使用单线程OpenCL核函数实现。从激活层的输出通道中读取数据,以流水线的方式依次处理每组输出特征图的池化操作,其中,流水线的方式指的是以预设间隔,来一组输出特征图处理一组输出特征图,每组内的单个池化操作并行进行。每个时钟周期可实现一次池化操作。输出结果写入通道中。
进一步地,在上述实施例中,向量化处理后的输入特征图和所述向量化处理后的输出特征图均为多组;
在一预设计算层中处理深度学习网络模型的所有计算层的计算时,采用多个线程块从全局存储器中并行读取向量化处理后的多组输入特征图的卷积计算的输入数据;其中,每个线程块包括多个线程,每组输入特征图包括多个卷积计算的输入数据,一个线程块读取一组输入特征图的输入数据,每个线程块中的一个线程读取每组输入特征图中一个卷积计算的输入数据。
具体的,全局数据读取使用多线程OpenCL核函数实现,即从全局存储器读取需要处理的数据。每个线程块中的多个线程并行读取每个卷积计算(如3*3卷积计算)的数据;多个线程块并行读取多组输入特征图的多个卷积操作的数据。读取的数据写入通道中。
或者;
在一预设计算层中处理深度学习网络模型的所有计算层的计算时,采用多个线程块并行向全局存储器写入向量化处理后的多组输出特征图的卷积计算的输出数据;其中,每个线程块包括多个线程,每组输出特征图包括多个卷积计算的输出数据,一个线程块写入一组输入特征图的输出数据,每个线程块中的一个线程写入每组输出特征图中一个卷积计算的输出数据。
具体的,全局数据写入使用多线程OpenCL核函数实现,即向全局存储器写入处理完成的数据。每个线程块中的多个线程并行从池化层的输出通道中读取数据,并写入每组输出特征图的数据。多个线程块并行写入多组输出特征图的数据。每组特征图的数据以循环展开的方式并行写入全局存储器,其中,循环展开指的是将需要多个循环函数处理的每组特征图的数据放在一个循环函数中处理。
进一步地,在上述实施例中,基于上述卷积神经网络的实现架构,还可实现浮点模型计算和量化模型计算,用户可根据计算需求、计算设备选择不同的计算方式。在调用接口函数时传递不用的参数即可实现不同数据类型计算之间的切换。目前支持8位量化模型计算,可以扩展到任意位的量化模型计算,而不必修改已有的代码。
图5为本发明实施例一提供的深度学习网络的实现装置的结构示意图,如图5所示,本发明实施例提供的深度学习网络的实现装置,包括:获取模块51和处理模块52。
获取模块51,用于获取预设的深度学习网络模型;
处理模块52,用于在一预设计算层中处理所述深度学习网络模型的所有计算层的计算。
本发明实施例提供的深度学习网络的实现装置用于执行图1所示方法实施例的技术方案,其实现原理和实现效果类似,此处不再赘述。
进一步地,在上述实施例中,所述深度学习网络模型包括多个计算单元,一个计算单元包括多个计算层;
所述处理模块52在一预设计算层中处理所述深度学习网络模型的所有计算层的计算,包括:
设置多个预设计算层,在每一个预设计算层中处理一个计算单元中的所有计算层的计算,将多个预设计算层进行串行计算,以及将各个预设计算层之间通过全局存储器进行数据交互。
进一步地,在上述实施例中,所述处理模块52在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,向量化处理该预设计算层中卷积计算的输入特征图和输出特征图。
进一步地,在上述实施例中,所述向量化处理后的输出特征图为多组;
所述处理模块52在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,采用流水线的方式依次处理向量化处理后的每组输出特征图的卷积计算,并行处理每组输出特征图中的多个卷积计算;
或者;
所述处理模块52在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,采用流水线的方式依次处理向量化处理后的每组输出特征图的池化计算,并行处理每组输出特征图中的多个池化计算。
进一步地,在上述实施例中,所述向量化处理后的输入特征图和所述向量化处理后的输出特征图均为多组;
所述处理模块52在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,采用多个线程块从全局存储器中并行读取向量化处理后的多组输入特征图的卷积计算的输入数据;其中,每个线程块包括多个线程,每组输入特征图包括多个卷积计算的输入数据,一个线程块读取一组输入特征图的输入数据,每个线程块中的一个线程读取每组输入特征图中一个卷积计算的输入数据;
或者;
所述处理模块52在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,采用多个线程块并行向全局存储器写入向量化处理后的多组输出特征图的卷积计算的输出数据;其中,每个线程块包括多个线程,每组输出特征图包括多个卷积计算的输出数据,一个线程块写入一组输入特征图的输出数据,每个线程块中的一个线程写入每组输出特征图中一个卷积计算的输出数据。
图6为本发明实施例二提供的深度学习网络的实现装置的结构示意图,如图6所示,本发明实施例提供的深度学习网络的实现装置,包括:存储器61和处理器62。
存储器61用于存储执行指令,处理器62可以是一个中央处理器(CentralProcessing Unit,简称CPU),或者是特定集成电路(Application Specific IntegratedCircuit,简称ASIC),或者完成实施本发明实施例的一个或多个集成电路。当主控设备运行时,处理器62与存储器61之间通信,处理器62调用执行指令,用于执行以下操作:
获取预设的深度学习网络模型;
在一预设计算层中处理所述深度学习网络模型的所有计算层的计算。
进一步地,所述深度学习网络模型包括多个计算单元,一个计算单元包括多个计算层;
处理器62在一预设计算层中处理所述深度学习网络模型的所有计算层的计算,包括:
设置多个预设计算层,在每一个预设计算层中处理一个计算单元中的所有计算层的计算,将多个预设计算层进行串行计算,以及将各个预设计算层之间通过全局存储器进行数据交互。
进一步地,处理器62在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,向量化处理该预设计算层中卷积计算的输入特征图和输出特征图。
进一步地,所述向量化处理后的输出特征图为多组;
处理器62在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,采用流水线的方式依次处理向量化处理后的每组输出特征图的卷积计算,并行处理每组输出特征图中的多个卷积计算;
或者;
所述处理模块在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,采用流水线的方式依次处理向量化处理后的每组输出特征图的池化计算,并行处理每组输出特征图中的多个池化计算。
进一步地,所述向量化处理后的输入特征图和所述向量化处理后的输出特征图均为多组;
处理器62在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,采用多个线程块从全局存储器中并行读取向量化处理后的多组输入特征图的卷积计算的输入数据;其中,每个线程块包括多个线程,每组输入特征图包括多个卷积计算的输入数据,一个线程块读取一组输入特征图的输入数据,每个线程块中的一个线程读取每组输入特征图中一个卷积计算的输入数据;
或者;
处理器62在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,采用多个线程块并行向全局存储器写入向量化处理后的多组输出特征图的卷积计算的输出数据;其中,每个线程块包括多个线程,每组输出特征图包括多个卷积计算的输出数据,一个线程块写入一组输入特征图的输出数据,每个线程块中的一个线程写入每组输出特征图中一个卷积计算的输出数据。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时实现上述任一实施例所述的深度学习网络的实现方法的步骤。
进一步地,在上述实施例中,基于上述卷积神经网络的实现架构,可适用于不同计算设备支持的实现。此架构支持X86、ARM、GPU、FPGA的计算,对不同设备的代码实现通过预编译的方式实现。在编译代码时,不同的编译指令可以实现针对不同设备代码的编译。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (12)
1.一种深度学习网络的实现方法,包括:
获取预设的深度学习网络模型;
在一预设计算层中处理所述深度学习网络模型的所有计算层的计算。
2.根据权利要求1所述的方法,其特征在于,所述深度学习网络模型包括多个计算单元,一个计算单元包括多个计算层;
所述在一预设计算层中处理所述深度学习网络模型的所有计算层的计算,包括:
设置多个预设计算层,在每一个预设计算层中处理一个计算单元中的所有计算层的计算,将多个预设计算层进行串行计算,以及将各个预设计算层之间通过全局存储器进行数据交互。
3.根据权利要求1或2所述的方法,其特征在于,所述在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,向量化处理该预设计算层中卷积计算的输入特征图和输出特征图。
4.根据权利要求3所述的方法,其特征在于,所述向量化处理后的输出特征图为多组;
所述在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,采用流水线的方式依次处理向量化处理后的每组输出特征图的卷积计算,并行处理每组输出特征图中的多个卷积计算;
或者;
所述在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,采用流水线的方式依次处理向量化处理后的每组输出特征图的池化计算,并行处理每组输出特征图中的多个池化计算。
5.根据权利要求3所述的方法,其特征在于,所述向量化处理后的输入特征图和所述向量化处理后的输出特征图均为多组;
所述在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,采用多个线程块从全局存储器中并行读取向量化处理后的多组输入特征图的卷积计算的输入数据;其中,每个线程块包括多个线程,每组输入特征图包括多个卷积计算的输入数据,一个线程块读取一组输入特征图的输入数据,每个线程块中的一个线程读取每组输入特征图中一个卷积计算的输入数据;
或者;
所述在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,采用多个线程块并行向全局存储器写入向量化处理后的多组输出特征图的卷积计算的输出数据;其中,每个线程块包括多个线程,每组输出特征图包括多个卷积计算的输出数据,一个线程块写入一组输入特征图的输出数据,每个线程块中的一个线程写入每组输出特征图中一个卷积计算的输出数据。
6.一种深度学习网络的实现装置,其特征在于,包括:
获取模块,用于获取预设的深度学习网络模型;
处理模块,用于在一预设计算层中处理所述深度学习网络模型的所有计算层的计算。
7.根据权利要求6所述的装置,其特征在于,所述深度学习网络模型包括多个计算单元,一个计算单元包括多个计算层;
所述处理模块在一预设计算层中处理所述深度学习网络模型的所有计算层的计算,包括:
设置多个预设计算层,在每一个预设计算层中处理一个计算单元中的所有计算层的计算,将多个预设计算层进行串行计算,以及将各个预设计算层之间通过全局存储器进行数据交互。
8.根据权利要求6或7所述的装置,其特征在于,所述处理模块在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,向量化处理该预设计算层中卷积计算的输入特征图和输出特征图。
9.根据权利要求8所述的装置,其特征在于,所述向量化处理后的输出特征图为多组;
所述处理模块在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,采用流水线的方式依次处理向量化处理后的每组输出特征图的卷积计算,并行处理每组输出特征图中的多个卷积计算;
或者;
所述处理模块在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,采用流水线的方式依次处理向量化处理后的每组输出特征图的池化计算,并行处理每组输出特征图中的多个池化计算。
10.根据权利要求8所述的装置,其特征在于,所述向量化处理后的输入特征图和所述向量化处理后的输出特征图均为多组;
所述处理模块在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,采用多个线程块从全局存储器中并行读取向量化处理后的多组输入特征图的卷积计算的输入数据;其中,每个线程块包括多个线程,每组输入特征图包括多个卷积计算的输入数据,一个线程块读取一组输入特征图的输入数据,每个线程块中的一个线程读取每组输入特征图中一个卷积计算的输入数据;
或者;
所述处理模块在一预设计算层中处理所述深度学习网络模型的所有计算层的计算时,采用多个线程块并行向全局存储器写入向量化处理后的多组输出特征图的卷积计算的输出数据;其中,每个线程块包括多个线程,每组输出特征图包括多个卷积计算的输出数据,一个线程块写入一组输入特征图的输出数据,每个线程块中的一个线程写入每组输出特征图中一个卷积计算的输出数据。
11.一种深度学习网络的实现装置,其特征在于,包括存储器和处理器,存储器用于存储执行指令;处理器调用所述执行指令,用于执行如权利要求1-5任一项所述的深度学习网络的实现方法。
12.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被处理器执行时实现权利要求1-5任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810311861.XA CN108520300A (zh) | 2018-04-09 | 2018-04-09 | 一种深度学习网络的实现方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810311861.XA CN108520300A (zh) | 2018-04-09 | 2018-04-09 | 一种深度学习网络的实现方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108520300A true CN108520300A (zh) | 2018-09-11 |
Family
ID=63432270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810311861.XA Pending CN108520300A (zh) | 2018-04-09 | 2018-04-09 | 一种深度学习网络的实现方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108520300A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109447256A (zh) * | 2018-09-12 | 2019-03-08 | 上海交通大学 | 基于FPGA的Tensorflow系统加速的设计方法 |
CN110084363A (zh) * | 2019-05-15 | 2019-08-02 | 电科瑞达(成都)科技有限公司 | 一种基于fpga平台的深度学习模型加速方法 |
CN110766146A (zh) * | 2018-12-29 | 2020-02-07 | 中科寒武纪科技股份有限公司 | 一种人工智能处理器的学习任务编译方法及相关产品 |
WO2020093205A1 (zh) * | 2018-11-05 | 2020-05-14 | 深圳市欢太科技有限公司 | 深度学习计算方法及相关设备 |
CN111750965A (zh) * | 2019-03-27 | 2020-10-09 | 杭州海康威视数字技术股份有限公司 | 商品自助计费方法、装置及系统 |
CN111984864A (zh) * | 2020-08-14 | 2020-11-24 | 北京达佳互联信息技术有限公司 | 对象推荐方法、装置、电子设备和存储介质 |
WO2021179286A1 (zh) * | 2020-03-13 | 2021-09-16 | 深圳市大疆创新科技有限公司 | 卷积神经网络的数据处理方法、预测方法、计算装置和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106228240A (zh) * | 2016-07-30 | 2016-12-14 | 复旦大学 | 基于fpga的深度卷积神经网络实现方法 |
CN107229969A (zh) * | 2017-06-21 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种基于fpga的卷积神经网络实现方法及装置 |
-
2018
- 2018-04-09 CN CN201810311861.XA patent/CN108520300A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106228240A (zh) * | 2016-07-30 | 2016-12-14 | 复旦大学 | 基于fpga的深度卷积神经网络实现方法 |
CN107229969A (zh) * | 2017-06-21 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种基于fpga的卷积神经网络实现方法及装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109447256A (zh) * | 2018-09-12 | 2019-03-08 | 上海交通大学 | 基于FPGA的Tensorflow系统加速的设计方法 |
WO2020093205A1 (zh) * | 2018-11-05 | 2020-05-14 | 深圳市欢太科技有限公司 | 深度学习计算方法及相关设备 |
CN110766146A (zh) * | 2018-12-29 | 2020-02-07 | 中科寒武纪科技股份有限公司 | 一种人工智能处理器的学习任务编译方法及相关产品 |
CN110766146B (zh) * | 2018-12-29 | 2021-05-11 | 中科寒武纪科技股份有限公司 | 一种人工智能处理器的学习任务编译方法及相关产品 |
CN111750965A (zh) * | 2019-03-27 | 2020-10-09 | 杭州海康威视数字技术股份有限公司 | 商品自助计费方法、装置及系统 |
CN110084363A (zh) * | 2019-05-15 | 2019-08-02 | 电科瑞达(成都)科技有限公司 | 一种基于fpga平台的深度学习模型加速方法 |
CN110084363B (zh) * | 2019-05-15 | 2023-04-25 | 电科瑞达(成都)科技有限公司 | 一种基于fpga平台的深度学习模型加速方法 |
WO2021179286A1 (zh) * | 2020-03-13 | 2021-09-16 | 深圳市大疆创新科技有限公司 | 卷积神经网络的数据处理方法、预测方法、计算装置和存储介质 |
CN111984864A (zh) * | 2020-08-14 | 2020-11-24 | 北京达佳互联信息技术有限公司 | 对象推荐方法、装置、电子设备和存储介质 |
CN111984864B (zh) * | 2020-08-14 | 2023-12-26 | 北京达佳互联信息技术有限公司 | 对象推荐方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108520300A (zh) | 一种深度学习网络的实现方法和装置 | |
US11640528B2 (en) | Method, electronic device and computer readable medium for information processing for accelerating neural network training | |
US20210065058A1 (en) | Method, apparatus, device and readable medium for transfer learning in machine learning | |
CN108805796A (zh) | 用于整数深度学习原语的动态精度管理 | |
CN109145983A (zh) | 一种基于轻量化网络的实时场景图像语义分割方法 | |
CN108805797A (zh) | 用于机器学习操作的经优化计算硬件 | |
CN108805792A (zh) | 具有先进调度的可编程粗粒度化和稀疏矩阵计算硬件 | |
CN108734272A (zh) | 卷积神经网络优化机构 | |
CN108694692A (zh) | 机器学习稀疏计算机制 | |
CN110188598A (zh) | 一种基于MobileNet-v2的实时手部姿态估计方法 | |
Jeon et al. | Artificial intelligence for traffic signal control based solely on video images | |
CN107358951A (zh) | 一种语音唤醒方法、装置以及电子设备 | |
CN109086722A (zh) | 混合车牌识别方法、装置、电子设备 | |
CN110337807A (zh) | 针对深度通道和卷积神经网络图像和格式使用相机设备的方法和系统 | |
CN109754068A (zh) | 基于深度学习预训练模型的迁移学习方法及终端设备 | |
CN110543895B (zh) | 一种基于VGGNet和ResNet的图像分类方法 | |
CN110008961A (zh) | 文字实时识别方法、装置、计算机设备及存储介质 | |
CN108229360A (zh) | 一种图像处理的方法、设备及存储介质 | |
CN109272110A (zh) | 基于光子神经网络芯片的光电融合智能信号处理系统 | |
WO2017167114A1 (zh) | 一种类Alexnet网络的模型训练方法和装置 | |
CN107341761A (zh) | 一种深度神经网络的计算执行方法和系统 | |
CN107844829A (zh) | 用于加速神经网络处理器的方法和系统及神经网络处理器 | |
Tanaka et al. | Automatic graph partitioning for very large-scale deep learning | |
Addanki et al. | Placeto: Efficient progressive device placement optimization | |
CN108470211A (zh) | 一种卷积计算的实现方法、设备和计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180911 |