CN111340215A - 一种网络模型推理加速方法、装置、存储介质和智能设备 - Google Patents
一种网络模型推理加速方法、装置、存储介质和智能设备 Download PDFInfo
- Publication number
- CN111340215A CN111340215A CN202010108772.2A CN202010108772A CN111340215A CN 111340215 A CN111340215 A CN 111340215A CN 202010108772 A CN202010108772 A CN 202010108772A CN 111340215 A CN111340215 A CN 111340215A
- Authority
- CN
- China
- Prior art keywords
- layer
- model
- network
- network model
- acceleration
- 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.)
- Granted
Links
- 230000001133 acceleration Effects 0.000 title claims abstract description 109
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 238000005457 optimization Methods 0.000 claims abstract description 11
- 230000006870 function Effects 0.000 claims description 65
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 2
- 238000001514 detection method Methods 0.000 claims description 2
- 238000003062 neural network model Methods 0.000 abstract description 11
- 230000008569 process Effects 0.000 description 10
- 238000013135 deep learning Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000011176 pooling Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本申请提出一种网络模型推理加速方法、装置、存储介质和智能设备。该方法包括:获取待加速的目标网络模型的模型信息;检测所述目标网络模型的各网络层的网络层类型,确定所述各网络层的网络层类型中设定接口不支持的目标网络层类型;根据所述目标网络模型的模型信息,添加自定义层接口函数至所述设定接口,以使得所述设定接口支持所述目标网络层类型;调用添加有所述自定义层接口函数的设定接口对所述目标网络模型进行网络模型推理加速。本方案可实现使用TensorRT对含有自定义层的深度神经网络模型的推理加速优化,方便用户对网络前向接口支持的网络层类型进行扩充,增强可扩展性。
Description
技术领域
本申请属于信息处理技术领域,尤其涉及一种网络模型推理加速方法、装置、存储介质和智能设备。
背景技术
近年来,深度学习技术的突破极大地推动了计算机视觉领域的发展,传统问题的精度不断提高,新的应用领域也在不断拓展。图形处理器(Graphics Processing Unit,GPU)是当前云端与嵌入式端深度学习计算的主流计算设备。NvidiaTensorRT(英伟达张量运行时,简称TensorRT)是一种高性能神经网络推理引擎,用于在生产环境中部署深度学习应用程序,它能够快速优化、验证并部署经过训练的神经网络模型,实现在NVIDIA GPU上加速执行。
然而,现有的NvidiaTensorRT接口没有实现Upsamplingnearest2d这一网络层,Upsamplingnearest2d是深度学习框架Pytorch模型中的一层。对于含有自定义层的深度神经网络模型,使用NvidiaTensorRT无法实现推理加速优化,可扩展性差。
发明内容
有鉴于此,本申请实施例提供了一种网络模型推理加速方法、装置、存储介质和智能设备,以解决现有技术中,对于含有自定义层的深度神经网络模型,使用NvidiaTensorRT无法实现推理加速优化,可扩展性差的问题。
第一方面,本申请实施例提供了一种网络模型推理加速方法,包括:
获取待加速的目标网络模型的模型信息,所述模型信息包括构成所述目标网络模型的各网络层的类型;
检测所述目标网络模型的各网络层的网络层类型,确定所述各网络层的网络层类型中设定接口不支持的目标网络层类型,所述设定接口用于实现网络模型的推理加速;
根据所述目标网络模型的模型信息,添加自定义层接口函数至所述设定接口,以使得所述设定接口支持所述目标网络层类型;
调用添加有所述自定义层接口函数的设定接口对所述目标网络模型进行网络模型推理加速。
可选地,所述根据所述目标网络模型的模型信息,添加自定义层接口函数至所述设定接口,包括:
将所述设定接口不支持的所述目标网络层类型对应的网络层确定为关键网络层;
根据所述目标网络模型中各网络层的连接关系,确定并获取所述目标网络模型中所述关键网络层的上一层的输出维度,并将所述关键网络层的上一层的输出维度作为自定义层的输入维度;
获取所述关键网络层的尺度因子,所述尺度因子为模型参数的调整系数;
根据所述尺度因子确定所述自定义层的输出维度;
根据所述自定义层的输入维度和输出维度,添加自定义层接口函数至所述设定接口。
进一步地,所述自定义层的输入维度包括输入宽度和输入高度,所述自定义层的输出维度包括输出宽度和输出高度,所述根据所述尺度因子确定所述自定义层的输出维度,包括:
根据下式确定所述自定义层的输出宽度和输出高度:
所述输出宽度=所述输入宽度*所述尺度因子;
所述输出高度=所述输入高度*所述尺度因子。
可选地,所述调用添加有所述自定义层接口函数的设定接口对所述目标网络模型进行网络模型推理加速,包括:
调用添加有所述自定义层接口函数的设定接口,获取所述目标网络模型的各网络层的网络参数信息;
根据所述目标网络模型的模型信息和所述各网络层的网络参数信息,构建加速模型;
获取所述目标网络模型的待执行文本数据;
基于所述加速模型对所述目标网络模型的待执行文本数据进行前向推理,得到所述加速模型的输出文本数据。
进一步地,所述基于所述加速模型对所述目标网络模型的待执行文本数据进行前向推理,得到所述加速模型的输出文本数据,包括:
将所述加速模型中相同的网络层优化合并;
将所述待执行文本数据输入至所述加速模型,利用前向传播算法对所述加速模型进行前向传播计算,得到所述加速模型的输出文本数据。
第二方面,本申请实施例提供了一种网络模型推理加速装置,包括:
模型信息获取单元,用于获取待加速的目标网络模型的模型信息,所述模型信息包括构成所述目标网络模型的各网络层的类型;
网络层类型检测单元,用于检测所述目标网络模型的各网络层的网络层类型,确定所述各网络层的网络层类型中设定接口不支持的目标网络层类型,所述设定接口用于实现网络模型的推理加速;
自定义层接口添加单元,用于根据所述目标网络模型的模型信息,添加自定义层接口函数至所述设定接口,以使得所述设定接口支持所述目标网络层类型;
推理加速单元,用于调用添加有所述自定义层接口函数的设定接口对所述目标网络模型进行网络模型推理加速。
第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请实施例第一方面提出的网络模型推理加速方法。
第四方面,本申请实施例提供了一种智能设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例第一方面提出的网络模型推理加速方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面所述的网络模型推理加速方法。
本申请实施例中,通过获取待加速的目标网络模型的模型信息,所述模型信息包括构成所述目标网络模型的各网络层的类型,然后检测所述目标网络模型的各网络层的网络层类型,确定所述各网络层的网络层类型中设定接口不支持的目标网络层类型,所述设定接口用于实现网络模型的推理加速,根据所述目标网络模型的模型信息,添加自定义层接口函数至所述设定接口,以使得所述设定接口支持所述目标网络层类型,再调用添加有所述自定义层接口函数的设定接口对所述目标网络模型进行网络模型推理加速,实现使用TensorRT对含有自定义层的深度神经网络模型的推理加速优化,方便用户对网络前向接口支持的网络层类型进行扩充,增强可扩展性。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络模型推理加速方法的实现流程图;
图2是本申请实施例提供的一种网络模型推理加速方法S103的具体实现流程图;
图3是本申请实施例提供的一种网络模型推理加速方法S104的具体实现流程图;
图4是本申请实施例提供的一种网络模型推理加速装置的结构框图;
图5是本申请实施例提供的智能设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请提出一种网络模型推理加速方法,能够使得NvidiaTensorRT接口支持除默认支持的网络层以外的其他网络层。
图1示出了本申请实施例提供的网络模型推理加速方法的实现流程,该方法流程包括步骤S101至S104。各步骤的具体实现原理如下:
S101:获取待加速的目标网络模型的模型信息,所述模型信息包括构成所述目标网络模型的各网络层的类型。
在本申请实施例中,所述待加速的目标网络模型是指待推理加速的深度神经网络模型,所述模型信息包括构成所述目标网络模型的各网络层的类型,所述模型信息还包括所述待加速的目标网络模型的输入维度、输出维度、构成所述待加速的目标网络模型的网络层的层数,以及各网络层的之间的输入、输出关系。具体地,所述待加速的目标网络模型是由多层网络构成,网络层的类型包括输入层、输出层、卷积层、池化层等,还包括自定义层,如Upsamplingnearest2d层。
S102:检测所述目标网络模型的各网络层的网络层类型,确定所述各网络层的网络层类型中设定接口不支持的目标网络层类型,所述设定接口用于实现网络模型的推理加速。
具体地,根据所述目标网络模型的网络层类型,确定所述网络层的接口函数,检测所述网络层的接口函数是否为设定接口直接支持的接口函数。若所述网络层的网络层类型为设定接口支持的网络层类型,即,所述网络层的接口函数为所述设定接口可直接支持的接口函数,则通过所述设定接口对所述目标网络模型进行网络模型推理加速。若所述网络层的网络层类型为设定接口不支持的网络层类型,则将该网络层类型确定为目标网络层类型。
在本申请实施例中,所述设定接口为TensorRT接口,通过TensorRT接口对所述目标网络模型进行网络模型推理加速。具体地,所述TensorRT接口可直接支持的网络层类型包括Activation(激活层)、Concatenation(连接层)、Convolution(卷基层)、Deconvolution(反卷积层)、Pooling(池化层)等等。然而,由于深度学习框架有多种,深度学习的神经网络模型可能存在不常设置的网络层,该网络层的接口函数并不一定是TensorRT接口可支持调用的接口函数,例如,Upsamplingnearest2d层就是TensorRT接口不能直接支持的,直接使用TensorRT接口无法获取待加速的目标神经网络模型中Upsamplingnearest2d层的网络参数。Upsamplingnearest2d是深度学习框架Pytorch模型中的一层。其主要计算方法为上采样中的最近邻插值计算方法。因此,本申请实施例通过检测所述网络层的接口函数是否可直接通过TensorRT接口对所述目标网络模型进行网络模型推理加速。
S103:根据所述目标网络模型的模型信息,添加自定义层接口函数至所述设定接口,以使得所述设定接口支持所述网络层类型。
在本申请实施例中,若所述目标网络模型的各网络层中存在某一网络层类型的接口函数不是所述设定接口可直接支持的接口函数,则该网络层类型确定为目标网络层类型,根据所述目标网络模型的模型信息,添加自定义层接口函数至所述设定接口,以使得所述设定接口支持所述目标网络层类型。
具体地,获取所述设定接口可直接支持的网络层类型列表,判断所述网络层类型列表中是否包括所述目标网络模型的网络层类型,若所述网络层类型列表中不包括所述目标网络模型的目标网络层类型,则确定所述目标网络模型的网络层中存在所述设定接口不支持的目标网络层类型,再根据所述目标网络模型的模型信息,添加自定义层接口函数至所述设定接口,以使得所述设定接口支持所述目标网络层类型。其中,所述自定义层接口函数根据所述目标网络模型的模型信息建立的自定义层的接口。
作为本申请的一个实施例,图2示出了本申请实施例提供的网络模型推理加速方法S103的具体实现流程,详述如下:
A1:将所述设定接口不支持的所述目标网络层类型对应的网络层确定为关键网络层;
A2:根据所述目标网络模型中各网络层的连接关系,确定并获取所述目标网络模型中所述关键网络层的上一层的输出维度,并将所述关键网络层的上一层的输出维度作为自定义层的输入维度。具体地,所述模型信息中包括所述目标网络模型中网络层的输入输出关系,也即各网络层之间的连接关系,将不被所述设定接口支持的目标网络层类型对应的网络层确定为关键网络层,根据所述目标网络模型中各网络层的连接关系,确定所述关键网络层的上一层,并将所述关键网络层的上一次的输出维度,作为自定义层的输入维度。
A3:获取所述关键网络层的尺度因子,所述尺度因子为模型参数的调整系数。具体地,所述尺度因子用于模型张量的调整。所述尺度因子可人为定义,也可以根据所述目标网络模型的类型确定。
A4:根据所述尺度因子确定所述自定义层的输出维度。具体地,在本申请实施例中,所述自定义层的输入维度包括输入宽度和输入高度,所述自定义层的输出维度包括输出宽度和输出高度,根据下式确定所述自定义层的输出宽度和输出高度:所述输出宽度=所述输入宽度*所述尺度因子;所述输出高度=所述输入高度*所述尺度因子。
A5:根据所述自定义层的输入维度和输出维度,添加自定义层接口函数至所述设定接口。根据所述自定义层的输入维度和输入维度,构建自定义层,添加所述自定义层接口函数至所述设定接口。具体地,调用自定义层构建函数addPlugin添加Upsamplingnearest2d层接口函数。
示例性地,若所述目标网络模型中包括Upsamplingnearest2d网络层,根据目标网络模型的网络层的输入输出关系,获取Upsamplingnearest2d上一层的输出维度作为自定义层的输入维度。获取Upsamplingnearest2d的尺度因子scale_factor,并根据scale_factor确定自定义层的输出宽度W=Wup*scale_factor,输出高度H=Hup*scale_factor,其中,Wup为Upsamplingnearest2d上一层的输出宽度,Hup为Upsamplingnearest2d上一层的输出高度。再调用自定义层函数addPlugin,添加Upsamplingnearest2d层,从而使得设定接口TensorRT支持Upsamplingnearest2d层。
在本申请实施例中,具体实现函数为nearest_neighbor_4d_kernel,采用GPU核函数。val=input[n*channels*height1*width1+c*height1*width1+h1*width1+w1];output[n*channels*height2*width2+c*height2*width2+h2*width2+w2]=val;其中,channels表示输入总通道数,height1表示输入高,height2表示输出高,width1表示输入宽,width2表示输出宽,c表示变量,当前通道最小0,最大为channels,n表示当前批量数,从0开始,不超过最大批量数,w1表示当前输入宽,从0开始,最大不超过width1。h1表示当前输入高,从0开始,最大不超过height1,w2表示当前输出宽,从0开始,最大不超过width2,h2表示当前输出高,从0开始,最大不超过height2。
在本申请实施例中,通过自定义层构建函数添加自定义层接口函数至所述设定接口,从而使得所述设定接口支持所述目标网络模型的每个网络层。
S104:调用添加有所述自定义层接口函数的设定接口对所述目标网络模型进行网络模型推理加速。
具体地,获取所述待加速的目标网络模型的各网络层的网络参数,调用添加有所述自定义层接口函数的设定接口对所述目标网络模型进行网络模型推理加速。
作为本申请的一个实施例,图3示出了本申请实施例提供的网络模型推理加速方法S104的具体实现流程,详述如下:
B1:调用添加有所述自定义层接口函数的设定接口,获取所述目标网络模型的各网络层的网络参数信息。例如,目标网络模型包括卷积层addConvolution、池化层addPooling、全连接层addFullyConnected以及Upsamplingnearest2d层,获取各网络层的网络参数信息,例如,输入值、输入的大小、输出的大小和激励函数等。
B2:根据所述目标网络模型的模型信息和所述各网络层的网络参数信息,构建加速模型。在本实施例中,所述加速模型为TensorRT网络模型,调用createInferBuilder函数,所述createInferBuilder函数用于初始化库,获取接口指针,根据所述接口指针构建TensorRT网络,设置TensorRT网络模型的输入维度,TensorRT网络模型的输入维度是根据上述待加速的神经网络模型的输入维度设置的,和待加速模型的输入维度一致,TensorRT网络模型的输入维度是通过markOutput函数实现的。上述构建的TensorRT网络模型是前向网络模型,TensorRT构建的网络层数和所要加速的目标网络模型的网络层数是一致的。
B3:获取所述目标网络模型的待执行文本数据。所述待执行文本数据。
B4:基于所述加速模型对所述目标网络模型的待执行文本数据进行前向推理,得到所述加速模型的输出文本数据。
示例性地,通过TensorRTAddInput接口设置TensorRT网络模型的输入维度(N、C、H、W),然后通过TensoRT每层接口添加各层信息(即addConvolution、addPooling等),在添加完各层信息之后,构建TensorRT引擎,设置TensorRT网络模型的输出维度(N、C、H、W)。获取所述待执行文本数据,即Context上下文,执行网络前向,获取TensorRT网络模型的前向结果,得到所述加速模型的输出文本数据。
可选地,所述步骤B4的具体实现流程如下:
B41:将所述加速模型中相同的网络层优化合并。
具体地,基于所述加速模型对所述目标网络模型的待执行文本数据进行前向推理的过程中,通过把TensorRT网络模型中相同的层合并在一起进行优化。例如:目标网络模型中有200层,其中有三十层都是卷积层,TensorRT会把相同类型的网络层一并计算,从而节省资源,加快推理速度。
B42:将所述待执行文本数据输入至所述加速模型,利用前向传播算法对所述加速模型进行前向传播计算,得到所述加速模型的输出文本数据。
具体地,将每层的计算拷贝至GPU图形处理器。目标网络模型每层都是有前后顺序的,从前往后一层一层计算,最后得到最终的结果。比如:第一层是卷积层,这层就按照卷积的算法公式计算。通过每层的参数依次计算出每层的结果,最终得出前向结果。具体地,将模型中本层的上层的计算结果作为本层的输入,计算本层的结果,最终得到所述加速模型的输出文本数据。
本申请实施例中,通过获取待加速的目标网络模型的模型信息,所述模型信息包括构成所述目标网络模型的各网络层的类型,然后检测所述目标网络模型的各网络层的网络层类型,确定所述各网络层的网络层类型中设定接口不支持的目标网络层类型,所述设定接口用于实现网络模型的推理加速,根据所述目标网络模型的模型信息,添加自定义层接口函数至所述设定接口,以使得所述设定接口支持所述目标网络层类型,再调用添加有所述自定义层接口函数的设定接口对所述目标网络模型进行网络模型推理加速,实现使用TensorRT对含有自定义层的深度神经网络模型的推理加速优化,方便用户对网络前向接口支持的网络层类型进行扩充,增强可扩展性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的网络模型推理加速方法,图4示出了本申请实施例提供的网络模型推理加速装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图4,该网络模型推理加速装置包括:模型信息获取单元41,网络层类型检测单元42,自定义层接口添加单元43,推理加速单元44,其中:
模型信息获取单元41,用于获取待加速的目标网络模型的模型信息,所述模型信息包括构成所述目标网络模型的各网络层的类型;
网络层类型检测单元42,用于检测所述目标网络模型的各网络层的网络层类型是否为设定接口不支持的目标网络层类型,所述设定接口用于实现网络模型的推理加速;
自定义层接口添加单元43,用于根据所述目标网络模型的模型信息,添加自定义层接口函数至所述设定接口,以使得所述设定接口支持所述目标网络层类型;
推理加速单元44,用于调用添加有所述自定义层接口函数的设定接口对所述目标网络模型进行网络模型推理加速。
可选地,所述自定义层接口添加单元43包括:
输入维度确定模块,用于将所述设定接口不支持的所述目标网络层类型对应的网络层确定为关键网络层;
根据所述目标网络模型中各网络层的连接关系,确定并获取所述目标网络模型中所述关键网络层的上一层的输出维度,并将所述关键网络层的上一层的输出维度作为自定义层的输入维度;
尺度因子获取模块,用于获取所述关键网络层的尺度因子,所述尺度因子为模型参数的调整系数;
输出维度确定模块,用于根据所述尺度因子确定所述自定义层的输出维度;
自定义层添加模块,用于根据所述自定义层的输入维度和输出维度,添加自定义层接口函数至所述设定接口。
可选地,所述输出维度确定模块具体用于:
根据下式确定所述自定义层的输出宽度和输出高度:
所述输出宽度=所述输入宽度*所述尺度因子;
所述输出高度=所述输入高度*所述尺度因子。
可选地,所述推理加速单元44包括:
参数信息获取模块,用于调用添加有所述自定义层接口函数的设定接口,获取所述目标网络模型的各网络层的网络参数信息;
加速模型构建模块,用于根据所述目标网络模型的模型信息和所述各网络层的网络参数信息,构建加速模型;
待执行文本获取模块,用于获取所述目标网络模型的待执行文本数据;
推理加速模块,用于基于所述加速模型对所述目标网络模型的待执行文本数据进行前向推理,得到所述加速模型的输出文本数据。
可选地,所述推理加速模块包括:
优化子模块,用于将所述加速模型中相同的网络层优化合并;
数据输出子模块,用于将所述待执行文本数据输入至所述加速模型,利用前向传播算法对所述加速模型进行前向传播计算,得到所述加速模型的输出文本数据。
本申请实施例中,通过获取待加速的目标网络模型的模型信息,所述模型信息包括构成所述目标网络模型的各网络层的类型,然后检测所述目标网络模型的各网络层的网络层类型,确定所述各网络层的网络层类型中设定接口不支持的网络层类型,所述设定接口用于实现网络模型的推理加速,根据所述目标网络模型的模型信息,添加自定义层接口函数至所述设定接口,以使得所述设定接口支持所述目标网络层类型,再调用添加有所述自定义层接口函数的设定接口对所述目标网络模型进行网络模型推理加速,实现使用TensorRT对含有自定义层的深度神经网络模型的推理加速优化,方便用户对网络前向接口支持的网络层类型进行扩充,增强可扩展性。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如图1至图3表示的任意一种网络模型推理加速方法的步骤。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品在智能设备上运行时,使得智能设备执行实现如图1至图3表示的任意一种网络模型推理加速方法的步骤。
本申请实施例还提供一种智能设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如图1至图3表示的任意一种网络模型推理加速方法的步骤。
图5是本申请一实施例提供的智能设备的示意图。如图5所示,该实施例的智能设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机可读指令52。所述处理器50执行所述计算机可读指令52时实现上述各个网络模型推理加速方法实施例中的步骤,例如图1所示的步骤101至104。或者,所述处理器50执行所述计算机可读指令52时实现上述各装置实施例中各模块/单元的功能,例如图4所示单元41至44的功能。
示例性的,所述计算机可读指令52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令52在所述智能设备5中的执行过程。
所述智能设备5可以是智能手机、笔记本、掌上电脑、服务器及云端智能设备等计算设备。所述智能设备5可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是智能设备5的示例,并不构成对智能设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述智能设备5还可以包括输入输出设备、网络接入设备、总线等。
所述处理器50可以是中央处理单元(CentraL Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(DigitaLSignaL Processor,DSP)、专用集成电路(AppLication Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieLd-ProgrammabLe Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述智能设备5的内部存储单元,例如智能设备5的硬盘或内存。所述存储器51也可以是所述智能设备5的外部存储设备,例如所述智能设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure DigitaL,SD)卡,闪存卡(FLash Card)等。进一步地,所述存储器51还可以既包括所述智能设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机可读指令以及所述智能设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种网络模型推理加速方法,其特征在于,包括:
获取待加速的目标网络模型的模型信息,所述模型信息包括构成所述目标网络模型的各网络层的类型;
检测所述目标网络模型的各网络层的网络层类型,确定所述各网络层的网络层类型中设定接口不支持的目标网络层类型,所述设定接口用于实现网络模型的推理加速;
根据所述目标网络模型的模型信息,添加自定义层接口函数至所述设定接口,以使得所述设定接口支持所述目标网络层类型;
调用添加有所述自定义层接口函数的设定接口对所述目标网络模型进行网络模型推理加速。
2.如权利要求1所述的网络模型推理加速方法,其特征在于,所述目标网络模型的模型信息包括各网络层的连接关系,所述根据所述目标网络模型的模型信息,添加自定义层接口函数至所述设定接口,包括:
将所述设定接口不支持的所述目标网络层类型对应的网络层确定为关键网络层;
根据所述目标网络模型中各网络层的连接关系,确定并获取所述目标网络模型中所述关键网络层的上一层的输出维度,并将所述关键网络层的上一层的输出维度作为自定义层的输入维度;
获取所述关键网络层的尺度因子,所述尺度因子为模型参数的调整系数;
根据所述尺度因子确定所述自定义层的输出维度;
根据所述自定义层的输入维度和输出维度,添加自定义层接口函数至所述设定接口。
3.如权利要求2所述的网络模型推理加速方法,其特征在于,所述自定义层的输入维度包括输入宽度和输入高度,所述自定义层的输出维度包括输出宽度和输出高度,所述根据所述尺度因子确定所述自定义层的输出维度,包括:
根据下式确定所述自定义层的输出宽度和输出高度:
所述输出宽度=所述输入宽度*所述尺度因子;
所述输出高度=所述输入高度*所述尺度因子。
4.如权利要求1所述的网络模型推理加速方法,其特征在于,所述调用添加有所述自定义层接口函数的设定接口对所述目标网络模型进行网络模型推理加速,包括:
调用添加有所述自定义层接口函数的设定接口,获取所述目标网络模型的各网络层的网络参数信息;
根据所述目标网络模型的模型信息和所述各网络层的网络参数信息,构建加速模型;
获取所述目标网络模型的待执行文本数据;
基于所述加速模型对所述目标网络模型的待执行文本数据进行前向推理,得到所述加速模型的输出文本数据。
5.如权利要求4所述的网络模型推理加速方法,其特征在于,所述基于所述加速模型对所述目标网络模型的待执行文本数据进行前向推理,得到所述加速模型的输出文本数据,包括:
将所述加速模型中相同的网络层优化合并;
将所述待执行文本数据输入至所述加速模型,利用前向传播算法对所述加速模型进行前向传播计算,得到所述加速模型的输出文本数据。
6.一种网络模型推理加速装置,其特征在于,包括:
模型信息获取单元,用于获取待加速的目标网络模型的模型信息,所述模型信息包括构成所述目标网络模型的各网络层的类型;
网络层类型检测单元,用于检测所述目标网络模型的各网络层的网络层类型,确定所述各网络层的网络层类型中设定接口不支持的网络层类型,所述设定接口用于实现网络模型的推理加速;
自定义层接口添加单元,用于根据所述目标网络模型的模型信息,添加自定义层接口函数至所述设定接口,以使得所述设定接口支持所述目标网络层类型;
推理加速单元,用于调用添加有所述自定义层接口函数的设定接口对所述目标网络模型进行网络模型推理加速。
7.如权利要求6所述的网络模型推理加速装置,其特征在于,所述自定义层接口添加单元包括:
输入维度确定模块,用于将所述设定接口不支持的网络层类型对应的网络层确定为关键网络层;
根据所述目标网络模型中各网络层的连接关系,确定并获取所述目标网络模型中所述关键网络层的上一层的输出维度,并将所述关键网络层的上一层的输出维度作为自定义层的输入维度;
尺度因子获取模块,用于获取所述关键网络层的尺度因子,所述尺度因子为模型参数的调整系数;
输出维度确定模块,用于根据所述尺度因子确定所述自定义层的输出维度;
自定义层添加模块,用于根据所述自定义层的输入维度和输出维度,添加自定义层接口函数至所述设定接口。
8.如权利要求6所述的网络模型推理加速装置,其特征在于,所述推理加速单元包括:
参数信息获取模块,用于调用添加有所述自定义层接口函数的设定接口,获取所述目标网络模型的各网络层的网络参数信息;
加速模型构建模块,用于根据所述目标网络模型的模型信息和所述各网络层的网络参数信息,构建加速模型;
待执行文本获取模块,用于获取所述目标网络模型的待执行文本数据;
推理加速模块,用于基于所述加速模型对所述目标网络模型的待执行文本数据进行前向推理,得到所述加速模型的输出文本数据。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的网络模型推理加速方法。
10.一种智能设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的网络模型推理加速方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010108772.2A CN111340215B (zh) | 2020-02-21 | 2020-02-21 | 一种网络模型推理加速方法、装置、存储介质和智能设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010108772.2A CN111340215B (zh) | 2020-02-21 | 2020-02-21 | 一种网络模型推理加速方法、装置、存储介质和智能设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111340215A true CN111340215A (zh) | 2020-06-26 |
CN111340215B CN111340215B (zh) | 2024-05-31 |
Family
ID=71181790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010108772.2A Active CN111340215B (zh) | 2020-02-21 | 2020-02-21 | 一种网络模型推理加速方法、装置、存储介质和智能设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111340215B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114841330A (zh) * | 2022-03-02 | 2022-08-02 | 阿里巴巴(中国)有限公司 | 一种基于加速库的加速方法和生成图像的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109919308A (zh) * | 2017-12-13 | 2019-06-21 | 腾讯科技(深圳)有限公司 | 一种神经网络模型部署方法、预测方法及相关设备 |
CN110796242A (zh) * | 2019-11-01 | 2020-02-14 | 广东三维家信息科技有限公司 | 神经网络模型推理方法、装置、电子设备及可读介质 |
-
2020
- 2020-02-21 CN CN202010108772.2A patent/CN111340215B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109919308A (zh) * | 2017-12-13 | 2019-06-21 | 腾讯科技(深圳)有限公司 | 一种神经网络模型部署方法、预测方法及相关设备 |
US20200050939A1 (en) * | 2017-12-13 | 2020-02-13 | Tencent Technology (Shenzhen) Company Limited | Neural network model deployment method, prediction method and related device |
CN110796242A (zh) * | 2019-11-01 | 2020-02-14 | 广东三维家信息科技有限公司 | 神经网络模型推理方法、装置、电子设备及可读介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114841330A (zh) * | 2022-03-02 | 2022-08-02 | 阿里巴巴(中国)有限公司 | 一种基于加速库的加速方法和生成图像的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111340215B (zh) | 2024-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110046702B (zh) | 神经网络计算加速器及其执行的方法 | |
CN113994350A (zh) | 为神经网络生成并行计算方案 | |
CN111310904A (zh) | 一种用于执行卷积神经网络训练的装置和方法 | |
KR20210092751A (ko) | 내적 계산기 및 그 연산 방법 | |
US11275568B2 (en) | Generating a synchronous digital circuit from a source code construct defining a function call | |
US20220261249A1 (en) | Address generation method, related apparatus, and storage medium | |
CN112817730B (zh) | 深度神经网络服务批处理调度方法、系统及gpu | |
CN108304926B (zh) | 一种适用于神经网络的池化计算装置及方法 | |
CN112100450A (zh) | 一种图计算数据分割方法、终端设备及存储介质 | |
US12086711B2 (en) | Data dividing method and processor for convolution operation | |
JP2023541350A (ja) | 表畳み込みおよびアクセラレーション | |
CN115865607A (zh) | 一种分布式训练的计算节点管理方法及相关装置 | |
CN116227599A (zh) | 一种推理模型的优化方法、装置、电子设备及存储介质 | |
CN110232665B (zh) | 最大池化方法、装置、计算机设备及存储介质 | |
CN110009625B (zh) | 基于深度学习的图像处理系统、方法、终端、及介质 | |
CN111340215A (zh) | 一种网络模型推理加速方法、装置、存储介质和智能设备 | |
CN110490308A (zh) | 加速库的设计方法、终端设备及存储介质 | |
CN116933864A (zh) | 一种通用高精度分布式算法训练方法及系统 | |
CN111161289A (zh) | 图像中物体轮廓精度提升方法、装置和计算机程序产品 | |
CN108648136B (zh) | 对二维查找表进行压缩的方法及装置 | |
CN113905066B (zh) | 物联网的组网方法、物联网的组网装置及电子设备 | |
CN113988277A (zh) | 用于存算一体芯片的神经网络映射方法、装置、设备 | |
CN113705795A (zh) | 卷积处理方法、装置、卷积神经网络加速器和存储介质 | |
CN111832714A (zh) | 运算方法及装置 | |
CN117240717B (zh) | 分片结构网格处理方法及优化方法和存储介质、设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40032344 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |