CN111144560B - 一种深度神经网络运算方法及装置 - Google Patents
一种深度神经网络运算方法及装置 Download PDFInfo
- Publication number
- CN111144560B CN111144560B CN201811307229.4A CN201811307229A CN111144560B CN 111144560 B CN111144560 B CN 111144560B CN 201811307229 A CN201811307229 A CN 201811307229A CN 111144560 B CN111144560 B CN 111144560B
- Authority
- CN
- China
- Prior art keywords
- displacement
- network
- deep neural
- neural network
- parameter
- 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.)
- Active
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 77
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000006073 displacement reaction Methods 0.000 claims abstract description 258
- 230000006870 function Effects 0.000 claims description 38
- 238000010586 diagram Methods 0.000 claims description 34
- 238000007667 floating Methods 0.000 claims description 22
- 238000001514 detection method Methods 0.000 claims description 10
- 238000011478 gradient descent method Methods 0.000 claims description 7
- 230000011218 segmentation Effects 0.000 claims description 5
- 230000006399 behavior Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 9
- 230000009471 action Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 210000004556 brain Anatomy 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/17—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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/08—Learning methods
- G06N3/09—Supervised learning
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Nonlinear Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例提供了一种深度神经网络运算方法及装置,深度神经网络运算方法包括:获取网络层输入特征图;按照预设位移参数,将网络层输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图,其中,预设位移参数包括每个通道在各轴向上的位移量;利用1×1卷积核,对位移特征图进行卷积运算,得到网络层输出特征图。通过本方案,可以提高DNN的运行效率。
Description
技术领域
本申请涉及机器学习技术领域,特别是涉及一种深度神经网络运算方法及装置。
背景技术
DNN(Deep Neural Network,深度神经网络)作为机器学习研究中的一个新兴领域,通过模仿人脑的机制来解析数据,是一种通过建立和模拟人脑进行分析学习的智能模型。目前,例如CNN(Convolutional Neural Network,卷积神经网络)、RNN(RecurrentNeural Network,循环神经网络)、LSTM(Long Short Term Memory,长短期记忆网络)等DNN已在目标检测与分割、行为检测与识别、语音识别等方面得到了很好的应用。随着数据量的不断增加,DNN的计算复杂度不断提高。
为了降低DNN的计算复杂度,目前DNN多采用轻量化神经网络结构,例如移动端卷积神经网络MobileNet和ShuffleNet等,这些轻量化神经网络结构通过DWConv(DepthwiseConvolution,通道分离卷积)实现卷积运算。具体的,对输入特征图每个通道分别进行卷积运算,再利用1×1卷积核对每个通道的卷积结果进行卷积运算,实现通道维度上的信息聚合。DWConv将复杂的卷积运算拆分开来,先对一个通道的特征图进行卷积,再利用1×1卷积核进行通道维度上的信息聚合,降低了每一次进行卷积运算的复杂度。
然而如上述,DWConv运算需要进行多次的卷积运算,多次的卷积运算过程会导致DNN的实际运行效率较低。
发明内容
本申请实施例的目的在于提供一种深度神经网络运算方法及装置,以提高DNN的运行效率。具体技术方案如下:
第一方面,本申请实施例提供了一种深度神经网络运算方法,所述方法包括:
获取网络层输入特征图;
按照预设位移参数,将所述网络层输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图,其中,所述预设位移参数包括每个通道在各轴向上的位移量;
利用1×1卷积核,对所述位移特征图进行卷积运算,得到网络层输出特征图。
可选的,所述位移量为预设的多个不同偏移量的平均分布。
可选的,所述预设位移参数经过预先学习得到;
所述预设位移参数的学习方式,包括:
获取初始的位移参数;
将所述位移参数中的位移量转化为浮点位移量;
根据所述网络层输入特征图以及所述浮点位移量,利用双线性插值算法,得到网络层输出函数;
根据所述深度神经网络的输入数据、所述1×1卷积核、所述位移参数以及所述输入数据对应的标签,确定所述深度神经网络的网络损失值;
根据所述网络层输出函数,计算所述网络损失值对所述位移参数的梯度,并利用梯度下降法,对位移参数进行多次迭代更新,得到预设位移参数。
可选的,所述根据所述深度神经网络的输入数据、所述1×1卷积核、所述位移参数以及所述输入数据对应的标签,确定所述深度神经网络的网络损失值,包括:
根据所述深度神经网络的输入数据、所述1×1卷积核、所述位移参数以及所述输入数据对应的标签,计算所述深度神经网络的网络损失函数;
根据所述1×1卷积核,计算第一正则项;
根据所述位移参数,计算第二正则项;
对所述网络损失函数、所述第一正则项及所述第二正则项进行加权,得到所述深度神经网络的网络损失值。
可选的,所述按照预设位移参数,将所述输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图,包括:
对所述预设位移参数中的浮点位移量进行四舍五入取整操作,得到整型位移量;
按照所述预设位移参数中的整型位移量,将所述输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图。
第二方面,本申请实施例提供了一种深度神经网络运算装置,所述装置包括:
获取模块,用于获取网络层输入特征图;
位移模块,用于按照预设位移参数,将所述网络层输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图,其中,所述预设位移参数包括每个通道在各轴向上的位移量;
运算模块,用于利用1×1卷积核,对所述位移特征图进行卷积运算,得到网络层输出特征图。
可选的,所述位移量为预设的多个不同偏移量的平均分布。
可选的,所述预设位移参数经过预先学习得到;
所述装置还包括:学习模块;
所述学习模块,用于:
获取初始的位移参数;
将所述位移参数中的位移量转化为浮点位移量;
根据所述网络层输入特征图以及所述浮点位移量,利用双线性插值算法,得到网络层输出函数;根据所述深度神经网络的输入数据、所述1×1卷积核、所述位移参数以及所述输入数据对应的标签,确定所述深度神经网络的网络损失值;
根据所述网络层输出函数,计算所述网络损失值对所述位移参数的梯度,并利用梯度下降法,对位移参数进行多次迭代更新,得到预设位移参数。
可选的,所述学习模块,具体用于:
根据所述深度神经网络的输入数据、所述1×1卷积核、所述位移参数以及所述输入数据对应的标签,计算所述深度神经网络的网络损失函数;
根据所述1×1卷积核,计算第一正则项;
根据所述位移参数,计算第二正则项;
对所述网络损失函数、所述第一正则项及所述第二正则项进行加权,得到所述深度神经网络的网络损失值。
可选的,所述位移模块,具体用于:
对所述预设位移参数中的浮点位移量进行四舍五入取整操作,得到整型位移量;
按照所述预设位移参数中的整型位移量,将所述输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图。
本申请实施例提供的一种深度神经网络运算方法及装置,获取网络层输入特征图,按照预设位移参数,将网络层输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图,利用1×1卷积核,对位移特征图进行卷积运算,得到网络层输出特征图。通过将网络层输入特征图的每个通道分别沿各轴向进行位移,利用网络层输入特征图的错位,沟通感受野内的信息,这样,使得后续1×1卷积核不但可以进行通道维度上的信息聚合,同时也可以进行空域维度上的信息聚合,整个过程只需要进行一次1×1卷积,有效的提高了DNN的运行效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的深度神经网络运算方法的流程示意图;
图2为本申请实施例的通道位移示意图;
图3a为本申请一实施例的深度神经网络结构示意图;
图3b为本申请另一实施例的深度神经网络结构示意图;
图4为本申请实施例的深度神经网络运算装置的结构示意图;
图5为本申请实施例的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了提高DNN的运行效率,本申请实施例提供了一种深度神经网络运算方法、装置、电子设备及机器可读存储介质。
下面,首先对本申请实施例所提供的深度神经网络运算方法进行介绍。
本申请实施例所提供的一种深度神经网络运算方法的执行主体可以为执行智能算法的电子设备,该电子设备可以为具有目标检测与分割、行为检测与识别或者语音识别等功能的智能设备,例如远程计算机、远程服务器、智能相机、智能语音设备等等,执行主体中应该至少包括搭载有核心处理芯片的处理器。实现本申请实施例所提供的一种深度神经网络运算方法的方式可以为设置于执行主体中的软件、硬件电路和逻辑电路中的至少一种方式。
如图1所示,本申请实施例所提供的一种深度神经网络运算方法,可以包括如下步骤:
S101,获取网络层输入特征图。
网络层为深度神经网络中的任一运算层,在本实施例中,网络层包括位移层和1×1卷积核,一个位移层对应一个位移结构,即位移层可以为对网络层输入特征图进行位移操作的位移结构,当然,位移层还可以为卷积层、池化层等基本结构与位移结构融合得到的结构。
S102,按照预设位移参数,将网络层输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图。
其中,预设位移参数包括每个通道在各轴向上的位移量。假设网络层输入特征图的通道数为C,则对网络层输入特征图进行位移的位移层可以是一个有2C参数量的结构,位移参数(dx(C),dy(C))中的位移量分别对应第C通道在x轴和y轴方向上的位移量。以一个通道为例,位移参数为(1,1),即如图2所示,该通道的特征图均向左上角移动一个单位超出边界的部分舍弃,多出来的位置则补零。这种移位操作可以表示为公式(1)所示:
OC,x,y=IC,x+dx(C),y+dy(C) (1)
其中,IC为网络层输入特征图的第C通道,OC为位移后得到的位移特征图的第C通道,(x,y)为位移特征图上的坐标点,(dx(C),dy(C))为第C通道对应的位移参数,(x+dx(C),y+dy(C))为网络层输入特征图上(x,y)位移前对应的坐标点。
每一个通道有各自对应的预设位移参数,按照各自对应的预设位移参数进行位移,最终得到各通道位移后的位移特征图。预设位移参数可以是固定的,例如对预设的多个不同偏移量求平均分布得到,预设位移参数也可以是学习得到的。
可选的,位移量可以为预设的多个不同偏移量的平均分布。
预设位移参数中的位移量,可以是对预设的多个不同偏移量求平均分布得到,预设的多个不同偏移量可以是预先基于历史经验设置的,偏移量的数目设置的越多,平均分布所得到的预设位移参数能够保证更好的网络精度。当然,预设位移参数除了求平均分布得到以外,还可以是通过求高斯分布得到。
可选的,预设位移参数还可以经过预先学习得到。
预设位移参数的学习方式,具体可以包括:
第一步,获取初始的位移参数。
初始的位移参数可以包括多种,例如,初始的位移参数可以为(0,0),初始的位移参数中的位移量还可以为多种不同偏移量的平均分布,初始的位移参数还可以是用户根据经验设置等。
第二步,将位移参数中的位移量转化为浮点位移量。
初始的位移参数通常情况下为离散型的整数变量,为了使得位移参数可学习,本实施例将位移参数中的位移量松弛为浮点位移量。
第三步,根据网络层输入特征图以及浮点位移量,利用双线性插值算法,得到网络层输出函数。
为了使位移参数可学习,在将位移参数中的位移量松弛为浮点位移量的同时,还将本实施例中的位移操作松弛为可微分的双线性插值采样,这样,公式(1)可以转化为:
OC,x,y=∑(n,m)∈ΩIC,n,m(1-|x+dx(C)-n|)(1-|y+dy(C)-m|) (2)
其中,IC为网络层输入特征图的第C通道,OC为位移后得到的位移特征图的第C通道,(x,y)为位移特征图上的坐标点,Ω为网络层输入特征图上的浮点坐标(x+dx(C),y+dy(C))所处位置的邻域,(n,m)为邻域的四个边界点的坐标,(dx(C),dy(C))为第C通道对应的位移参数。公式(2)给出了双线性插值的原理,即利用原图像中目标点四周的四个真实存在的坐标点来共同决定目标图中的一个坐标点。
第四步,根据深度神经网络的输入数据、1×1卷积核、位移参数以及输入数据对应的标签,确定深度神经网络的网络损失值。
整个深度神经网络可以看成一个非线性映射函数,是由多个位移层、卷积层、激活层、池化层和/或一些其他自定义的网络层,层层堆叠得到的一个非线性函数,用于学习深度神经网络的输入数据与其对应的标签之间的非线性映射关系。
网络损失值与任务相关,不同任务有不同的损失函数,例如分类的损失函数可以是softmax。网络损失值是整个深度神经网络的输出值或输出图像,与输入数据对应的标签(例如类别、分割结果、检测结果等)符合的某种逼近关系。图片检测、分割都有各自的损失函数,这里不再一一列举。
可选的,根据深度神经网络的输入数据、1×1卷积核、位移参数以及输入数据对应的标签,确定深度神经网络的网络损失值,具体可以为:
根据深度神经网络的输入数据、1×1卷积核、位移参数以及输入数据对应的标签,计算深度神经网络的网络损失函数;
根据1×1卷积核,计算第一正则项;
根据位移参数,计算第二正则项;
对网络损失函数、第一正则项及第二正则项进行加权,得到深度神经网络的网络损失值。
为了使得尽量多的输入特征图无需位移,即(dx,dy)=(0,0),进一步减少位移带来的损耗,本实施例对位移参数加上正则项约束,网络损失值如公式(3)所示。
其中,Loss为深度神经网络的网络损失值,L(.)为网络损失函数,f(.)为深度神经网络所代表的非线性映射函数,w为1x1卷积层权重参数,input为深度神经网络的输入数据,(dx,dy)为位移参数,p为卷积层层数,q为位移层层数,T为深度神经网络的输入数据对应的标签,λ1、λ2为加权系数,为第一正则项,/>为第二正则项,本实施例中的正则项可以为L1正则或者L2正则。
第五步,根据网络层输出函数,计算网络损失值对位移参数的梯度,并利用梯度下降法,对位移参数进行多次迭代更新,得到预设位移参数。
网络损失值可以为上述加入了正则项约束或者未加正则项约束的网络损失值,计算网络损失值对网络层输出函数的梯度,具体可以为通过链式法则,按照从最后一个网络层起依次向前,计算网络损失值对输出函数的梯度,梯度反映了位移参数的调整方向和大小,则利用梯度下降法,基于网络损失值对输出函数的梯度,对位移参数进行多次迭代更新,可以得到预设位移参数。具体的,计算网络损失值对输出函数的梯度即为网络损失值对输出函数反向求偏导的过程,如公式(4)所示:
其中sign(.)为符号函数,当输入数据为正数时输出1,当输入数据为负数时输出-1;height和width为位移特征图的高与宽。公式(4)根据网络损失值对位移特征图的梯度求得网络损失值对位移参数的梯度,用于更新该位移参数。
在进行反向求偏导计算梯度时,更新的参数为浮点型的位移参数,也就是说,反向求偏导的位移变化量太小时,不会对网络的前向推导产生影响,只有更新的位移变化量经由多次迭代累积突破质的变化时才会对网络前向推导产生影响,当网络训了完毕后,仅保留四舍五入取整后的位移参数。
可选的,S102具体可以为:
对预设位移参数中的浮点位移量进行四舍五入取整操作,得到整型位移量;
按照预设位移参数中的整型位移量,将输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图。
在前向推导或者训练完毕时,每一次的位移操作必须是按照整型位移量进行位移,因此,需要将预设位移参数中的浮点位移量进行四舍五入取整操作,在基于整型位移量进行位移,得到位移特征图。
S103,利用1×1卷积核,对位移特征图进行卷积运算,得到网络层输出特征图。
在得到位移特征图后,利用1×1卷积核,对位移特征图进行卷积运算,由于位移特征图能够起到沟通感受野内的信息交流的作用,因此,1×1卷积核不但可以进行通道维度上的信息聚合,同时也可进行空域维度上的信息聚合。
如图3a及图3b所示,为本实施例深度神经网络的网络结构,图3a为步幅为2的网络结构,图3b为步幅为1的网络结构,两个网络结构不含卷积核大于1的卷积层,图3a及图3b的右侧分支为通道注意力机制,用于关注通道中的一部分有用信息,不属于本实施例的重点,这里不再详述。除了如图3a和图3b所示的网络结构以外,深度神经网络的网络结构还可以有其他变形体,这里不再一一举例。
应用本实施例,获取网络层输入特征图,按照预设位移参数,将网络层输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图,利用1×1卷积核,对位移特征图进行卷积运算,得到网络层输出特征图。通过将网络层输入特征图的每个通道分别沿各轴向进行位移,利用网络层输入特征图的错位,沟通感受野内的信息,这样,使得后续1×1卷积核不但可以进行通道维度上的信息聚合,同时也可以进行空域维度上的信息聚合,整个过程只需要进行一次1×1卷积,有效的提高了DNN的运行效率。通过位移结构与1×1卷积核组合可以搭建轻量化网络结构,满足轻量化网络的精度,同时避免了DWConv的使用,本实施例所提供的网络结构无论在GPU(Graphics Processing Unit,图形处理器)平台还是其他硬件平台上均可高效的运行,具有重要的工业工程价值。
相应于上述方法实施例,本申请实施例提供了一种深度神经网络运算装置,如图4所示,该深度神经网络运算装置可以包括:
获取模块410,用于获取网络层输入特征图;
位移模块420,用于按照预设位移参数,将所述网络层输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图,其中,所述预设位移参数包括每个通道在各轴向上的位移量;
运算模块430,用于利用1×1卷积核,对所述位移特征图进行卷积运算,得到网络层输出特征图。
可选的,所述位移量可以为预设的多个不同偏移量的平均分布。
可选的,所述预设位移参数可以经过预先学习得到;
所述装置还可以包括:学习模块;
所述学习模块,可以用于:获取初始的位移参数;将所述位移参数中的位移量转化为浮点位移量;根据所述网络层输入特征图以及所述浮点位移量,利用双线性插值算法,得到网络层输出函数;根据所述深度神经网络的输入数据、所述1×1卷积核、所述位移参数以及所述输入数据对应的标签,确定所述深度神经网络的网络损失值;根据所述网络层输出函数,计算所述网络损失值对所述位移参数的梯度,并利用梯度下降法,对位移参数进行多次迭代更新,得到预设位移参数。
可选的,所述学习模块,具体可以用于:
根据所述深度神经网络的输入数据、所述1×1卷积核、所述位移参数以及所述输入数据对应的标签,计算所述深度神经网络的网络损失函数;
根据所述1×1卷积核,计算第一正则项;
根据所述位移参数,计算第二正则项;
对所述网络损失函数、所述第一正则项及所述第二正则项进行加权,得到所述深度神经网络的网络损失值。
可选的,所述位移模块420,具体可以用于:
对所述预设位移参数中的浮点位移量进行四舍五入取整操作,得到整型位移量;
按照所述预设位移参数中的整型位移量,将所述输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图。
应用本实施例,获取网络层输入特征图,按照预设位移参数,将网络层输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图,利用1×1卷积核,对位移特征图进行卷积运算,得到网络层输出特征图。通过将网络层输入特征图的每个通道分别沿各轴向进行位移,利用网络层输入特征图的错位,沟通感受野内的信息,这样,使得后续1×1卷积核不但可以进行通道维度上的信息聚合,同时也可以进行空域维度上的信息聚合,整个过程只需要进行一次1×1卷积,有效的提高了DNN的运行效率。
为了提高DNN的运行效率,本申请实施例还提供了一种电子设备,如图5所示,包括处理器501和机器可读存储介质502,其中,
机器可读存储介质502,用于存储能够被处理器501执行的机器可执行指令;
处理器501,用于被机器可读存储介质502上所存放的机器可执行指令促使执行本申请实施例提供的深度神经网络运算方法的所有步骤。
机器可读存储介质502与处理器501之间可以通过有线连接或者无线连接的方式进行数据传输,并且电子设备可以通过有线通信接口或者无线通信接口与其他的设备进行通信。
上述机器可读存储介质可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本实施例中,该电子设备的处理器通过读取机器可读存储介质中存储的机器可执行指令,并通过运行该机器可执行指令,能够实现:获取网络层输入特征图,按照预设位移参数,将网络层输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图,利用1×1卷积核,对位移特征图进行卷积运算,得到网络层输出特征图。通过将网络层输入特征图的每个通道分别沿各轴向进行位移,利用网络层输入特征图的错位,沟通感受野内的信息,这样,使得后续1×1卷积核不但可以进行通道维度上的信息聚合,同时也可以进行空域维度上的信息聚合,整个过程只需要进行一次1×1卷积,有效的提高了DNN的运行效率。
另外,相应于上述实施例所提供的深度神经网络运算方法,本申请实施例提供了一种机器可读存储介质,用于机器可执行指令,所述机器可执行指令促使处理器执行本申请实施例提供的深度神经网络运算方法的所有步骤。
本实施例中,机器可读存储介质存储有在运行时执行本申请实施例所提供的深度神经网络运算方法的机器可执行指令,因此能够实现:获取网络层输入特征图,按照预设位移参数,将网络层输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图,利用1×1卷积核,对位移特征图进行卷积运算,得到网络层输出特征图。通过将网络层输入特征图的每个通道分别沿各轴向进行位移,利用网络层输入特征图的错位,沟通感受野内的信息,这样,使得后续1×1卷积核不但可以进行通道维度上的信息聚合,同时也可以进行空域维度上的信息聚合,整个过程只需要进行一次1×1卷积,有效的提高了DNN的运行效率。
对于电子设备以及机器可读存储介质实施例而言,由于其所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及机器可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (6)
1.一种深度神经网络运算方法,其特征在于,应用于目标检测与分割、行为检测与识别以及语音识别中至少一种,所述方法包括:
获取网络层输入特征图;
按照预设位移参数,将所述网络层输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图,其中,所述预设位移参数包括每个通道在各轴向上的位移量;所述预设位移参数经过预先学习得到;
利用1×1卷积核,对所述位移特征图进行卷积运算,得到网络层输出特征图;
所述预设位移参数的学习方式,包括:
获取初始的位移参数;将所述位移参数中的位移量转化为浮点位移量;根据所述网络层输入特征图以及所述浮点位移量,利用双线性插值算法,得到网络层输出函数;根据所述深度神经网络的输入数据、所述1×1卷积核、所述位移参数以及所述输入数据对应的标签,确定所述深度神经网络的网络损失值;根据所述网络层输出函数,计算所述网络损失值对所述位移参数的梯度,并利用梯度下降法,对位移参数进行多次迭代更新,得到预设位移参数;
所述根据所述深度神经网络的输入数据、所述1×1卷积核、所述位移参数以及所述输入数据对应的标签,确定所述深度神经网络的网络损失值,包括:根据所述深度神经网络的输入数据、所述1×1卷积核、所述位移参数以及所述输入数据对应的标签,计算所述深度神经网络的网络损失函数;根据所述1×1卷积核,计算第一正则项;根据所述位移参数,计算第二正则项;对所述网络损失函数、所述第一正则项及所述第二正则项进行加权,得到所述深度神经网络的网络损失值。
2.根据权利要求1所述的方法,其特征在于,所述位移量为预设的多个不同偏移量的平均分布。
3.根据权利要求1所述的方法,其特征在于,所述按照预设位移参数,将所述输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图,包括:
对所述预设位移参数中的浮点位移量进行四舍五入取整操作,得到整型位移量;
按照所述预设位移参数中的整型位移量,将所述输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图。
4.一种深度神经网络运算装置,其特征在于,应用于目标检测与分割、行为检测与识别以及语音识别中至少一种,所述装置包括:
获取模块,用于获取网络层输入特征图;
位移模块,用于按照预设位移参数,将所述网络层输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图,其中,所述预设位移参数包括每个通道在各轴向上的位移量;所述预设位移参数经过预先学习得到;
运算模块,用于利用1×1卷积核,对所述位移特征图进行卷积运算,得到网络层输出特征图;
学习模块,用于获取初始的位移参数;将所述位移参数中的位移量转化为浮点位移量;根据所述网络层输入特征图以及所述浮点位移量,利用双线性插值算法,得到网络层输出函数;根据所述深度神经网络的输入数据、所述1×1卷积核、所述位移参数以及所述输入数据对应的标签,确定所述深度神经网络的网络损失值;根据所述网络层输出函数,计算所述网络损失值对所述位移参数的梯度,并利用梯度下降法,对位移参数进行多次迭代更新,得到预设位移参数;
所述学习模块,具体用于:根据所述深度神经网络的输入数据、所述1×1卷积核、所述位移参数以及所述输入数据对应的标签,计算所述深度神经网络的网络损失函数;根据所述1×1卷积核,计算第一正则项;根据所述位移参数,计算第二正则项;对所述网络损失函数、所述第一正则项及所述第二正则项进行加权,得到所述深度神经网络的网络损失值。
5.根据权利要求4所述的装置,其特征在于,所述位移量为预设的多个不同偏移量的平均分布。
6.根据权利要求4所述的装置,其特征在于,所述位移模块,具体用于:
对所述预设位移参数中的浮点位移量进行四舍五入取整操作,得到整型位移量;
按照所述预设位移参数中的整型位移量,将所述输入特征图的每个通道分别沿各轴向进行位移,得到位移特征图。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811307229.4A CN111144560B (zh) | 2018-11-05 | 2018-11-05 | 一种深度神经网络运算方法及装置 |
US17/289,626 US20210397953A1 (en) | 2018-11-05 | 2019-11-05 | Deep neural network operation method and apparatus |
PCT/CN2019/115656 WO2020093996A1 (zh) | 2018-11-05 | 2019-11-05 | 一种深度神经网络运算方法及装置 |
EP19881764.5A EP3879436A4 (en) | 2018-11-05 | 2019-11-05 | METHOD AND DEVICE FOR OPERATING A DEEP NEURAL NETWORK |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811307229.4A CN111144560B (zh) | 2018-11-05 | 2018-11-05 | 一种深度神经网络运算方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111144560A CN111144560A (zh) | 2020-05-12 |
CN111144560B true CN111144560B (zh) | 2024-02-02 |
Family
ID=70516377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811307229.4A Active CN111144560B (zh) | 2018-11-05 | 2018-11-05 | 一种深度神经网络运算方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210397953A1 (zh) |
EP (1) | EP3879436A4 (zh) |
CN (1) | CN111144560B (zh) |
WO (1) | WO2020093996A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111598227B (zh) * | 2020-05-20 | 2023-11-03 | 字节跳动有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
WO2022247368A1 (en) * | 2021-05-28 | 2022-12-01 | Huawei Technologies Co., Ltd. | Methods, systems, and mediafor low-bit neural networks using bit shift operations |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106339753A (zh) * | 2016-08-17 | 2017-01-18 | 中国科学技术大学 | 一种有效提升卷积神经网络稳健性的方法 |
US9691019B1 (en) * | 2017-03-07 | 2017-06-27 | Google Inc. | Depth concatenation using a matrix computation unit |
CN107016440A (zh) * | 2017-03-01 | 2017-08-04 | 西安交通大学 | 机械传动故障的多分辨率深度神经网络智能诊断方法 |
CN107437110A (zh) * | 2017-07-11 | 2017-12-05 | 中国科学院自动化研究所 | 卷积神经网络的分块卷积优化方法及装置 |
CN107633296A (zh) * | 2017-10-16 | 2018-01-26 | 中国电子科技集团公司第五十四研究所 | 一种卷积神经网络构建方法 |
WO2018036293A1 (zh) * | 2016-08-26 | 2018-03-01 | 杭州海康威视数字技术股份有限公司 | 图像分割方法、装置及全卷积网络系统 |
WO2018140294A1 (en) * | 2017-01-25 | 2018-08-02 | Microsoft Technology Licensing, Llc | Neural network based on fixed-point operations |
CN108564165A (zh) * | 2018-03-13 | 2018-09-21 | 上海交通大学 | 卷积神经网络定点化优化的方法及系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10282663B2 (en) * | 2015-08-15 | 2019-05-07 | Salesforce.Com, Inc. | Three-dimensional (3D) convolution with 3D batch normalization |
WO2017031630A1 (zh) * | 2015-08-21 | 2017-03-02 | 中国科学院自动化研究所 | 基于参数量化的深度卷积神经网络的加速与压缩方法 |
CN105160310A (zh) * | 2015-08-25 | 2015-12-16 | 西安电子科技大学 | 基于3d卷积神经网络的人体行为识别方法 |
US10572777B2 (en) * | 2016-03-11 | 2020-02-25 | Nec Corporation | Deep deformation network for object landmark localization |
CN106407931B (zh) * | 2016-09-19 | 2019-11-22 | 杭州电子科技大学 | 一种深度卷积神经网络运动车辆检测方法 |
CN106548192B (zh) * | 2016-09-23 | 2019-08-09 | 北京市商汤科技开发有限公司 | 基于神经网络的图像处理方法、装置和电子设备 |
IE87469B1 (en) * | 2016-10-06 | 2024-01-03 | Google Llc | Image processing neural networks with separable convolutional layers |
CN106909887A (zh) * | 2017-01-19 | 2017-06-30 | 南京邮电大学盐城大数据研究院有限公司 | 一种基于cnn和svm的动作识别方法 |
CN107238507B (zh) * | 2017-06-20 | 2019-12-31 | 佛山市南海区广工大数控装备协同创新研究院 | 一种基于深度学习的工业设备故障预测方法 |
-
2018
- 2018-11-05 CN CN201811307229.4A patent/CN111144560B/zh active Active
-
2019
- 2019-11-05 EP EP19881764.5A patent/EP3879436A4/en active Pending
- 2019-11-05 WO PCT/CN2019/115656 patent/WO2020093996A1/zh unknown
- 2019-11-05 US US17/289,626 patent/US20210397953A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106339753A (zh) * | 2016-08-17 | 2017-01-18 | 中国科学技术大学 | 一种有效提升卷积神经网络稳健性的方法 |
WO2018036293A1 (zh) * | 2016-08-26 | 2018-03-01 | 杭州海康威视数字技术股份有限公司 | 图像分割方法、装置及全卷积网络系统 |
WO2018140294A1 (en) * | 2017-01-25 | 2018-08-02 | Microsoft Technology Licensing, Llc | Neural network based on fixed-point operations |
CN107016440A (zh) * | 2017-03-01 | 2017-08-04 | 西安交通大学 | 机械传动故障的多分辨率深度神经网络智能诊断方法 |
US9691019B1 (en) * | 2017-03-07 | 2017-06-27 | Google Inc. | Depth concatenation using a matrix computation unit |
CN107437110A (zh) * | 2017-07-11 | 2017-12-05 | 中国科学院自动化研究所 | 卷积神经网络的分块卷积优化方法及装置 |
CN107633296A (zh) * | 2017-10-16 | 2018-01-26 | 中国电子科技集团公司第五十四研究所 | 一种卷积神经网络构建方法 |
CN108564165A (zh) * | 2018-03-13 | 2018-09-21 | 上海交通大学 | 卷积神经网络定点化优化的方法及系统 |
Non-Patent Citations (4)
Title |
---|
Bichen Wu, Alvin Wan∗, Xiangyu Yue∗, Peter Jin, Sicheng Zhao.Shift: A Zero FLOP, Zero Parameter Alternative to Spatial Convolutions.《2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition》.2017,1-9. * |
Constructing Fast Network through Deconstruction of Convolution;Yunho Jeon;arXiv:1806.07370v5 [cs.CV] 31 Oct 2018;全文 * |
Weijie Chen, Di Xie, Yuan Zhang, Shiliang Pu.All You Need is a Few Shifts: Designing Efficient Convolutional Neural Networks for Image Classification.《2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition》.2019,1-9页. * |
低分辨率自然场景文本识别;浦世亮;郑钢;王杰;;中国安防(09);全文 * |
Also Published As
Publication number | Publication date |
---|---|
WO2020093996A1 (zh) | 2020-05-14 |
EP3879436A1 (en) | 2021-09-15 |
EP3879436A4 (en) | 2022-01-05 |
US20210397953A1 (en) | 2021-12-23 |
CN111144560A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110689109B (zh) | 神经网络方法和装置 | |
CN109754066B (zh) | 用于生成定点型神经网络的方法和装置 | |
US20240146948A1 (en) | Generating images using neural networks | |
CN107977704B (zh) | 权重数据存储方法和基于该方法的神经网络处理器 | |
US20170193361A1 (en) | Neural network training performance optimization framework | |
WO2022105108A1 (zh) | 一种网络数据分类方法、装置、设备及可读存储介质 | |
CN107798697A (zh) | 一种基于卷积神经网络的医学图像配准方法、系统及电子设备 | |
CN111144560B (zh) | 一种深度神经网络运算方法及装置 | |
CN117915108A (zh) | 视觉交互网络系统及其方法、训练方法和计算机存储介质 | |
CN110647974A (zh) | 深度神经网络中的网络层运算方法及装置 | |
CN111553477A (zh) | 图像处理方法、装置及存储介质 | |
CN112819050A (zh) | 知识蒸馏和图像处理方法、装置、电子设备和存储介质 | |
CN112529069A (zh) | 一种半监督节点分类方法、系统、计算机设备和存储介质 | |
CN112561050B (zh) | 一种神经网络模型训练方法及装置 | |
JP7150651B2 (ja) | ニューラルネットワークのモデル縮約装置 | |
CN110503182A (zh) | 深度神经网络中的网络层运算方法及装置 | |
CN115639756A (zh) | 用于生成工艺仿真模型的方法和设备 | |
CN117829149A (zh) | 一种语言模型混合训练方法、装置、电子设备和存储介质 | |
CN116882469B (zh) | 用于情感识别的脉冲神经网络部署方法、装置及设备 | |
CN110728359B (zh) | 搜索模型结构的方法、装置、设备和存储介质 | |
CN116258196A (zh) | 对神经网络进行训练的方法及更新神经网络参数的优化器 | |
CN112446461A (zh) | 一种神经网络模型训练方法及装置 | |
US20230056869A1 (en) | Method of generating deep learning model and computing device performing the same | |
CN111325343B (zh) | 神经网络的确定、目标检测、智能行驶控制方法及装置 | |
CN115511070A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |