CN114625378A - 神经网络模型的编译方法、装置及计算机可读存储介质 - Google Patents
神经网络模型的编译方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114625378A CN114625378A CN202210313566.4A CN202210313566A CN114625378A CN 114625378 A CN114625378 A CN 114625378A CN 202210313566 A CN202210313566 A CN 202210313566A CN 114625378 A CN114625378 A CN 114625378A
- Authority
- CN
- China
- Prior art keywords
- feature map
- target
- neural network
- convolution kernel
- network model
- 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
- 238000003062 neural network model Methods 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000013528 artificial neural network Methods 0.000 claims abstract description 32
- 238000010586 diagram Methods 0.000 claims abstract description 25
- 238000013075 data extraction Methods 0.000 claims description 58
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 abstract description 7
- 238000000605 extraction Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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/045—Combinations of networks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
公开了一种神经网络模型的编译方法、装置及计算机可读存储介质。该方法包括:确定待编译神经网络模型所包括的目标网络层;基于目标网络层的层参数,将目标网络层的第一输入特征图和第二输入特征图之间的关联运算调整为神经网络加速器支持的运算逻辑;基于待编译神经网络模型中除了目标网络层之外的网络层,以及关联运算调整为运算逻辑之后的目标网络层,编译生成目标神经网络模型。由于本公开的实施例无需将数据搬移至通用处理器处进行处理,因此能够以较低的成本实现关联运算,且无需占用额外资源。
Description
技术领域
本公开涉及人工智能技术,尤其是一种神经网络模型的编译方法、装置及计算机可读存储介质。
背景技术
在一些情况下,芯片上部署的神经网络加速器不支持关联(Correlation)运算,而神经网络模型实际运算时需要进行关联运算,针对上述情况,目前采取的措施是:将需要进行关联运算的数据搬移至通用处理器处执行关联操作,再将通用处理器处的结果搬移回来。
发明内容
为了解决上述措施数据搬移成本高,且需要占用额外资源的技术问题,提出了本公开。本公开的实施例提供了一种神经网络模型的编译方法、装置及计算机可读存储介质。
根据本公开的一个方面,提供了一种神经网络模型的编译方法,包括:
确定待编译神经网络模型所包括的目标网络层;
基于所述目标网络层的层参数,将所述目标网络层的第一输入特征图和第二输入特征图之间的关联运算调整为神经网络加速器支持的运算逻辑;
基于所述待编译神经网络模型中除了所述目标网络层之外的网络层,以及所述关联运算调整为所述运算逻辑之后的所述目标网络层,编译生成目标神经网络模型。
根据本公开的另一个方面,提供了一种神经网络模型的编译装置,包括:
第一获取模块,用于确定待编译神经网络模型所包括的目标网络层;
调整模块,用于基于所述第一获取模块获取的所述目标网络层的层参数,将所述目标网络层的第一输入特征图和第二输入特征图之间的关联运算调整为神经网络加速器支持的运算逻辑;
生成模块,用于基于所述待编译神经网络模型中除了所述第一获取模块获取的所述目标网络层之外的网络层,以及所述关联运算调整为所述运算逻辑之后的所述目标网络层,编译生成目标神经网络模型。
根据本公开的再一个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述神经网络模型的编译方法。
根据本公开的又一个方面,提供了一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述神经网络模型的编译方法。
基于本公开上述实施例提供的神经网络模型的编译方法、装置、计算机可读存储介质及电子设备,可以在对神经网络模型进行编译的过程中,将目标网络层的第一输入特征图和第二输入特征图之间的关联运算调整为神经网络加速器支持的运算逻辑,这样,即便神经网络加速器不支持关联运算,也能够通过执行与关联运算等价的运算,实现关联运算,由于本公开的实施例无需将数据搬移至通用处理器处进行处理,因此能够以较低的成本实现关联运算,且无需占用额外资源。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开的实施例中实现关联运算的原理图。
图2是本公开一示例性实施例提供的神经网络模型的编译方法的流程示意图。
图3是本公开另一示例性实施例提供的神经网络模型的编译方法的流程示意图。
图4是本公开一示例性实施例提供的神经网络模型的编译方法中第一卷积核的示意图。
图5是本公开一示例性实施例提供的神经网络模型的编译方法中第二卷积核的示意图。
图6是本公开一示例性实施例提供的神经网络模型的编译方法中第四特征图的示意图。
图7是滑动窗口在图6所示的第四特征图上滑动,滑动窗口覆盖的区域的示意图。
图8是本公开的实施例中关联运算的实现流程图。
图9是本公开一示例性实施例提供的神经网络模型的编译装置的结构示意图。
图10是本公开另一示例性实施例提供的神经网络模型的编译装置的结构示意图。
图11是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
申请概述
一些芯片上可以部署有神经网络加速器,例如,人工智能(ArtificialIntelligence,AI)芯片上可以部署有大脑处理器(Brain Processing Unit,BPU)。需要说明的是,神经网络加速器可以用于实现神经网络模型,例如用于实现进行目标检测的神经网络模型。
在实现本公开的过程中,发明人发现,在一些情况下,芯片上部署的神经网络加速器不支持关联运算,而神经网络模型实际运算时需要进行关联运算。其中,关联运算所需的输入一般是两个特征图,可选地,这两个特征图既可以是Flow(即光流)任务中的前后两个时刻的图像,也可以是Stereo(即立体)任务中左右两个摄像头的图像,实际运算时,一般需要从这两个特征图中分别取出一个patch(即小块),然后计算这两个patch的相关系数,以作为当前位置的输出值,这样,关联运算的作用实质上是计算两个输入的局部区域的相关性,在Flow任务和Stereo任务中,关联运算可用于构建cost volume(其是计算机视觉中的立体匹配问题中的一种左右视差搜索空间)。
针对芯片上部署的神经网络加速器不支持关联运算,而神经网络模型实际运算时需要进行关联运算的情况,目前采取的措施是:将需要进行关联运算的数据搬移至通用处理器处执行关联操作,例如搬移至中央处理器(Central Processing Unit,CPU)处执行关联操作,再将通用处理器处的结果搬移回来。然而,上述措施数据搬移成本高,且需要占用额外资源,因此有必要采取一种更为合理的措施来应对上述情况。
示例性系统
需要说明的是,芯片上部署的神经网络加速器即便不支持关联运算,往往也会支持一些常见的运算类型,例如支持卷积运算、通道求和(Channelsum)运算、逐元素(Elementwise)运算等。
有鉴于此,本公开的实施例中,如图1所示,神经网络模型涉及两个阶段,分别是编译阶段和执行阶段;其中,在编译阶段,可以将关联运算调整为神经网络模型支持的运算逻辑,并且,编译阶段并不实际执行神经网络模型支持的运算逻辑;在执行阶段,可以通过神经网络模型支持的运算逻辑的实际执行,间接实现关联运算。这样,即便神经网络加速器不支持关联运算,也能在不进行数据搬移、不占用额外资源的前提下实现关联运算。
示例性方法
图2是本公开一示例性实施例提供的神经网络模型的编译方法的流程示意图。图2所示的方法具体可以应用于编译器,图2所示的方法包括步骤201、步骤202和步骤203,下面分别对各步骤进行说明。
步骤201,确定待编译神经网络模型所包括的目标网络层。
需要说明的是,待编译神经网络模型是指需要进行编译的神经网络模型,待编译神经网络模型可以包括多个网络层,多个网络层中的至少一个网络层所对应的运算类型为关联运算,该至少一个网络层中的任一网络层均可以作为步骤201中的目标网络层。
步骤202,基于目标网络层的层参数,将目标网络层的第一输入特征图和第二输入特征图之间的关联运算调整为神经网络加速器支持的运算逻辑。
这里,目标网络层的层参数可以包括实现关联运算所需的各种参数,为了布局清楚,后续再对目标网络层的层参数进行具体介绍。
这里,第一输入特征图可以表示为data1,第二输入特征图可以表示为data2,第一输入特征图和第二输入特征图的通道数相同。
这里,神经网络加速器支持的运算逻辑包括但不限于取数运算、通道求和运算、逐元素运算、除法运算等常见的运算类型。
需要说明的是,步骤202中将关联运算调整为神经网络加速器支持的运算逻辑,其实质上是将关联运算变换为了与之等价的运算,也即,通过与之等价的运算的执行,得到的结果与执行关联运算得到的结果是相同的。
步骤203,基于待编译神经网络模型中除了目标网络层之外的网络层,以及关联运算调整为神经网络支持的运算逻辑之后的目标网络层,编译生成目标神经网络模型。
需要说明的是,待编译神经网络模型中除了目标网络层之外的网络层是指所对应的运算类型不为关联运算的网络层,包括但不限于所对应的运算类型为卷积运算的网络层(即卷积层)、所对应的运算类型为池化运算的网络层(即池化层)、所对应的运算类型为修正线性单元(Rectified linear unit,ReLU)运算的网络层(即ReLU层)等。
在步骤203中,可以由编译器后端基于待编译神经网络模型中除了目标网络层之外的网络层,以及关联运算调整为神经网络加速器支持的运算逻辑之后的目标网络层进行编译处理,从而生成二进制的目标神经网络模型,具体编译处理方式可以根据实际需求采用任意可实施的方式,本公开对此不做赘述。
基于本公开上述实施例提供的神经网络模型的编译方法,可以在对神经网络模型进行编译的过程中,将目标网络层的第一输入特征图和第二输入特征图之间的关联运算调整为神经网络加速器支持的运算逻辑,这样,即便神经网络加速器不支持关联运算,也能够通过执行与关联运算等价的运算,实现关联运算,由于本公开的实施例无需将数据搬移至通用处理器处进行处理,因此能够以较低的成本实现关联运算,且无需占用额外资源。
在图2所示实施例的基础上,如图3所示,步骤202,包括步骤2021、步骤2022和步骤2023。
步骤2021,基于目标网络层的层参数,确定目标网络层的第一输入特征图的第一数据提取方式、目标网络层的第二输入特征图的第二数据提取方式、以及卷积核尺寸。
这里,目标网络层的层参数中可以包括第一数据提取方式、第二数据提取方式和卷积核尺寸;其中,第一数据提取方式用于指示具体如何从第一输入特征图中进行数据提取,第二数据提取方式用于指示具体如何从第二输入特征图中进行数据提取;卷积核尺寸中可以包括宽度和高度。这样,在步骤2021中,可以直接从目标网络层的层参数中提取第一数据提取方式、第二数据提取方式和卷积核尺寸。
可选地,第一数据提取方式可以指示用于进行数据提取的提取起始位置、提取步长等,按照第一数据提取方式进行数据提取时,每次提取的数据可以是固定的。
可选地,第二数据提取方式可以指示用于进行数据提取的提取起始位置、提取步长等,第二数据提取方式还可以指示用于进行数据提取的滑动窗口的大小、滑动范围、移动步长等信息,第二数据提取方式可以指定一最大偏移量(max_displacement),通过该最大偏移量,即可限定用于进行数据提取的滑动窗口的滑动范围,由于第二数据提取方式涉及滑动窗口,按照第二数据提取方式进行数据提取时,每次提取的数据可以是不同的。其中,第一数据提取方式和第二数据提取方式指示的提取步长均可以表示为stride1;第二数据提取方式指示的移动步长可以表示为stride2。
可选地,卷积核尺寸也可以称为kernel大小,在卷积核尺寸中的宽度和高度均为3的情况下,卷积核尺寸可以表示为kernel=(3,3)的形式。
步骤2022,基于卷积核尺寸,生成目标数据。
在步骤2022中,可以基于卷积核尺寸中的宽度和高度,进行目标数据的生成。
步骤2023,基于第一数据提取方式、第二数据提取方式、以及目标数据,将第一输入特征图和第二输入特征图之间的关联运算调整为神经网络加速器支持的运算逻辑。
可选地,神经网络支持的运算逻辑包括:
以第一数据提取方式对第一输入特征图的数据提取运算;
以第二数据提取方式对第二输入特征图的数据提取运算;
对作为第一输入特征图的数据提取运算结果的第一特征图,以及作为第二输入特征图的数据提取运算结果的第二特征图的对应位置逐元素运算;
对作为第一特征图和第二特征图的对应位置逐元素运算结果的第三特征图的通道求和运算;
分别与目标数据和第四特征图关联的目标运算,第四特征图为第三特征图的通道求和运算结果。
这里,第一特征图和第二特征图的对应位置逐元素运算包括但不限于对应位置相乘运算、对应位置求差的绝对值运算等。为了保证第一特征图和第二特征图之间能够进行对应位置逐元素运算,第一数据提取方式和第二数据提取方式需要保证第一特征图和第二特征图具有相同的特征图尺寸。
需要说明的是,目标数据的内容存在多种可能的情况,相应地,目标运算的类型也存在多种可能的情况,下面进行举例介绍。
在第一种情况中,目标数据包括:具有卷积核尺寸的第一卷积核,且第一卷积核中的每个元素均为1/N,N为卷积核尺寸中的宽度、卷积核尺寸中的高度、以及第一输入特征图的通道数的乘积:
目标运算,包括:
第四特征图和第一卷积核的卷积运算。
假设卷积核尺寸表示为kernel=(3,3)的形式,第一输入特征图的通道数为10,则N=3×3×10=90,具有卷积核尺寸的第一卷积核可以参见图4。
这种情况中,目标运算的运算类型具体为卷积运算,由于神经网络加速器通常支持卷积运算,这样能够保证目标运算的正常快速实现,从而有利于保证关联运算的正常实现。
在第二种情况中,目标数据包括:具有卷积核尺寸的第二卷积核,且第二卷积核中的每个元素均为1:
目标运算,包括:
第四特征图和第二卷积核的卷积运算;
以N作为除数,对作为第四特征图和第二卷积核的卷积运算结果的第五特征图的除法运算,N为卷积核尺寸中的宽度、卷积核尺寸中的高度、以及第一输入特征图的通道数的乘积。
假设卷积核尺寸表示为kernel=(3,3)的形式,则具有卷积核尺寸的第二卷积核可以参见图5。再假设第一输入特征图的通道数为10,则N=3×3×10=90,那么,在目标神经网络模型的执行阶段,在得到作为第四特征图和第二卷积核的卷积运算结果的第五特征图的情况下,可以将第五特征图中的每个像素值均与90相除,并将第五特征图中的每个像素值均更新为该像素值与90的相除结果。
这种情况中,目标运算的运算类型具体包括卷积运算和除法运算,由于神经网络加速器通常支持卷积运算和除法运算,这样能够保证目标运算的正常快速实现,从而有利于保证关联运算的正常实现。
在第三种情况中,目标数据包括基于第三特征图的宽度和卷积核尺寸中的宽度确定的窗口宽度,以及基于第三特征图的高度和卷积核尺寸中的高度确定的窗口高度;
目标运算与具有窗口宽度和窗口高度的滑动窗口关联。
可选地,窗口宽度为第一差值与1的和值,窗口高度为第二差值与1的和值,第一差值为第三特征图的宽度与卷积核尺寸中的宽度的差值,第二差值为第三特征图的高度与卷积核尺寸中的高度的差值;
目标运算,包括如下步骤:
对滑动窗口以步长1在第四特征图上滑动时,滑动窗口每次覆盖的区域沿通道方向堆叠的运算;
对所有区域堆叠形成的第六特征图的通道求和运算;
以N作为除数,对作为第六特征图的通道求和运算结果的第七特征图的除法运算,N为卷积核尺寸中的宽度、卷积核尺寸中的高度,以及第一特征图的通道数的乘积。
假设卷积核尺寸表示为kernel=(3,3)的形式,第三特征图的宽度表示为w,第三特征图的高度表示为h,则第一差值可以表示为w-3,第二差值可以表示为h-3,窗口宽度可以表示为w-3+1,窗口高度可以表示为h-3+1。假设w具体为6,h具体为8,则窗口宽度具体为4,窗口高度具体为6。再假设第四特征图具体为如图6所示的tensor(张量),则(4,6)的滑动窗口以步长1在该tensor上滑动时,滑动窗口每次覆盖的区域为一子tensor,且总共可以得到9个子tensor,这9个子tensor如图7所示,这样,由这9个子tensor堆叠形成的第六特征图的尺寸为6×4×9。在神经网络模型执行阶段,在得到第六特征图之后,可以对第六特征图进行通道求和运算,通道求和运算结果为第七特征图,第七特征图的尺寸为6×4×1,容易看出,第七特征图的第一行第一列位置处的像素值=1+2+3+9+10+11+17+18+19,第七特征图的第一行第二列位置处的像素值=2+3+4+10+11+12+18+19+20。再假设第一输入特征图的通道数为10,则N=3×3×10=90,那么,在得到作为第六特征图的通道求和运算的第七特征图之后,可以将第七特征图中的每个像素值均与90相除,并将第七特征图中的每个像素值均更新为该像素值与90的相除结果。
这种情况中,目标运算的运算类型具体包括堆叠运算、通道求和运算和除法运算,由于神经网络加速器通常支持堆叠运算、通道求和运算和除法运算,这样能够保证目标运算的正常快速实现,从而有利于保证关联运算的正常实现。需要指出的是,这种情况本质上是利用堆叠运算和通道求和运算代替卷积运算,这样能够通过对数据的搬运提升运算并行性,且能够尽量保证运算精度。
如图8所示,假设存在两个需要进行关联运算的特征图F1(相当于上文中的第一输入特征图)和F2(相当于上文中的第二输入特征图),则可以依次进行F1的数据提取运算,F2的数据提取运算,F1的数据提取运算结果与F2的数据提取运算结果的对应位置相乘运算,以及作为对应位置相乘运算结果的特征图的通道求和运算,以得到F3(相当于上文中的第四特征图)。之后,可以对F3进行kernel求和运算以得到O(具体运算方式参照上述目标数据的三种情况涉及的三种目标运算中的任一种目标运算)。
本公开的实施例中,参考目标网络层的层参数,可以高效可靠地确定目标网络层的第一输入特征图的第一数据提取方式、目标网络层的第二输入特征图的第二数据提取方式、以及卷积核尺寸,参考卷积核尺寸,可以进行目标数据的生成,以便后续基于第一数据提取方式、第二数据提取方式、以及目标数据,高效可靠地将第一输入特征图和第二输入特征图之间的关联运算调整为与之等价的运算,从而间接实现关联运算。
在一个可选示例中,第四特征图和任一卷积核的卷积运算,包括如下步骤:
至少两张第四特征图和至少两个该卷积核的深度卷积运算。
这里,深度卷积运算也可以称为Depthwise运算。
需要说明的是,在目标神经网络模型的执行阶段,在以第一数据提取方式对第一输入特征图进行数据提取运算时,通过提取可以仅得到一张第一特征图,而在以第二数据提取方式对第二输入特征图进行数据提取时,通过提取可以得到至少两张第二特征图,每张第二特征图都可以与第一特征图进行对应位置逐元素运算,这样能够得到与至少两张第二特征图一一对应的至少两张第三特征图,相应地,基于至少两张第三特征图各自的通道求和运算,可以得到与至少两张第二特征图一一对应的至少两张第四特征图。
在每次得到一张第四特征图之后,可以暂时先不进行卷积运算,而是将得到的第四特征图在通道方向上进行堆叠,以得到堆叠好的至少两张第四特征图。之后,对于上述目标数据的第一种情况,可以利用第一卷积核,对堆叠好的至少两张第四特征图整体做一个Depthwise运算,以代替分别对每张第四特征图进行的卷积运算;类似地,对于上述目标数据的第二种情况,可以利用第二一卷积核,对堆叠好的至少两张第四特征图整体做一个Depthwise运算,以代替分别对每张第四特征图进行的卷积运算。这样,通过利用Depthwise运算代替分别对每张第四特征图进行的卷积运算,有利于提高代码并行性,降低运算量,节约运算时间。
示例性装置
图9是本公开一示例性实施例提供的神经网络模型的编译装置的结构示意图。图9所示的装置包括第一获取模块901、调整模块902和生成模块903。
第一获取模块901,用于确定待编译神经网络模型所包括的目标网络层;
调整模块902,用于基于第一获取模块901获取的目标网络层的层参数,将目标网络层的第一输入特征图和第二输入特征图之间的关联运算调整为神经网络加速器支持的运算逻辑;
生成模块903,用于基于待编译神经网络模型中除了第一获取模块901获取的目标网络层之外的网络层,以及关联运算调整为运算逻辑之后的目标网络层,编译生成目标神经网络模型。
在一个可选示例中,如图10所示,调整模块902,包括:
确定子模块9021,用于基于目标网络层的层参数,确定目标网络层的第一输入特征图的第一数据提取方式、目标网络层的第二输入特征图的第二数据提取方式、以及卷积核尺寸;
生成子模块9022,用于基于确定子模块9021确定的卷积核尺寸,生成目标数据;
调整子模块9023,用于基于确定子模块9021确定的第一数据提取方式、确定子模块9021确定的第二数据提取方式、以及生成子模块9022生成的目标数据,将第一输入特征图和第二输入特征图之间的关联运算调整为神经网络加速器支持的运算逻辑。
在一个可选示例中,神经网络支持的运算逻辑包括:
以第一数据提取方式对第一输入特征图的数据提取运算;
以第二数据提取方式对第二输入特征图的数据提取运算;
对作为第一输入特征图的数据提取运算结果的第一特征图,以及作为第二输入特征图的数据提取运算结果的第二特征图的对应位置逐元素运算;
对作为第一特征图和第二特征图的对应位置逐元素运算结果的第三特征图的通道求和运算;
分别与目标数据和第四特征图关联的目标运算,第四特征图为第三特征图的通道求和运算结果。
在一个可选示例中,目标数据包括:具有卷积核尺寸的第一卷积核,且第一卷积核中的每个元素均为1/N,N为卷积核尺寸中的宽度、卷积核尺寸中的高度、以及第一输入特征图的通道数的乘积:
目标运算,包括:
第四特征图和第一卷积核的卷积运算。
在一个可选示例中,目标数据包括:具有卷积核尺寸的第二卷积核,且第二卷积核中的每个元素均为1:
目标运算,包括:
第四特征图和第二卷积核的卷积运算;
以N作为除数,对作为第四特征图和第二卷积核的卷积运算结果的第五特征图的除法运算,N为卷积核尺寸中的宽度、卷积核尺寸中的高度、以及第一输入特征图的通道数的乘积。
在一个可选示例中,第四特征图和任一卷积核的卷积运算,包括:
至少两张第四特征图和至少两个该卷积核的深度卷积运算。
在一个可选示例中,
目标数据包括基于第三特征图的宽度和卷积核尺寸中的宽度确定的窗口宽度,以及基于第三特征图的高度和卷积核尺寸中的高度确定的窗口高度;
目标运算与具有窗口宽度和窗口高度的滑动窗口关联。
在一个可选示例中,窗口宽度为第一差值与1的和值,窗口高度为第二差值与1的和值,第一差值为第三特征图的宽度与卷积核尺寸中的宽度的差值,第二差值为第三特征图的高度与述卷积核尺寸中的高度的差值;
目标运算,包括:
对滑动窗口以步长1在第四特征图上滑动时,滑动窗口每次覆盖的区域沿通道方向堆叠的运算;
对所有区域堆叠形成的第六特征图的通道求和运算;
以N作为除数,对作为第六特征图的通道求和运算结果的第七特征图的除法运算,N为卷积核尺寸中的宽度、卷积核尺寸中的高度,以及第一特征图的通道数的乘积。
示例性电子设备
下面,参考图11来描述根据本公开实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
图11图示了根据本公开实施例的电子设备的框图。
如图11所示,电子设备1100包括一个或多个处理器1101和存储器1102。
处理器1101可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备1100中的其他组件以执行期望的功能。
存储器1102可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器1101可以运行所述程序指令,以实现上文所述的本公开的各个实施例的神经网络模型的编译方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备1100还可以包括:输入装置1103和输出装置1104,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在该电子设备是第一设备或第二设备时,该输入装置1103可以是上述的麦克风或麦克风阵列,用于捕捉声源的输入信号。在该电子设备是单机设备时,该输入装置1103可以是通信网络连接器,用于从第一设备和第二设备接收所采集的输入信号。
此外,该输入装置1103还可以包括例如键盘、鼠标等等。
该输出装置1104可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置1104可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图11中仅示出了该电子设备1100中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备1100还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的神经网络模型的编译方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的神经网络模型的编译方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (10)
1.一种神经网络模型的编译方法,包括:
确定待编译神经网络模型所包括的目标网络层;
基于所述目标网络层的层参数,将所述目标网络层的第一输入特征图和第二输入特征图之间的关联运算调整为神经网络加速器支持的运算逻辑;
基于所述待编译神经网络模型中除了所述目标网络层之外的网络层,以及所述关联运算调整为所述运算逻辑之后的所述目标网络层,编译生成目标神经网络模型。
2.根据权利要求1所述的方法,其中,所述基于所述目标网络层的层参数,将所述目标网络层的第一输入特征图和第二输入特征图之间的关联运算调整为神经网络加速器支持的运算逻辑,包括:
基于所述目标网络层的层参数,确定所述目标网络层的第一输入特征图的第一数据提取方式、所述目标网络层的第二输入特征图的第二数据提取方式、以及卷积核尺寸;
基于所述卷积核尺寸,生成目标数据;
基于所述第一数据提取方式、所述第二数据提取方式、以及所述目标数据,将所述第一输入特征图和所述第二输入特征图之间的关联运算调整为神经网络加速器支持的运算逻辑。
3.根据权利要求2所述的方法,其中,所述运算逻辑包括:
以所述第一数据提取方式对所述第一输入特征图的数据提取运算;
以所述第二数据提取方式对所述第二输入特征图的数据提取运算;
对作为所述第一输入特征图的数据提取运算结果的第一特征图,以及作为所述第二输入特征图的数据提取运算结果的第二特征图的对应位置逐元素运算;
对作为所述第一特征图和所述第二特征图的对应位置逐元素运算结果的第三特征图的通道求和运算;
分别与所述目标数据和第四特征图关联的目标运算,所述第四特征图为所述第三特征图的通道求和运算结果。
4.根据权利要求3所述的方法,其中,所述目标数据包括:具有所述卷积核尺寸的第一卷积核,且所述第一卷积核中的每个元素均为1/N,N为所述卷积核尺寸中的宽度、所述卷积核尺寸中的高度、以及所述第一输入特征图的通道数的乘积:
所述目标运算,包括:
所述第四特征图和所述第一卷积核的卷积运算。
5.根据权利要求3所述的方法,其中,所述目标数据包括:具有所述卷积核尺寸的第二卷积核,且所述第二卷积核中的每个元素均为1:
所述目标运算,包括:
所述第四特征图和所述第二卷积核的卷积运算;
以N作为除数,对作为所述第四特征图和所述第二卷积核的卷积运算结果的第五特征图的除法运算,N为所述卷积核尺寸中的宽度、所述卷积核尺寸中的高度、以及所述第一输入特征图的通道数的乘积。
6.根据权利要求4或5所述的方法,其中,所述第四特征图和任一卷积核的卷积运算,包括:
至少两张所述第四特征图和至少两个该卷积核的深度卷积运算。
7.根据权利要求3所述的方法,其中,
所述目标数据包括基于所述第三特征图的宽度和所述卷积核尺寸中的宽度确定的窗口宽度,以及基于所述第三特征图的高度和所述卷积核尺寸中的高度确定的窗口高度;
所述目标运算与具有所述窗口宽度和所述窗口高度的滑动窗口关联。
8.一种神经网络模型的编译装置,包括:
第一获取模块,用于确定待编译神经网络模型所包括的目标网络层;
调整模块,用于基于所述第一获取模块获取的所述目标网络层的层参数,将所述目标网络层的第一输入特征图和第二输入特征图之间的关联运算调整为神经网络加速器支持的运算逻辑;
生成模块,用于基于所述待编译神经网络模型中除了所述第一获取模块获取的所述目标网络层之外的网络层,以及所述关联运算调整为所述运算逻辑之后的所述目标网络层,编译生成目标神经网络模型。
9.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-7任一所述的神经网络模型的编译方法。
10.一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-7任一所述的神经网络模型的编译方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210313566.4A CN114625378A (zh) | 2022-03-28 | 2022-03-28 | 神经网络模型的编译方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210313566.4A CN114625378A (zh) | 2022-03-28 | 2022-03-28 | 神经网络模型的编译方法、装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114625378A true CN114625378A (zh) | 2022-06-14 |
Family
ID=81904557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210313566.4A Pending CN114625378A (zh) | 2022-03-28 | 2022-03-28 | 神经网络模型的编译方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114625378A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024119952A1 (zh) * | 2022-12-06 | 2024-06-13 | 北京地平线信息技术有限公司 | 神经网络模型的编译方法、装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109190758A (zh) * | 2018-09-04 | 2019-01-11 | 地平线(上海)人工智能技术有限公司 | 用于展开卷积神经网络的张量数据的方法和装置 |
US20190138898A1 (en) * | 2017-11-07 | 2019-05-09 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network performing deconvolution |
CN111340201A (zh) * | 2018-12-19 | 2020-06-26 | 北京地平线机器人技术研发有限公司 | 卷积神经网络加速器及其执行卷积运算操作的方法 |
CN111738423A (zh) * | 2020-06-28 | 2020-10-02 | 湖南国科微电子股份有限公司 | 神经网络模型的编译方法、装置、存储介质及电子设备 |
CN113554161A (zh) * | 2021-07-20 | 2021-10-26 | 清华大学 | 一种神经网络加速器编译方法及装置 |
-
2022
- 2022-03-28 CN CN202210313566.4A patent/CN114625378A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190138898A1 (en) * | 2017-11-07 | 2019-05-09 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network performing deconvolution |
CN109190758A (zh) * | 2018-09-04 | 2019-01-11 | 地平线(上海)人工智能技术有限公司 | 用于展开卷积神经网络的张量数据的方法和装置 |
CN111340201A (zh) * | 2018-12-19 | 2020-06-26 | 北京地平线机器人技术研发有限公司 | 卷积神经网络加速器及其执行卷积运算操作的方法 |
CN111738423A (zh) * | 2020-06-28 | 2020-10-02 | 湖南国科微电子股份有限公司 | 神经网络模型的编译方法、装置、存储介质及电子设备 |
CN113554161A (zh) * | 2021-07-20 | 2021-10-26 | 清华大学 | 一种神经网络加速器编译方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024119952A1 (zh) * | 2022-12-06 | 2024-06-13 | 北京地平线信息技术有限公司 | 神经网络模型的编译方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240152729A1 (en) | Convolutional neural network (cnn) processing method and apparatus performing high-speed and precision convolution operations | |
CN115203380B (zh) | 基于多模态数据融合的文本处理系统及其方法 | |
US10699160B2 (en) | Neural network method and apparatus | |
US20210248413A1 (en) | Method and apparatus with dilated convolution | |
US20240362471A1 (en) | Method and apparatus for processing convolution operation in neural network using sub-multipliers | |
US10268454B2 (en) | Methods and apparatus to eliminate partial-redundant vector loads | |
CN110574045B (zh) | 用于优化后的深度网络处理的图形匹配 | |
US10067910B2 (en) | System and method for GPU maximum register count optimization applied to general matrix-matrix multiplication | |
US20210124976A1 (en) | Apparatus and method for calculating similarity of images | |
CN104641351A (zh) | 部分向量化编译系统 | |
CN111767508A (zh) | 计算机实现张量数据计算的方法、装置、介质和设备 | |
US20210117806A1 (en) | Composable neural network kernels | |
CN113868187A (zh) | 处理神经网络的方法和电子装置 | |
CN114625378A (zh) | 神经网络模型的编译方法、装置及计算机可读存储介质 | |
Zlateski et al. | FFT convolutions are faster than Winograd on modern CPUs, here is why | |
CN115576699A (zh) | 数据处理方法、装置、ai芯片、电子设备及存储介质 | |
CN113672232B (zh) | 程序编译方法和装置 | |
CN113535912A (zh) | 基于图卷积网络和注意力机制的文本关联方法及相关设备 | |
US10108405B2 (en) | Compiling apparatus and compiling method | |
CN115756493A (zh) | 神经网络模型的编译方法、装置、存储介质及电子设备 | |
CN112907501A (zh) | 物体检测方法、装置及电子设备 | |
CN113821471A (zh) | 神经网络的处理方法和电子装置 | |
Murali et al. | A PPA Study of Reinforced Placement Parameter Autotuning: Pseudo-3D vs. True-3D Placers | |
KR102435497B1 (ko) | 멀티미디어 신호 인식을 위한 전자 장치 및 그의 동작 방법 | |
KR102718583B1 (ko) | 뉴럴 네트워크를 위한 데이터 처리 방법 및 장치 |
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 |