CN115238873B - 神经网络模型部署方法、装置、计算机设备 - Google Patents
神经网络模型部署方法、装置、计算机设备 Download PDFInfo
- Publication number
- CN115238873B CN115238873B CN202211158660.3A CN202211158660A CN115238873B CN 115238873 B CN115238873 B CN 115238873B CN 202211158660 A CN202211158660 A CN 202211158660A CN 115238873 B CN115238873 B CN 115238873B
- Authority
- CN
- China
- Prior art keywords
- neural network
- weight
- value
- ram space
- 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.)
- Active
Links
- 238000003062 neural network model Methods 0.000 title claims abstract description 78
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000013528 artificial neural network Methods 0.000 claims abstract description 149
- 238000000638 solvent extraction Methods 0.000 claims abstract description 12
- 230000004913 activation Effects 0.000 claims description 117
- 238000010606 normalization Methods 0.000 claims description 52
- 238000013139 quantization Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 14
- 238000013507 mapping Methods 0.000 claims description 9
- 230000003068 static effect Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 description 20
- 230000008569 process Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 238000012886 linear function Methods 0.000 description 5
- 210000002569 neuron Anatomy 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000003925 brain function Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013076 uncertainty analysis 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/04—Architecture, e.g. interconnection topology
-
- 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)
- 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)
- Feedback Control In General (AREA)
Abstract
本申请涉及神经网络技术领域,特别是一种神经网络模型部署方法、装置、计算机设备及存储介质,所述方法包括如下步骤:判断所述神经网络的权值是否大于ram空间;若大于,则根据所述ram空间的大小将所述权值分块,依次将每块加载到所述ram空间里,直至完成所述神经网络模型的加载;若小于,则直接将所述权值加载到所述ram空间里,直至完成所述神经网络模型的加载。从而确保模型部署时损失最小,减小模型要部署时的功耗。
Description
技术领域
本申请涉及神经网络技术领域,特别是一种神经网络模型部署方法、装置、计算机设备及存储介质。
背景技术
深度学习算法要部署到端侧,需要做到体积小,运算量小和低功耗,以便有更好的性能,故模型部署时,应该以减少模型加载耗时和计算量,进而减少功耗为目的,但在现有技术中部署语音算法模型时,flash的空间远大于ram空间,因此模型是无法一次性加载到ram中的,故模型需要多次重复加载,导致耗时的增加,如何减小神经网络模型的权值加载到ram中时产生的耗时需要解决的问题。
发明内容
本申请一种在神经网络模型部署方法、装置、计算机设备及存储介质,旨在解决现有技术中存在的“神经网络模型的权值加载耗时过大”的技术问题。
为此,本申请提出一种神经网络模型部署方法,包括:
判断所述神经网络的权值是否大于ram空间;
若大于,则根据所述ram空间的大小将所述权值分块,依次将每块加载到所述ram空间里,直至完成所述神经网络模型的加载;
若小于,则直接将所述权值加载到所述ram空间里,直至完成所述神经网络模型的加载。
进一步地,所述判断所述神经网络的权值是否大于ram空间的步骤之前包括:
对所述神经网络模型的权值进行静态量化,得到所述神经网络的权值;
对所述神经网络模型的激活值进行动态量化,得到所述神经网络的激活值。
进一步地,所述神经网络模型进行量化,得到所述神经网络的权值,包括:
统计所述神经网络每层权值的最大值以及最小值;
获取所述最大值与所述最小值之间的区间范围;
将所述区间范围内的所述神经网络每层的每个权值映射到第一阈值范围内,得到所述神经网络的权值。
进一步地,所述对所述神经网络模型的激活值进行动态量化,得到所述神经网络的激活值的步骤,包括:
判断当前输出值对应的第一尺寸和历史输出值的对应的第二尺寸是否相等;
若不相等,则获取所述的第一尺寸和所述第二尺寸;
比较所述第一尺寸与所述第二尺寸的大小;
若所述第二尺寸小于所述第一尺寸且有拼接需求时,则将所述历史输出值映射到所述当前输出值,得到调整后的第一输出值,将所述第一输出值与所述当前输出值进行拼接,得到所述神经网络的激活值。
进一步地,所述判断所述神经网络的权值是否大于ram空间的步骤之后,包括:
将所述神经网络每一层的激活值依次输入至所述ram空间,获取所述神经网络的第二输出值。
进一步地,所述将所述神经网络每一层的激活值依次输入至所述ram空间,获取所述神经网络的第二输出值的步骤,包括:
基于所述神经网络每一层的激活值进行逐层计算得到所述神经网络的第二输出值。
进一步地,所述基于所述神经网络每一层的权值和激活值进行逐层计算得到所述神经网络的第二输出值的步骤之后,包括:
将所述神经网络第一时刻输出的所述第二输出值进行归一化得到第一激活值归一化结果;
将所述神经网络第二时刻输出的所述第二输出值进行归一化得到第二激活值归一化结果;
将所述神经网络第三时刻输出的所述第二输出值进行归一化得到第三激活值归一化结果;
根据所述第一激活值归一化结果与所述第二激活值归一化结果进行运算得到第四激活值归一化结果;
根据所述第四激活值归一化结果与所述第三激活值归一化结果进行运算得到第五激活值归一化结果,以此类推,获得所述神经网络第二输出值的概率累乘值。
一种神经网络模型部署装置,包括:
判断模块,判断所述神经网络的权值是否大于ram空间;
分块加载模块,若大于,则根据所述ram空间的大小将所述权值分块,依次将每块加载到所述ram空间里,直至完成所述神经网络模型的加载;
直接加载模块,若小于,则直接将所述权值加载到所述ram空间里,直至完成所述神经网络模型的加载。
本申请提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请涉及神经网络技术领域,特别是一种神经网络模型部署方法、装置、计算机设备及存储介质,所述方法包括如下步骤:获判断所述神经网络的权值是否大于ram空间;若大于,则根据所述ram空间的大小将所述权值分块,依次将每块加载到所述ram空间里,直至完成所述神经网络模型的加载;若小于,则直接将所述权值加载到所述ram空间里,直至完成所述神经网络模型的加载。从而确保模型部署时损失最小,减小模型要部署时的功耗。
附图说明
图1为本申请一实施例的一种神经网络模型部署方法流程示意图;
图2 为本申请一实施例的一种神经网络模型部署装置结构示意图;
图3为本申请一实施例的计算机设备内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请一种神经网络模型部署方法,包括:
S1:判断所述神经网络的权值是否大于ram空间;
S2:若大于,则根据所述ram空间的大小将所述权值分块,依次将每块加载到所述ram空间里,直至完成所述神经网络模型的加载;
S3:若小于,则直接将所述权值加载到所述ram空间里,直至完成所述神经网络模型的加载。
如上述步骤S1所述,判断所述神经网络的权值是否大于ram空间;
本实施例中,所述判断所述神经网络的权值是否大于ram空间,包括:若大于,则根据所述ram空间的大小将所述权值分块,依次将每块加载到所述ram空间里,直至完成所述神经网络模型的加载;若小于,则直接将所述权值加载到所述ram空间里,直至完成所述神经网络模型的加载。具体地,在一实施例中,对神经网络层进行分块处理,当神经网络的某一层的权值小于ram空间时,直接将该神经网络层的权值加载到ram空间,当权值较大时,根据ram空间以及权值的大小将所述权值进行分块处理,通过判断的方式,有效的提高了神经网络模型的权值加载到ram中的速度。
如上述步骤S2所述:若大于,则根据所述ram空间的大小将所述权值分块,依次将每块加载到所述ram空间里,直至完成所述神经网络模型的加载;
本实施例中,当所述权值大于所述ram空间,则根据ram空间的大小将所述权值分块,依次将所述每块加载到所述ram空间里,具体地,在一实施例中,ram空间内存为50 kb,其中神经网络的第n层权值w所占空间大于ram空间,b为1kb,则可以将神经网络每层的b只加载一次,具体分成几块可根据权值的大小自行分块,在该实施例中,则可以将所述权值加载两次,b加载完成后在下一层神经网络不再进行加载,所述ram空寂是指随机存取存储器(英语:Random Access Memory,缩写:RAM),也叫主存,是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。RAM工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息,它与ROM的最大区别是数据的易失性,即一旦断电所存储的数据将随之丢失。RAM在计算机和数字系统中用来暂时存储程序、数据和中间结果。通过上述方案,一定程度上减少了模型加载的耗时,提高模型运行速度。
如上述步骤S3所述:若小于,则直接将所述权值加载到所述ram空间里,直至完成所述神经网络模型的加载。
本实施例中,所述神经网络模型量化完成的权值分块加载到ram空间,直至完成所述神经网络模型的加载;所述完成所述神经网络模型的加载,包括:将所述权值与权值阈值进行比较;若大于所述权值阈值,则根据ram空间的大小将所述权值分成几部分,依次将所述每个部分一次加载到所述ram空间里,若大于所述权值阈值,则将所述权值加载到所述ram空间里。因为ram空间内存有限,对于语音识别模型的权值无法一次性的加载,所以根据权值大小进行分块处理,具体地,在一实施例中,比如以96*128(权值)和128*1的矩阵乘法为例,可以进行分块两次 48*128 和128*1的乘法,分块之前需要申请96*128大小的ram空间用于加载权值,分块后只需要48*128大小的空间,节省的48*128 可以用于静态加载其它小权值, 比如有一个32*32的权值,可一次性加载到此空间,所述静态加载为在同样的量化范围内对神经网络每层的每个权值进行量化。通过动态加载以及静态加载结合的方式,提高了加载的速度,也减少了模型加载的损耗。
在一个实施例中,所述判断所述神经网络的权值是否大于ram空间的步骤之前包括:
对所述神经网络模型的权值进行静态量化,得到所述神经网络的权值;
对所述神经网络模型的激活值进行动态量化,得到所述神经网络的激活值。
本实施例中,所述神经网络的权值,激活值,也就是激活函数y=wx+b,其中y为激活值,w,b为权值,所述将每个权值进行量化包括:统计每层神经网络权值的最大值以及最小值;将所述神经模型的每一层的每个权值映射到第一阈值范围内。具体地,在一实施例中,统计到神经网络每层的最大最小值,比如在(-3,3)之间 ,即2**2可包含此范围(可由log2(max(abs(value)))求得), 由于int8的范围是[-128,127],量化到int8相当于再乘以2**5然后round取整即得权值的量化值,所述round取整函数的语法是Round(number,num_digits),number指的是需要进行四舍五入的数字或数字区域,num_digits指的是要四舍五入的位数,当位数>0时,将数字四舍五入到指定的小数位数;当位数=0时,将数字进行四舍五入取整数;当位数<0时,则对小数点左侧的对应位数进行取整,所述激活函数的主要作用就是将线性函数转换成非线性函数。神经网络都是由一系列的y=wx+b组成,y=wx+b是线性函数,不管采用多少个隐藏层其组合也都是线性函数,不能解决非线性问题,因此,需要引入激活函数来进行非线性变换。如果不采用激活函数,那么不论神经网络有多少层,每层输出都是线性函数的组合,只跟有一个隐藏层是没有区别的,因此要求激活函数是可微的以保证能够进行梯度下降,常见的激活函数主要有relu、leaky-relu、sigmoid、tanh和softmax函数。所述神经网络的权值是通过对网络的训练得到的,神经网络的权值确定的目的是为了让神经网络在训练过程中学习到有用的信息,这意味着参数梯度不应该为0。所述神经网络激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个神经元的内容。在人工神经网络中,一个节点的激活函数定义了该节点在给定的输入或输入集合下的输出。标准的计算机芯片电路可以看作是根据输入得到开(1)或关(0)输出的数字电路激活函数,因此,激活函数是确定神经网络输出的数学方程式,所述激活函数是所述神经网络中用于计算输入和偏差的加权和的函数,用于确定神经元是否可以释放,它通常通过梯度下降法的某种梯度处理来操纵数据,然后产生神经网络的输出,该输出包含数据中的参数,有时所述激活函数通常称为传递函数,所述激活函数具有改善数据学习模式的能力,从而实现了特征检测过程的自动化,并证明它们在神经网络的隐藏层中的使用合理性,并且对于跨领域进行分类很有用。通过上述技术方案,实现了将浮点型的激活值和权值映射到定点型。
在一个实施例中,所述神经网络模型进行量化,得到所述神经网络的权值,包括:统计所述神经网络每层权值的最大值以及最小值;获取所述最大值与所述最小值之间的区间范围;将所述区间范围内的所述神经网络每层的每个权值映射到第一阈值范围内,得到所述神经网络的权值。
本实施例中,获取神经网络每层的每一个神经元的权值,统计神经网络每层的最大权值以及最小权值,从而获取神经网络每层的权值范围,将每个权值到第一阈值范围内,所述第一阈值范围由量化级数决定,具体地,在一实施例中,对神经网络的权值进行8bit量化,那么第一阈值范围,即量化范围为[-128,127],将神经网络的每层的每一个权值都经过8bit量化,也就是说将每个权值量化至[-128,127]范围内,所述神经网络(NeuralNetworks,NN)是由大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学习系统,神经网络具有大规模并行、分布式存储和处理、自组织、自适应和自学能力,特别适合处理需要同时考虑许多因素和条件的、不精确和模糊的信息处理问题。通过上述技术方案,把网络权值从高精度转化成低精度(32位浮点数 float32 转化成 8位定点数 int8 ,提高了模型运行速度。
在一个实施例中,所述对所述神经网络模型的激活值进行动态量化,得到所述神经网络的激活值的步骤,包括:判断当前输出值对应的第一尺寸和历史输出值的对应的第二尺寸是否相等;若不相等,则获取所述的第一尺寸和所述第二尺寸;比较所述第一尺寸与所述第二尺寸的大小;若所述第二尺寸小于所述第一尺寸且有拼接需求时,则将所述历史输出值映射到所述当前输出值,得到调整后的第一输出值,将所述第一输出值与所述当前输出值进行拼接,得到所述神经网络的激活值。
本实施例中,所述当前输出值为当前时刻输出的语音数据,所述历史输出值为历史的语音数据,所述第一尺寸、第二尺寸为所述当前语音数据与历史语音数据的尺度因子,判断第一尺寸与第二尺寸的大小,当第二尺寸小于第一尺寸并且有拼接需求时,则将历史输出值映射到当前输出值,具体地,在一实施例中,在t时刻的第一数据的量方为5,在t-1时刻的第二数据的量方为4,此时不能将两个语音数据直接加载待一起使用,这时,就可以通过将第二尺寸映射到第一尺寸,将当前语音数据与历史语音数据都映射到同一个范围内时,就可以对两个不同时刻的语音数据加载到一起进行使用,具体地,在一实施例中,若两个激活值数据的scale不同,将小的scale 变为大的,然后进行拼接,其scale使用大的scale,具体地,比如 一个激活值是3 ,其scale是2 一个激活值是5,其scale是3,拼接的结果是[6,5],后续处理时,使用大的scale进行,例如,float的公式 x2 =w *x1 + b ,其中w的scale 是7 ,x1的scale 是 2 ,b的scale是7, x2的scale 是3的话,定点公式应该是x2= (w *x1 +b<<2) >>6,所述scale是尺度因子,所述尺度因子的基本解释是scale factor尺度因子 网 scaling factor 最后再以尺度因子(Scaling Factor)为基准转换成0~100范围的数值,通过上述方案,保证了语音数据的统一性,从而提高加载速度。
在一个实施例中,所述判断所述神经网络的权值是否大于ram空间的步骤之后,包括:将所述神经网络每一层的激活值依次输入至所述ram空间,获取所述神经网络的第二输出值。
本实施例中,将所述神经网络每一层的激活值依次输入至所述ram空间,获取所述神经网络的第二输出值,包括:基于所述神经网络每一层的激活值进行逐层计算得到所述神经网络的第二输出值,将每层神经网络的激活值输入ram空间,根据神经网络每一层的权值,以及激活函数y=wx+b获得神经网络每一层的激活值,将神经网络上一层的输出的激活值作为神经网络下一层的输入激活值,以此类推,获得神经网络的第二输出值,通过上述方案,一定程度上减少了模型加载的耗时,提高模型运行速度。
在一个实施例中,所述将所述神经网络每一层的激活值依次输入至所述ram空间,获取所述神经网络的第二输出值的步骤,包括:基于所述神经网络每一层的激活值进行逐层计算得到所述神经网络的第二输出值。
本实施例中,所述基于所述神经网络每一层的激活值进行逐层计算得到所述神经网络的第二输出值,该方式是将神经网络每层的激活值进行概率累乘得到上述第二输出值,概率累乘是指在不确定分析中,当净现值期望值相对较低,需进一步了解项目经济效益发生在某一区间的可能性有多大,则应计算这个区间内所有可能取值的概率之和,即累积概率(cumulative probability),用P(NPV≥0)表示,具体地,在一实施例中,设置位数30,将神经网络第一时刻、第二时刻、第三时刻输出的激活值量化至2的三十次方内,然后将神经网络每个时刻输出的第二输出值定点运算得到概率累积,最后将结果再右移三十位,得到三十位的结果,将三十位的结果再转化为8位。例如将 float32 转化成 int8,同时我们期望转换后的模型准确率与转化前相近。由于模型量化是一种近似算法方法,精度损失是一个严峻的问题,大部分的研究都在关注这一问题。所述量化是指将信号的连续取值近似为有限多个离散值的过程。可理解成一种信息压缩的方法。在计算机系统上考虑这个概念,一般用“低比特”来表示。也有人称量化为“定点化”,但是严格来讲所表示的范围是缩小的。定点化特指scale 为2的幂次的线性量化,是一种更加实用的量化方法,保证了较高的精度。
在一个实施例中,所述基于所述神经网络每一层的权值和激活值进行逐层计算得到所述神经网络的第二输出值的步骤之后,包括:将所述神经网络第一时刻输出的所述第二输出值进行归一化得到第一激活值归一化结果;将所述神经网络第二时刻输出的所述第二输出值进行归一化得到第二激活值归一化结果;将所述神经网络第三时刻输出的所述第二输出值进行归一化得到第三激活值归一化结果;根据所述第一激活值归一化结果与所述第二激活值归一化结果进行运算得到第四激活值归一化结果;根据所述第四激活值归一化结果与所述第三激活值归一化结果进行运算得到第五激活值归一化结果,以此类推,获得所述神经网络第二输出值的概率累乘值。
本实施例中,所述第一激活值归一化结果是神经网络在第一时刻的输出的第二输出值乘以2的位数次方得到的,第二激活值归一化结果是神经网络在第二时刻的第二输出值的乘以2的位数次方得到的以及第三激活值归一化结果是在第三时刻神经网络的第二输出值的乘以2的位数次方得到的所述步骤的作用是将神经网络在每个时刻输出的第二输出值进行归一化处理得到第二输出值的概率累乘结果,具体地,在一实施例中,位数位置为30,具体地,在一实施例中,这里我们使用二进制,设置位数Q,表示三十位二进制数,即2的三十次方,将输出的第一激活值与2的三十次方相乘,得到所述第一第一激活值归一化结果,同样,将输出的第二激活值与2的三十次方相乘,得到所述第二激活值归一化结果,将输出的第三激活值与2的三十次方相乘,得到所述第三激活值归一化结果,将所述第一激活值归一化结果与所述第二激活值归一化结果与第二激活值归一化结果相乘的结果与2的位数-1次方相加,在该实施例中,即2的29次方,将相加的结果向右移动30位,即将相加结果除以2的三十次方,获得第五激活值归一化结果,例如,在C语言中,右移一位相当于除以2,如:5>>1,5的二进制表示是101,那么右移一位之后是10就是2了,是整除的;左移的话就是在后面补一个零,相当于是乘以二,那么变成了1010,十进制是10,101右移,就是把最后一位拿掉了,是10这个是二进制的,十进是2,5/2本来是小数,但这里是整数操作的,所以把小数部分去掉了。所述归一化是为了加快训练网络的收敛性,具体做法是:1 把数变为(0,1)之间的小数主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速,应该归到数字信号处理范畴之内。2 把有量纲表达式变为无量纲表达式归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量比如,复数阻抗可以归一化书写:Z = R + jωL = R(1 + jωL/R) ,复数部分变成了纯数量了,没有量纲。另外,微波之中也就是电路分析、信号系统、电磁波传输等,有很多运算都可以如此处理,既保证了运算的便捷,又能凸显出物理量的本质含义。通过上述技术方案。减少了语音识别模型在量化过程中的精度损失。
本申请涉及神经网络技术领域,特别是一种神经网络模型部署方法,所述方法包括如下步骤:判断所述神经网络的权值是否大于ram空间;若大于,则根据所述ram空间的大小将所述权值分块,依次将每块加载到所述ram空间里,直至完成所述神经网络模型的加载;若小于,则直接将所述权值加载到所述ram空间里,直至完成所述神经网络模型的加载。从而确保模型部署时损失最小,减小模型要部署时的功耗。
参照图2,本申请实施例提供一种神经网络模型部署装置,包括:
判断模块1,判断所述神经网络的权值是否大于ram空间;
分块加载模块2,若大于,则根据所述ram空间的大小将所述权值分块,依次将每块加载到所述ram空间里,直至完成所述神经网络模型的加载;
直接加载模块3,若小于,则直接将所述权值加载到所述ram空间里,直至完成所述神经网络模型的加载。
如上所述,可以理解地,本申请中提出的所述的量化因子的搜索装置的各组成部分可以实现如上所述神经网络模型部署方法任一项的功能。
在一个实施例中,所述判断模块1还包括执行:
对所述神经网络模型的权值进行静态量化,得到所述神经网络的权值;
对所述神经网络模型的激活值进行动态量化,得到所述神经网络的激活值。
在一个实施例中,所述判断模块1还包括执行:
统计所述神经网络每层权值的最大值以及最小值;
获取所述最大值与所述最小值之间的区间范围;
将所述区间范围内的所述神经网络每层的每个权值映射到第一阈值范围内,得到所述神经网络的权值。
在一个实施例中,所述判断模块1还包括执行:
判断当前输出值对应的第一尺寸和历史输出值的对应的第二尺寸是否相等;
若不相等,则获取所述的第一尺寸和所述第二尺寸;
比较所述第一尺寸与所述第二尺寸的大小;
若所述第二尺寸小于所述第一尺寸且有拼接需求时,则将所述历史输出值映射到所述当前输出值,得到调整后的第一输出值,将所述第一输出值与所述当前输出值进行拼接,得到所述神经网络的激活值。
在一个实施例中,所述判断模块1还包括执行:
将所述神经网络每一层的激活值依次输入至所述ram空间,获取所述神经网络的第二输出值。
在一个实施例中,所述判断模块1还包括执行:
基于所述神经网络每一层的激活值进行逐层计算得到所述神经网络的第二输出值。
在一个实施例中,所述判断模块1还包括执行:
将所述神经网络第一时刻输出的所述第二输出值进行归一化得到第一激活值归一化结果;
将所述神经网络第二时刻输出的所述第二输出值进行归一化得到第二激活值归一化结果;
将所述神经网络第三时刻输出的所述第二输出值进行归一化得到第三激活值归一化结果;
根据所述第一激活值归一化结果与所述第二激活值归一化结果进行运算得到第四激活值归一化结果;
根据所述第四激活值归一化结果与所述第三激活值归一化结果进行运算得到第五激活值归一化结果,以此类推,获得所述神经网络第二输出值的概率累乘值。
参照图3,本发明实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于决策树的数据计算方法所用数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种神经网络模型部署方法。上述处理器执行上述一种神经网络模型部署方法,所述方法包括如下步骤:判断所述神经网络的权值是否大于ram空间;若大于,则根据所述ram空间的大小将所述权值分块,依次将每块加载到所述ram空间里,直至完成所述神经网络模型的加载;若小于,则直接将所述权值加载到所述ram空间里,直至完成所述神经网络模型的加载。从而确保模型部署时损失最小,减小模型要部署时的功耗。
本领域技术人员可以理解,图中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现神经网络模型部署方法,其中所述方法包括的步骤分别与执行前述实施方式的神经网络模型部署方法的步骤一一对应,在此不再赘述。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被所述处理器执行时实现一种在神经网络模型部署方法,所述方法包括如下步骤:判断所述神经网络的权值是否大于ram空间;若大于,则根据所述ram空间的大小将所述权值分块,依次将每块加载到所述ram空间里,直至完成所述神经网络模型的加载;若小于,则直接将所述权值加载到所述ram空间里,直至完成所述神经网络模型的加载。从而确保模型部署时损失最小,减小模型要部署时的功耗。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (8)
1.一种神经网络模型部署方法,其特征在于,所述方法包括:
判断所述神经网络的权值所占空间是否大于ram空间;
若大于,则根据所述ram空间的大小将所述权值分块,依次将每块加载到所述ram空间里,直至完成所述神经网络模型的加载;
若小于,则直接将所述权值加载到所述ram空间里,直至完成所述神经网络模型的加载;
所述判断所述神经网络的权值是否大于ram空间的步骤之前包括:
对所述神经网络模型的权值进行静态量化,得到所述神经网络的权值;
对所述神经网络模型的激活值进行动态量化,得到所述神经网络的激活值;
所述对所述神经网络模型的激活值进行动态量化,得到所述神经网络的激活值的步骤,包括:
判断当前激活值对应的第一尺寸和历史激活值的对应的第二尺寸是否相等;
若不相等,则获取所述的第一尺寸和所述第二尺寸;
比较所述第一尺寸与所述第二尺寸的大小;
若所述第二尺寸小于所述第一尺寸且有拼接需求时,则将所述历史激活值映射到所述当前激活值,得到调整后的第一输出值,将所述第一输出值与所述当前激活值进行拼接,得到所述神经网络的激活值;
所述第一尺寸、所述第二尺寸分别为当前语音数据与历史语音数据的尺度因子。
2.根据权利要求1所述的神经网络模型部署方法,其特征在于,所述神经网络模型进行静态量化,得到所述神经网络的权值,包括:
统计所述神经网络每层权值的最大值以及最小值;
获取所述最大值与所述最小值之间的区间范围;
将所述区间范围内的所述神经网络每层的每个权值映射到第一阈值范围内,得到所述神经网络的权值。
3.根据权利要求1所述的神经网络模型部署方法,其特征在于,所述判断所述神经网络的权值所占空间是否大于ram空间;若大于,则根据所述ram空间的大小将所述权值分块,依次将每块加载到所述ram空间里,直至完成所述神经网络模型的加载;若小于,则直接将所述权值加载到所述ram空间里,直至完成所述神经网络模型的加载的步骤之后,包括:
将神经网络每一层的激活值依次输入至所述ram空间,获取所述神经网络的第二输出值。
4.根据权利要求3所述的神经网络模型部署方法,其特征在于,所述将所述神经网络每一层的激活值依次输入至所述ram空间,获取所述神经网络的第二输出值的步骤,包括:
基于所述神经网络每一层的激活值进行逐层计算得到所述神经网络的第二输出值。
5.根据权利要求4所述的神经网络模型部署方法,其特征在于,所述基于所述神经网络每一层的激活值进行逐层计算得到所述神经网络的第二输出值之后,还包括:
将所述神经网络第一时刻输出的所述第二输出值进行归一化得到第一激活值归一化结果;
将所述神经网络第二时刻输出的所述第二输出值进行归一化得到第二激活值归一化结果;
将所述神经网络第三时刻输出的所述第二输出值进行归一化得到第三激活值归一化结果;
根据所述第一激活值归一化结果与所述第二激活值归一化结果进行运算得到第四激活值归一化结果;
根据所述第四激活值归一化结果与所述第三激活值归一化结果进行运算得到第五激活值归一化结果,以此类推,获得所述神经网络第二输出值的概率累乘值;所述第一激活值归一化结果是神经网络在第一时刻的输出的第二输出值乘以2的位数次方得到的,第二激活值归一化结果是神经网络在第二时刻的第二输出值的乘以2的位数次方得到的以及第三激活值归一化结果是在第三时刻神经网络的第二输出值的乘以2的位数次方得到的。
6.一种神经网络模型部署装置,所述神经网络模型部署装置用于实现根据权利要求1中所述神经网络模型部署的方法,其特征在于,包括:
判断模块,判断所述神经网络的权值是否大于ram空间;
分块加载模块,若大于,则根据所述ram空间的大小将所述权值分块,依次将每块加载到所述ram空间里,直至完成所述神经网络模型的加载;
直接加载模块,若小于,则直接将所述权值加载到所述ram空间里,直至完成所述神经网络模型的加载。
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的神经网络模型部署方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的神经网络模型部署方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211158660.3A CN115238873B (zh) | 2022-09-22 | 2022-09-22 | 神经网络模型部署方法、装置、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211158660.3A CN115238873B (zh) | 2022-09-22 | 2022-09-22 | 神经网络模型部署方法、装置、计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115238873A CN115238873A (zh) | 2022-10-25 |
CN115238873B true CN115238873B (zh) | 2023-04-07 |
Family
ID=83667163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211158660.3A Active CN115238873B (zh) | 2022-09-22 | 2022-09-22 | 神经网络模型部署方法、装置、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115238873B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113902109A (zh) * | 2021-11-24 | 2022-01-07 | 贵州电网有限责任公司 | 一种神经网络规则化位串行计算的压缩方法及装置 |
CN114611665A (zh) * | 2022-03-07 | 2022-06-10 | 北京理工大学 | 基于权重振荡影响度的多精度分层量化方法及装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11037330B2 (en) * | 2017-04-08 | 2021-06-15 | Intel Corporation | Low rank matrix compression |
US11330804B2 (en) * | 2017-08-07 | 2022-05-17 | The Jackson Laboratory | Long-term and continuous animal behavioral monitoring |
CN109886394B (zh) * | 2019-03-05 | 2021-06-18 | 北京时代拓灵科技有限公司 | 嵌入式设备中三值神经网络权值处理方法及装置 |
WO2021056112A1 (en) * | 2019-09-24 | 2021-04-01 | Huawei Technologies Co., Ltd. | Training method for quantizing the weights and inputs of a neural network |
CN113408715B (zh) * | 2020-03-17 | 2024-05-28 | 杭州海康威视数字技术股份有限公司 | 一种神经网络的定点化方法、装置 |
EP4128067A1 (en) * | 2020-04-22 | 2023-02-08 | Huawei Technologies Co., Ltd. | Method and system for generating a predictive model |
CN111709522B (zh) * | 2020-05-21 | 2022-08-02 | 哈尔滨工业大学 | 一种基于服务器-嵌入式协同的深度学习目标检测系统 |
CN112379231B (zh) * | 2020-11-12 | 2022-06-03 | 国网浙江省电力有限公司信息通信分公司 | 一种基于多光谱图像的设备检测方法及装置 |
CN112766467B (zh) * | 2021-04-06 | 2021-08-20 | 深圳市一心视觉科技有限公司 | 基于卷积神经网络模型的图像识别方法 |
CN113780551B (zh) * | 2021-09-03 | 2023-03-24 | 北京市商汤科技开发有限公司 | 模型量化方法、装置、设备、存储介质及计算机程序产品 |
CN113778459A (zh) * | 2021-09-08 | 2021-12-10 | 北京航空航天大学杭州创新研究院 | 一种在fpga和dsp上部署优化的算子库设计方法 |
CN113763960B (zh) * | 2021-11-09 | 2022-04-26 | 深圳市友杰智新科技有限公司 | 模型输出的后处理方法、装置和计算机设备 |
CN114707637A (zh) * | 2022-03-18 | 2022-07-05 | 恒烁半导体(合肥)股份有限公司 | 一种神经网络量化部署方法、系统及存储介质 |
-
2022
- 2022-09-22 CN CN202211158660.3A patent/CN115238873B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113902109A (zh) * | 2021-11-24 | 2022-01-07 | 贵州电网有限责任公司 | 一种神经网络规则化位串行计算的压缩方法及装置 |
CN114611665A (zh) * | 2022-03-07 | 2022-06-10 | 北京理工大学 | 基于权重振荡影响度的多精度分层量化方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115238873A (zh) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3474194B1 (en) | Method and apparatus with neural network parameter quantization | |
CN109754066B (zh) | 用于生成定点型神经网络的方法和装置 | |
CN105488563A (zh) | 面向深度学习的稀疏自适应神经网络、算法及实现装置 | |
CN109445935B (zh) | 云计算环境下一种高性能大数据分析系统自适应配置方法 | |
CN111091184B (zh) | 一种深度神经网络的量化方法、装置、电子设备及介质 | |
CN110781686B (zh) | 一种语句相似度计算方法、装置及计算机设备 | |
CN109740737B (zh) | 卷积神经网络量化处理方法、装置及计算机设备 | |
CN110874625A (zh) | 一种深度神经网络量化方法及装置 | |
CN112633477A (zh) | 一种基于现场可编程阵列的量化神经网络加速方法 | |
CN115238893B (zh) | 面向自然语言处理的神经网络模型量化方法和装置 | |
CN112561050B (zh) | 一种神经网络模型训练方法及装置 | |
CN101833691A (zh) | 一种基于fpga的最小二乘支持向量机串行结构实现方法 | |
CN114626516A (zh) | 一种基于对数块浮点量化的神经网络加速系统 | |
CN115860100A (zh) | 一种神经网络模型训练方法、装置及计算设备 | |
CN116884398B (zh) | 语音识别方法、装置、设备和介质 | |
CN115759192A (zh) | 一种神经网络加速方法、装置、设备、芯片及存储介质 | |
CN113408704A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN115238873B (zh) | 神经网络模型部署方法、装置、计算机设备 | |
CN110276448B (zh) | 一种模型压缩方法及装置 | |
CN112183744A (zh) | 一种神经网络剪枝方法及装置 | |
CN116957007A (zh) | 神经网络训练时的特征量化方法、装置、介质及程序产品 | |
CN114267422B (zh) | 地表水质参数预测方法、系统、计算机设备及存储介质 | |
CN116306879A (zh) | 数据处理方法、装置、电子设备以及存储介质 | |
CN113177634B (zh) | 基于神经网络输入输出量化的图像分析系统、方法和设备 | |
CN114595802A (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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Method, device, and computer equipment for deploying neural network models Granted publication date: 20230407 Pledgee: Shenzhen Shunshui Incubation Management Co.,Ltd. Pledgor: SHENZHEN YOUJIE ZHIXIN TECHNOLOGY Co.,Ltd. Registration number: Y2024980029366 |