CN116468966A - 基于特征图压缩的神经网络推理加速方法及装置 - Google Patents
基于特征图压缩的神经网络推理加速方法及装置 Download PDFInfo
- Publication number
- CN116468966A CN116468966A CN202310316919.0A CN202310316919A CN116468966A CN 116468966 A CN116468966 A CN 116468966A CN 202310316919 A CN202310316919 A CN 202310316919A CN 116468966 A CN116468966 A CN 116468966A
- Authority
- CN
- China
- Prior art keywords
- neural network
- feature map
- task
- training
- processing
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 195
- 230000001133 acceleration Effects 0.000 title claims abstract description 69
- 238000007906 compression Methods 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000006835 compression Effects 0.000 title claims abstract description 61
- 238000012545 processing Methods 0.000 claims abstract description 100
- 238000012549 training Methods 0.000 claims abstract description 93
- 238000003062 neural network model Methods 0.000 claims abstract description 91
- 238000010586 diagram Methods 0.000 claims abstract description 51
- 238000004364 calculation method Methods 0.000 claims abstract description 28
- 238000013139 quantization Methods 0.000 claims description 27
- 230000003213 activating effect Effects 0.000 claims description 25
- 238000012512 characterization method Methods 0.000 claims description 20
- 230000009466 transformation Effects 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 5
- 238000007667 floating Methods 0.000 claims description 4
- 238000012360 testing method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000002939 conjugate gradient method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种基于特征图压缩的神经网络推理加速方法及装置,其中的方法包括:根据待完成任务类型,确定相应的原始神经网络结构,原始神经网络结构至少包括神经网络计算单元;在神经网络计算单元后添加特征图自编码器,得到可推理加速的目标神经网络模型;基于预先构建的训练数据集,对目标神经网络模型进行训练;利用训练后的目标神经网络模型对待完成任务进行处理,得到任务处理结果。该方法利用特征图自编码器对神经网络计算单元的输出结果进行压缩,降低表示输出结果所需的比特数,从而降低了访存时延,并且,该方法进行端到端训练,无需预训练和微调,对原始神经网络结构进行可推理加速的初始化后,即可实现神经网络的推理加速。
Description
技术领域
本发明涉及神经网络模型推理加速技术领域,尤其涉及一种基于特征图压缩的神经网络推理加速方法及装置。
背景技术
现有技术提供了一种基于浅层特征预计算的神经网络推理加速方法,该方法首先获取预训练神经网络,根据输入文本,使用预训练神经网络将输入文本进行编码;然后根据预训练神经网络,构建浅层特征可预计算神经网络,根据输入文本,使用浅层特征可预计算神经网络将输入文本进行编码;再使用浅层特征可预计算神经网络拟合预训练神经网络的中间层特征,训练浅层特征可预计算神经网络;再根据浅层特征可预计算神经网络,构建浅层特征查询表;最后使用前述浅层特征查询表替换浅层特征可预计算神经网络的浅层神经网络。
该方法能够有效地降低预训练神经网络运算成本和时间开销,但是,该方法同时使用了预训练模型和可预计算的神经网络,先进行预训练模型和可预计算神经网络的构建,再构建目标模型或网络,且无法进行端到端的训练,增加了方案应用的复杂度。
为了解决上述方案应用复杂度高的问题,现有技术提供了一种卷积神经网络推理加速方法,该方法通过判断待计算卷积层的类型,在卷积层为Depthwise卷积层的情况下,令输出特征图通道数维度的向量化尺寸等于输入特征图通道数维度的向量化尺寸,并将输入特征图通道数维度循环次数设置为1;然后将输入特征图的通道计算依据改为输出特征图通道;将卷积计算结果在输入通道向量维度的加和改为输入通道向量维度的选通;最后,对输入特征图数据与卷积核数据进行乘加计算,得到输出特征图数据。
该方法能够降低架构的复杂度,降低计算的复杂度,节省系统的计算资源和存储资源,但是,该方法仅考虑了来源于神经网络计算的计算时延,并未考虑计算单元从存储器中读取相关数据时的访存时延。
因此,如何解决现有神经网络推理加速技术需要依赖预训练模型,不能进行端到端的训练,方案应用复杂度高,且并未考虑访存时延的问题,是神经网络模型推理加速技术领域亟待解决的重要课题。
发明内容
本发明提供一种基于特征图压缩的神经网络推理加速方法及装置,用以克服现有神经网络推理加速技术需要依赖预训练模型,不能进行端到端的训练,方案应用复杂度高,且并未考虑访存时延的缺陷,无需预训练和微调,实现神经网络的推理加速。
一方面,本发明提供一种基于特征图压缩的神经网络推理加速方法,包括:根据待完成任务类型,确定相应的原始神经网络结构,所述原始神经网络结构至少包括神经网络计算单元;在所述神经网络计算单元后添加特征图自编码器,得到可推理加速的目标神经网络模型,所述特征图自编码器用于对所述神经网络计算单元的输出结果进行压缩;基于预先构建的训练数据集,对所述目标神经网络模型进行训练;利用训练后的目标神经网络模型对待完成任务进行处理,得到任务处理结果。
进一步地,所述神经网络计算单元包括卷积网络层;所述利用训练后的目标神经网络模型对待完成任务进行处理,包括:对所述卷积网络层进行卷积加速化处理,并对所述神经网络计算单元输出的特征图进行特征图压缩处理。
进一步地,所述对所述卷积网络层进行卷积加速化处理,包括:对所述卷积网络层对应的卷积权重进行稀疏化处理,得到稀疏权重;获取所述待完成任务的输入数据,并将所述输入数据和所述稀疏权重均量化为整数,分别得到相应的第一输入数据和第一稀疏权重;对所述第一输入数据和所述第一稀疏权重进行整数化卷积,得到输出的第一特征图。
进一步地,所述对所述神经网络计算单元输出的特征图进行特征图压缩处理的步骤,具体包括:将所述第一特征图进行特征图变换,得到相应的第一特征图隐式表征;对所述第一特征图隐式表征进行整数量化处理;对整数量化处理后的第一特征图隐式表征进行熵编码,得到所述第一特征图隐式表征的二进制码流;对所述第一特征图隐式表征的二进制码流进行熵解码,恢复得到整数表示的第一特征图隐式表征;对整数表示的第一特征图隐式表征进行反量化,得到浮点数表示的重建特征图隐式表征;对所述重建特征图隐式表征进行特征图逆变换,得到重建特征图,所述重建特征图为所述任务处理结果。
进一步地,所述神经网络计算单元后包括相应的激活单元;所述得到输出的第一特征图,之后包括:将所述第一特征图输入至所述激活单元进行激活运算,得到第二特征图。
进一步地,还包括:对所述第二特征图进行特征图压缩处理,得到所述任务处理结果。
进一步地,所述训练数据集包括所述目标神经网络模型的输入数据,以及相应的真实数据标签;所述基于预先构建的训练数据集,对所述目标神经网络模型进行训练,包括:将所述输入数据输入至目标神经网络模型,对所述输入数据进行卷积加速化处理和特征图压缩处理,得到预测输出结果;获取所述特征图压缩处理过程中得到的特征图隐式表征,并计算所述特征图隐式表征的比特数;根据所述输入数据、所述预测输出结果以及相应的真实数据标签,计算得到训练的任务损失;基于所述特征图隐式表征的比特数与所述任务损失,确定所述目标神经网络模型的训练损失函数;根据所述训练损失函数,将所述目标神经网络模型训练至收敛,并保存最优模型参数。
第二方面,本发明还提供一种基于特征图压缩的神经网络推理加速装置,包括:原始神经网络结构确定模块,用于根据待完成任务类型,确定相应的原始神经网络结构,所述原始神经网络结构至少包括神经网络计算单元;目标神经网络模型获取模块,用于在所述神经网络计算单元后添加特征图自编码器,得到可推理加速的目标神经网络模型,所述特征图自编码器用于对所述神经网络计算单元的输出结果进行压缩;目标神经网络模型训练模块,用于基于预先构建的训练数据集,对所述目标神经网络模型进行训练;任务处理结果预测模块,利用训练后的目标神经网络模型对待完成任务进行处理,得到任务处理结果。
第三方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述的基于特征图压缩的神经网络推理加速方法。
第四方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述的基于特征图压缩的神经网络推理加速方法。
本发明提供的一种基于特征图压缩的神经网络推理加速方法,通过根据待完成任务类型确定相应的原始神经网络结构,并在原始神经网络结构所包括的神经网络计算单元后添加特征图自编码器,得到可推理加速的目标神经网络模型,并基于预先构建的训练数据集对目标神经网络模型进行训练,从而利用训练后的目标神经网络模型对待完成任务进行处理,得到相应的任务处理结果。该方法利用特征图自编码器对神经网络计算单元的输出结果进行压缩,降低表示输出结果所需的比特数,从而降低了访存时延,并且,该方法进行端到端训练,无需预训练和微调,对原始神经网络结构进行可推理加速的初始化后,即可实现神经网络的推理加速。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的基于特征图压缩的神经网络推理加速方法的流程示意图;
图2为本发明提供的卷积加速化处理的流程示意图;
图3为本发明提供的特征图自编码器的特征图压缩流程示意图;
图4为本发明提供的目标神经网络模型的模型训练示意图;
图5为本发明提供的基于特征图压缩的额神经网络推理加速方法的整体流程示意图;
图6为本发明提供的基于特征图压缩的神经网络推理加速装置的结构示意图;
图7为本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,现有的神经网络推理加速技术主要存在两个方面的缺陷:一方面,现有神经网络推理加速方法需要依赖预训练的模型,不能进行端到端的训练;另一方面,神经网络推理加速时延主要来源于神经网络计算的时延和计算单元从存储器中读取计算数据时的访存时延,而现有技术仅考虑了计算时延,并未考虑访存时延。
考虑及此,本发明提出了一种基于特征图压缩的神经网络推理加速方法。具体地,图1示出了本发明所提供的基于特征图压缩的神经网络推理加速方法的流程示意图。如图1所示,该方法包括:
S110,根据待完成任务类型,确定相应的原始神经网络结构,该原始神经网络结构至少包括神经网络计算单元。
待完成任务,是指需要利用神经网络模型来完成的实际任务,例如图像分类、文本分类、目标检测、图像分割、图像压缩以及语音识别等,当然,待完成任务还可以为前述列举任务以外的其他任务,在此不作具体限定。
原始神经网络结构,是指用于处理待完成任务类型对应的待完成任务的神经网络结构。在本步骤中,原始神经网络结构包括但不限于卷积神经网络、循环神经网络以及Transformer等神经网络结构,当然,原始神经网络结构也可以为自行构建的神经网络结构,在此不作具体限定。
容易理解的是,根据实际需求可以确定待完成任务类型,在确定待完成任务类型的情况下,即可以确定与待完成任务类型相对应的原始神经网络结构。
例如,在一个具体的实施例中,根据实际需求确定待完成任务类型为图像分类,则确定用以完成该图像分类任务的原始神经网络结构为ResNet-18。
需要说明的是,用以完成相应待完成任务的原始神经网络结构至少包括神经网络计算单元,对于神经网络计算单元的网络层类型和数量不作具体限定。
也就是说,原始神经网络结构可以包括一个神经网络计算单元,也可以包括多个神经网络计算单元;神经网络计算单元可以包括卷积网络层、全连接层,也可以包括其他网络层。
S120,在神经网络计算单元后添加特征图自编码器,得到可推理加速的目标神经网络模型,特征图自编码器用于对所述神经网络计算单元的输出结果进行压缩。
可以理解的是,在步骤S110确定与待完成任务相对应的原始神经网络结构的基础上,进一步地,本步骤对原始神经网络结构进行了改进,具体地,在原始神经网络结构所包括的神经网络计算单元后面增加了一个特征图自编码器,从而得到可用于推理加速的目标神经网络模型。
其中,特征图自编码器是一种输入与学习目标相同的人工神经网络,用于对神经网络计算单元的输出结果进行压缩存储,并对输出结果所需的二进制比特数进行表示,由此可以节省神经网络计算芯片在存储器中存取特征图所需的时间。
需要说明的是,除了添加特征图自编码器以外,不改变原始神经网络结构的其他结构。
S130,基于预先构建的训练数据集,对目标神经网络模型进行训练。
可以理解的是,在步骤S120得到可推理加速的目标神经网络模型的基础上,进一步地,预先构建有训练数据集,基于该训练数据集,利用深度学习将目标神经网络模型训练至收敛,并保存训练效果最优的模型参数,以供实际推理使用。
其中,训练数据集可以使用公开的数据集,例如ImageNet和Cifar10等,当然,也可以使用自行构建的私有数据集,在此不作具体限定。
需要说明的是,可以根据需要,将训练数据集划分为训练集、验证集和测试集,分别用于对目标神经网络模型进行训练、验证和测试。
利用深度学习对目标神经网络模型进行训练时,可以采用的优化方法包括但不限于随机梯度下降法、牛顿法和共轭梯度法。其中,实现该步骤所使用到的深度学习框架包括但不限于TensorFlow,Pytorch,Mindspore等。
S140,利用训练后的目标神经网络模型对待完成任务进行处理,得到任务处理结果。
可以理解的是,在步骤S130对目标神经网络进行训练的基础上,进一步地,利用训练好的目标神经网络模型对待完成任务进行处理,即可得到相应的任务处理结果。
其中,任务处理结果可以为分类结果、打分结果或者其他,具体由待完成任务的类型所决定。
在本实施例中,通过根据待完成任务类型确定相应的原始神经网络结构,并在原始神经网络结构所包括的神经网络计算单元后添加特征图自编码器,得到可推理加速的目标神经网络模型,并基于预先构建的训练数据集对目标神经网络模型进行训练,从而利用训练后的目标神经网络模型对待完成任务进行处理,得到相应的任务处理结果。该方法利用特征图自编码器对神经网络计算单元的输出结果进行压缩,降低表示输出结果所需的比特数,从而降低了访存时延,并且,该方法进行端到端训练,无需预训练和微调,对原始神经网络结构进行可推理加速的初始化后,即可实现神经网络的推理加速。
在上述实施例的基础上,进一步地,神经网络计算单元包括卷积网络层;利用训练后的目标神经网络模型对待完成任务进行处理,包括:对卷积网络层进行卷积加速化处理,并对神经网络计算单元输出的特征图进行特征图压缩处理。
可以理解的是,在本实施例中,原始神经网络结构所包括的神经网络计算单元为卷积网络层,相应地,利用训练好的目标神经网络模型对待完成任务进行处理,具体包括两方面:一方面,对卷积网络层进行卷积加速化处理;另一方面,对神经网络计算单元输出的特征图进行特征图进行压缩处理。
其中需要说明的是,神经网络计算单元为卷积网络层,具体可以为各种卷积,例如标准卷积、深度卷积以及组卷积,还可以为自行定义的卷积方法,在此不作具体限定。
对卷积网络层进行卷积加速化处理的前提条件在于,神经网络计算单元为卷积网络层。
也就是说,利用训练后的目标神经网络模型对待完成任务进行处理,在神经网络计算单元不包括卷积网络层时,仅对神经网络计算单元输出的特征图进行特征图压缩处理;而在神经网络计算单元包括卷积网络层时,则可以在压缩处理的基础上,对卷积网络层进行卷积加速化处理。
图2示出了本发明所提供的卷积加速化处理的流程示意图,用于对步骤S140中利用训练后的目标神经网络模型对待完成任务进行处理这一步骤作进一步的解释。
如图2所示,对卷积网络层进行卷积加速化处理,具体包括:
S210,对卷积网络层对应的卷积权重进行稀疏化处理,得到稀疏权重;
S220,获取待完成任务的输入数据,并将输入数据和稀疏权重均量化为整数,分别得到相应的第一输入数据和第一稀疏权重;
S230,对第一输入数据和第一稀疏权重进行整数化卷积,得到输出的第一特征图。
可以理解的是,假设目标神经网络模型的第i个神经网络计算单元为卷积网络层,其输入表示为卷积权重表示为Wi,卷积偏置表示为bi。
在步骤S210中,对卷积网络层对应的卷积权重Wi进行稀疏化处理,得到稀疏权重其中,稀疏是指通过在运算数据中人为引入0值,以降低所需计算量。
其中,对卷积权重进行稀疏的方式可以为结构化稀疏,也可以为非结构化稀疏,还可以为半结构化稀疏,当然,还可以为其他自定义的稀疏方式,在此不作具体限定。
在步骤S220中,将输入数据和稀疏权重/>量化为整数,即第一输入数据/>和第一稀疏权重/>
其中,需要说明的是,卷积权重和输入数据的整数量化方式可以相同,也可以不同,在此不作具体限定。
整数量化的方式包括但不限于无符号整数量化、有符号整数量化、标量量化和矢量量化,以及其他自定义的量化方式,量化后的数据可用整数个比特进行表示。
在步骤S230中,进一步地,对第一输入数据和第一稀疏权重/>进行整数化卷积,即输入和权重均为整数的卷积运算,得到输出的第一特征图xi。
仍需说明的是,当且仅当神经网络计算单元为卷积计算时,才需要进行上述卷积加速化处理。
图3示出了本发明所提供的特征图自编码器的特征图压缩流程示意图。
如图3所示,对神经网络计算单元输出的特征图进行特征图压缩处理的步骤,具体包括:
S310,将第一特征图进行特征图变换,得到相应的第一特征图隐式表征;
S320,对第一特征图隐式表征进行整数量化处理;
S330,对整数量化处理后的第一特征图隐式表征进行熵编码,得到第一特征图隐式表征的二进制码流;
S340,对第一特征图隐式表征的二进制码流进行熵解码,恢复得到整数表示的第一特征图隐式表征;
S350,对整数表示的第一特征图隐式表征进行反量化,得到浮点数表示的重建特征图隐式表征;
S360,对重建特征图隐式表征进行特征图逆变换,得到重建特征图,重建特征图为任务处理结果。
具体地,在步骤S310中,对第一特征图xi进行特征图变换,得到相应的第一特征图隐式表征yi。
其中,特征图变换为一种广义的映射,变换后特征图的维度没有限制,其作用在于获取特征图更为紧凑的表示,或者改变特征图数据概率分布,从而提高编码效率。
特征图变换不仅可以为仿射变换、恒等变换等线性变换,也可以为正弦变换、归一化变换等非线性变化,还可以为其他自定义的变换方式,在此不作具体限定。
在步骤S320中,对第一特征图隐式表征yi进行整数量化。
其中,整数量化的方式包括但不限于无符号整数量化、有符号整数量化、标量量化和矢量量化,以及其他自定义的量化方式,量化后的数据可用整数个比特进行表示。
在步骤S330中,对整数量化处理后的第一特征图隐式表征进行熵编码,即可得到第一特征图隐式表征的二进制码流。其中,熵编码即编码过程中按熵原理不丢失任何信息的编码。
紧接着,在步骤S340中,对表示第一特征图隐式表征的二进制码流进行熵解码,恢复得到整数表示的特征图隐式表征。
需要说明的是,对第一特征图隐式表征进行熵编码的方式可以为算术编码、哈夫曼,也可以为指数哥伦布编码、自适应上下文二进制编码,还可以为其他自定义的熵编码方式,在此不作具体限定。
同样地,对第一特征图隐式表征的二进制码流进行熵解码的方式,与熵编码的方式一一对应,在此不再展开。
在步骤S340的基础上,在步骤S350中,对整数表示的第一特征图隐式表征进行反量化,即可得到浮点表示的重建特征图隐式表征
需要说明的是,步骤S350中的反量化与步骤S320中的整数量化方式应当一致。
最后,在步骤S360中,对重建特征图隐式表征进行特征图逆变换,即可得到重建特征图/>该重建特征图即为任务处理结果。
其中,特征图逆变换同样为一种广义的映射,其输出数据的维度与步骤S310中第一特征图xi的维度应当一致。
在本实施例中,同时考虑了神经网络推理中得到计算时延和访存时延,具体地,一方面,通过对包括卷积网络层的神经网络计算单元进行卷积加速化处理,加快卷积的硬件计算,能够有效降低计算时延;另一方面,通过特征图自编码器对神经网络计算单元输出的特征图进行特征图压缩处理,以降低表示特征图所需的比特数,从而降低了访存时延。
在上述实施例的基础上,进一步地,神经网络计算单元后包括相应的激活单元;得到输出的第一特征图,之后包括:将第一特征图输入至激活单元进行激活运算,得到第二特征图。
可以理解的是,神经网络计算单元后面若没有激活单元,则由特征图自编码器对神经网络计算单元输出的特征图进行压缩处理;反之,若神经网络计算单元后存在激活单元,那么神经网络计算单元输出的第一特征图则会首先经过激活单元,而后激活单元的输出继续输入至特征图自编码器中进行压缩处理。
具体地,在确定神经网络计算单元后包括相应的激活单元的情况下,将神经网络计算单元的输出,即第一特征图输入至激活单元进行激活运算,得到第二特征图。
激活运算为一种非线性运算,具体实现方式包括但不限于Sigmoid函数、Softplus函数、softmax函数以及ReLU函数,也可以为其他自定义的非线性预算,在此不作具体限定。
进一步地,将第二特征图输入至特征图自编码器中,对第二特征图进行特征图压缩处理,得到任务处理结果。
其中,对第二特征图进行特征图压缩处理的过程,与上文中第一特征图进行特征图压缩处理的过程相对应,在此不再具体展开。
在本实施例中,在确定神经网络计算单元后包括激活单元的情况下,首先对神经网络计算单元输出的第一特征图进行激活运算,而后将激活单元输出的第二特征图输入至特征图自编码器中进行特征图压缩处理,以降低表示特征图所需的比特数,从而降低了访存时延。
在上述实施例的基础上,进一步地,在目标神经网络模型进行实际推理之前,还需要对其进行训练。
具体地,图4示出了本发明所提供的目标神经网络模型的模型训练示意图。如图4所示,基于预先构建的训练数据集,对目标神经网络模型进行训练,具体包括:将输入数据输入至目标神经网络模型,对输入数据进行卷积加速化处理和特征图压缩处理,得到预测输出结果;获取特征图压缩处理过程中得到的特征图隐式表征,并计算特征图隐式表征的比特数;根据输入数据、预测输出结果以及相应的真实数据标签,计算得到训练的任务损失;基于特征图隐式表征的比特数与任务损失,确定目标神经网络模型的训练损失函数;根据训练损失函数,将目标神经网络模型训练至收敛,并保存最优模型参数。
可以理解的是,训练数据集包括目标神经网络模型的输入数据,以及相应的真实数据标签。
在一个训练轮次中,首先将输入数据输入至包含卷积网络层的神经网络计算单元中,对输入数据进行卷积加速化处理,而后,若神经网络计算单元后包括激活单元,则将神经网络计算单元的输出结果输入至激活单元中,进行激活计算,进一步利用特征图自编码器对激活单元的输出进行特征图压缩处理,从而得到相应的预测输出结果。
若神经网络计算单元后不包括激活单元,则由特征图自编码器直接对神经网络计算单元的输出结果进行特征图压缩处理。
对于卷积加速化处理与特征图压缩处理的过程,与上文描述的一致,在此不再具体展开。
进一步地,根据训练数据集中的输入数据、预测输出结果以及相应的真实数据标签,计算该训练轮次的任务损失。
与此同时,在对神经网络计算单元或激活单元的输出结果进行特征图压缩处理的过程中,包括对整数量化处理后的特征图隐式表征进行熵编码,得到特征图隐式表征的二进制码流这一步骤,采用可求导的方式统计熵编码后得到的特征图隐式表征的比特数,具体可根据熵编码方式,对比特数进行直接统计,或统计其估计值。
进而,根据计算得到的特征图隐式表征对应的比特数,也即图4中的特征图大小,以及该训练轮次的任务损失,确定目标神经网络模型的训练损失函数,从而根据该训练损失函数,对目标神经网络模型的模型训练作进一步的优化,直至收敛,保存最优模型参数。
在一个具体的实施例中,对上述任务损失与特征图隐式表征的比特数进行加权求和,并将其作为目标神经网络模型的训练损失函数。
根据图4可以看出,目标神经网络模型中包括不止一个神经网络计算单元,还包括不止一个的激活单元,以及特征图自编码器。
需要说明的是,目标神经网络模型中包含不止一个神经网络计算单元时,目标神经网络模型中所有神经网络计算单元对应的特征图自编码器所产生的特征图隐式表征对应的比特数都应该参与加权求和。
在本实施例中,通过将输入数据输入至目标神经网络模型,对输入数据进行卷积加速化处理和特征图压缩处理,得到预测输出结果,并获取特征图压缩处理过程中得到的特征图隐式表征,计算特征图隐式表征的比特数,进而根据输入数据、预测输出结果以及相应的真实数据标签,计算得到训练的任务损失,并基于特征图隐式表征的比特数与任务损失,确定目标神经网络模型的训练损失函数,从而根据训练损失函数,将目标神经网络模型训练至收敛,并保存最优模型参数,有效提升了目标神经网络模型的推理准确度。
另外,图5示出了本发明所提供的基于特征图压缩的额神经网络推理加速方法的整体流程示意图。
如图5所示,主要包括三个模块,即任务初始化模块、任务训练模块以及任务推理模块。
在任务初始化模块中,首先确定待完成任务类型,以及待完成任务类型对应的原始神经网络结构,并构建训练数据集,可以根据需要将训练数据集划分为训练集、验证集和测试集。
在原始神经网络结构的神经网络计算单元后添加特征图自编码器,得到目标神经网络模型。
在任务训练模块中,利用预先构建的训练数据集对目标神经网络模型进行训练、验证和测试,并保存最优模型参数。
在任务推理模块中,利用训练好的目标神经网络模型对待完成任务类型对应的待完成任务进行处理,得到相应的任务处理结果。
其中,可以包括待完成任务是否处理完毕的判断,若处理完毕,则结束操作,若未处理完毕,则继续处理。
最后,需要说明的是,本发明所提供的基于特征图压缩的神经网络推理加速方法能使神经网络推理时特征图访存所需的比特数更小,卷积计算速度更快,最终使利用神经网络处理指定任务所需的时延更短。针对特征图压缩所完成的实验表明,在图像压缩任务上,指定测试集上特征图比特数最多可压缩约19倍;在图像分类任务上,指定测试集上特征图比特数最多可压缩约9倍。
图6示出了本发明所提供的基于特征图压缩的神经网络推理加速装置的结构示意图。如图6所示,该装置包括:
原始神经网络结构确定模块610,用于根据待完成任务类型,确定相应的原始神经网络结构,所述原始神经网络结构至少包括神经网络计算单元;目标神经网络模型获取模块620,用于在所述神经网络计算单元后添加特征图自编码器,得到可推理加速的目标神经网络模型,特征图自编码器用于对所述神经网络计算单元的输出结果进行压缩;目标神经网络模型训练模块630,用于基于预先构建的训练数据集,对所述目标神经网络模型进行训练;任务处理结果预测模块640,利用训练后的目标神经网络模型对待完成任务进行处理,得到任务处理结果。
在本实施例中,在本实施例中,通过原始神经网络结构确定模块610根据待完成任务类型确定相应的原始神经网络结构,目标神经网络模型获取模块620在原始神经网络结构所包括的神经网络计算单元后添加特征图自编码器,得到可推理加速的目标神经网络模型,目标神经网络模型训练模块630基于预先构建的训练数据集对目标神经网络模型进行训练,从而任务处理结果预测模块640利用训练后的目标神经网络模型对待完成任务进行处理,得到相应的任务处理结果。该装置利用特征图自编码器对神经网络计算单元的输出结果进行压缩,降低表示输出结果所需的比特数,从而降低了访存时延,并且,该装置进行端到端训练,无需预训练和微调,对原始神经网络结构进行可推理加速的初始化后,即可实现神经网络的推理加速。
需要说明的是,本实施例所提供的基于特征图压缩的神经网络推理加速装置,与上文描述的基于特征图压缩的神经网络推理加速方法可相互对应参照,在此不再赘述。
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor))710、通信接口(communications Interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行基于特征图压缩的神经网络推理加速方法,该方法包括:根据待完成任务类型,确定相应的原始神经网络结构,所述原始神经网络结构至少包括神经网络计算单元;在所述神经网络计算单元后添加特征图自编码器,得到可推理加速的目标神经网络模型,所述特征图自编码器用于对所述神经网络计算单元的输出结果进行压缩;基于预先构建的训练数据集,对所述目标神经网络模型进行训练;利用训练后的目标神经网络模型对待完成任务进行处理,得到任务处理结果。
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于特征图压缩的神经网络推理加速方法,该方法包括:根据待完成任务类型,确定相应的原始神经网络结构,所述原始神经网络结构至少包括神经网络计算单元;在所述神经网络计算单元后添加特征图自编码器,得到可推理加速的目标神经网络模型,所述特征图自编码器用于对所述神经网络计算单元的输出结果进行压缩;基于预先构建的训练数据集,对所述目标神经网络模型进行训练;利用训练后的目标神经网络模型对待完成任务进行处理,得到任务处理结果。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于特征图压缩的神经网络推理加速方法,其特征在于,包括:
根据待完成任务类型,确定相应的原始神经网络结构,所述原始神经网络结构至少包括神经网络计算单元;
在所述神经网络计算单元后添加特征图自编码器,得到可推理加速的目标神经网络模型,所述特征图自编码器用于对所述神经网络计算单元的输出结果进行压缩;
基于预先构建的训练数据集,对所述目标神经网络模型进行训练;
利用训练后的目标神经网络模型对待完成任务进行处理,得到任务处理结果。
2.根据权利要求1所述的基于特征图压缩的神经网络推理加速方法,其特征在于,所述神经网络计算单元包括卷积网络层;
所述利用训练后的目标神经网络模型对待完成任务进行处理,包括:
对所述卷积网络层进行卷积加速化处理,并对所述神经网络计算单元输出的特征图进行特征图压缩处理。
3.根据权利要求2所述的基于特征图压缩的神经网络推理加速方法,其特征在于,所述对所述卷积网络层进行卷积加速化处理,包括:
对所述卷积网络层对应的卷积权重进行稀疏化处理,得到稀疏权重;
获取所述待完成任务的输入数据,并将所述输入数据和所述稀疏权重均量化为整数,分别得到相应的第一输入数据和第一稀疏权重;
对所述第一输入数据和所述第一稀疏权重进行整数化卷积,得到输出的第一特征图。
4.根据权利要求3所述的基于特征图压缩的神经网络推理加速方法,其特征在于,所述对所述神经网络计算单元输出的特征图进行特征图压缩处理的步骤,具体包括:
将所述第一特征图进行特征图变换,得到相应的第一特征图隐式表征;
对所述第一特征图隐式表征进行整数量化处理;
对整数量化处理后的第一特征图隐式表征进行熵编码,得到所述第一特征图隐式表征的二进制码流;
对所述第一特征图隐式表征的二进制码流进行熵解码,恢复得到整数表示的第一特征图隐式表征;
对整数表示的第一特征图隐式表征进行反量化,得到浮点数表示的重建特征图隐式表征;
对所述重建特征图隐式表征进行特征图逆变换,得到重建特征图,所述重建特征图为所述任务处理结果。
5.根据权利要求3所述的基于特征图压缩的神经网络推理加速方法,其特征在于,所述神经网络计算单元后包括相应的激活单元;
所述得到输出的第一特征图,之后包括:
将所述第一特征图输入至所述激活单元进行激活运算,得到第二特征图。
6.根据权利要求5所述的基于特征图压缩的神经网络推理加速方法,其特征在于,还包括:
对所述第二特征图进行特征图压缩处理,得到所述任务处理结果。
7.根据权利要求1-6中任一项所述的基于特征图压缩的神经网络推理加速方法,其特征在于,所述训练数据集包括所述目标神经网络模型的输入数据,以及相应的真实数据标签;
所述基于预先构建的训练数据集,对所述目标神经网络模型进行训练,包括:
将所述输入数据输入至目标神经网络模型,对所述输入数据进行卷积加速化处理和特征图压缩处理,得到预测输出结果;
获取所述特征图压缩处理过程中得到的特征图隐式表征,并计算所述特征图隐式表征的比特数;
根据所述输入数据、所述预测输出结果以及相应的真实数据标签,计算得到训练的任务损失;
基于所述特征图隐式表征的比特数与所述任务损失,确定所述目标神经网络模型的训练损失函数;
根据所述训练损失函数,将所述目标神经网络模型训练至收敛,并保存最优模型参数。
8.一种基于特征图压缩的神经网络推理加速装置,其特征在于,包括:
原始神经网络结构确定模块,用于根据待完成任务类型,确定相应的原始神经网络结构,所述原始神经网络结构至少包括神经网络计算单元;
目标神经网络模型获取模块,用于在所述神经网络计算单元后添加特征图自编码器,得到可推理加速的目标神经网络模型,所述特征图自编码器用于对所述神经网络计算单元的输出结果进行压缩;
目标神经网络模型训练模块,用于基于预先构建的训练数据集,对所述目标神经网络模型进行训练;
任务处理结果预测模块,利用训练后的目标神经网络模型对待完成任务进行处理,得到任务处理结果。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述的基于特征图压缩的神经网络推理加速方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于特征图压缩的神经网络推理加速方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310316919.0A CN116468966A (zh) | 2023-03-24 | 2023-03-24 | 基于特征图压缩的神经网络推理加速方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310316919.0A CN116468966A (zh) | 2023-03-24 | 2023-03-24 | 基于特征图压缩的神经网络推理加速方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116468966A true CN116468966A (zh) | 2023-07-21 |
Family
ID=87176310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310316919.0A Pending CN116468966A (zh) | 2023-03-24 | 2023-03-24 | 基于特征图压缩的神经网络推理加速方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116468966A (zh) |
-
2023
- 2023-03-24 CN CN202310316919.0A patent/CN116468966A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11403528B2 (en) | Self-tuning incremental model compression solution in deep neural network with guaranteed accuracy performance | |
CN107340993B (zh) | 运算装置和方法 | |
US20180018555A1 (en) | System and method for building artificial neural network architectures | |
CN111488985B (zh) | 深度神经网络模型压缩训练方法、装置、设备、介质 | |
CN110677651A (zh) | 一种视频压缩方法 | |
CN111105017B (zh) | 神经网络量化方法、装置及电子设备 | |
CN110663048A (zh) | 用于深度神经网络的执行方法、执行装置、学习方法、学习装置以及程序 | |
WO2021042857A1 (zh) | 图像分割模型的处理方法和处理装置 | |
CN109377532B (zh) | 基于神经网络的图像处理方法及装置 | |
CN110753225A (zh) | 一种视频压缩方法、装置及终端设备 | |
CN114402596A (zh) | 神经网络模型压缩 | |
CN111767697B (zh) | 文本处理方法、装置、计算机设备以及存储介质 | |
Wijayanto et al. | Towards robust compressed convolutional neural networks | |
US20220164995A1 (en) | A method, an apparatus and a computer program product for video encoding and video decoding | |
WO2023207836A1 (zh) | 一种图像编码方法、图像解压方法以及装置 | |
US20230252294A1 (en) | Data processing method, apparatus, and device, and computer-readable storage medium | |
Huai et al. | Zerobn: Learning compact neural networks for latency-critical edge systems | |
KR20190130443A (ko) | 뉴럴 네트워크의 양자화 방법 및 장치 | |
CN114978189A (zh) | 一种数据编码方法以及相关设备 | |
CN108959512B (zh) | 一种基于属性增强注意力模型的图像描述网络及技术 | |
CN112561050A (zh) | 一种神经网络模型训练方法及装置 | |
CN116468966A (zh) | 基于特征图压缩的神经网络推理加速方法及装置 | |
Kiyama et al. | Deep learning framework with arbitrary numerical precision | |
CN113033795B (zh) | 基于时间步的二值脉冲图的脉冲卷积神经网络硬件加速器 | |
CN114065913A (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 |