CN117521731A - 一种快速地将各种量化算法和mnn结合的方法 - Google Patents
一种快速地将各种量化算法和mnn结合的方法 Download PDFInfo
- Publication number
- CN117521731A CN117521731A CN202210875053.2A CN202210875053A CN117521731A CN 117521731 A CN117521731 A CN 117521731A CN 202210875053 A CN202210875053 A CN 202210875053A CN 117521731 A CN117521731 A CN 117521731A
- Authority
- CN
- China
- Prior art keywords
- quantization
- conv
- value
- input
- quantized
- 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
- 238000013139 quantization Methods 0.000 title claims abstract description 116
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000007493 shaping process Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 9
- 238000012986 modification Methods 0.000 abstract description 8
- 230000004048 modification Effects 0.000 abstract description 8
- 238000012549 training Methods 0.000 description 10
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000011002 quantification Methods 0.000 description 3
- 101710092887 Integrator complex subunit 4 Proteins 0.000 description 2
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 2
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 2
- 102100037075 Proto-oncogene Wnt-3 Human genes 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000004091 panning Methods 0.000 description 1
- 238000012545 processing 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种快速地将量化方法融合进MNN的方法,尤其对量化过程较复杂的量化算法很有用,求取量化参数S和Z的过程仍按原始的流程走,之后线下简化ONNX,去掉不需要的节点,提取相应的参数再合入MNN,修改起来简单方便。本申请是一种切实可行的简单快速的将其他方法量化出来的模型和MNN快速结合的方法。
Description
技术领域
本发明属于神经网络技术领域,特别涉及一种快速地将各种量化算法和MNN结合的方法。
背景技术
卷积神经网络具有很好的精度,甚至在一些任务上比如人脸识别、图像分类,已经超越了人类精度。但其缺点也比较明显,具有较大的参数量,计算量,以及内存占用。而模型量化可以缓解现有卷积神经网络参数量大、计算量大、内存占用多等问题,具有为神经网络压缩参数、提升速度、降低内存占用等“潜在”优势。这里的“潜在”为什么是加引号的呢?因为想同时达到这三个特性并不容易,在实际应用过程中存在诸多限制和前提条件。另外,由于模型量化是一种近似算法方法,精度损失是一个严峻的问题,大部分的研究都在关注这一问题。
目前,随着手机算力的不断提升,以及深度学习的快速发展,特别是小网络模型不断成熟,原本在云端执行的推理预测就可以转移到终端上来做。端智能即在端侧部署运行AI算法,相比服务端智能,端智能具有低延时、兼顾数据隐私、节省云端资源等优势。
此外,MNN(Mobile Neural Network)是一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。目前,MNN已经在例如阿里巴巴的手机淘宝、手机天猫、优酷等20多个App中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。另外,IoT等场景下也有若干应用。
AdaRound、AdaQuant以及BRECQ是现阶段后训练量化PTQ研究的前沿策略,都沿着“权重不变的量化参数优化”方向演进,即都属于Optimization-based Methods,量化精度符合预期时,需要考虑与推理引擎(如MNN、TensorRT、TVM等)相结合,获得真实的推理加速效果;如果量化方法比较简单,替换掉原来的MNN的算法即可,但如果量化方法比较复杂,比如需要用小数据进行微调涉及到参数的反传,加上MNN又是C++实现,合并起来就会很麻烦,而且容易出错。
此外,现有技术中的常用术语如下:
1.模型量化:量化是指将信号的连续取值近似为有限多个离散值的过程。可理解成一种信息压缩的方法。在计算机系统上考虑这个概念,一般用“低比特”来表示。也有人称量化为“定点化”,但是严格来讲所表示的范围是缩小的。定点化特指scale为2的幂次的线性量化,是一种更加实用的量化方法。
2.训练量化(QAT即quantization-aware-training):在训练中模拟量化行为,在训练中用浮点来保存定点参数,最后inference的时候,直接采用定点参数。优势:训练阶段考虑到了量化约束,精度效果相对更好;更有利于极低比特量化(如INT4、或INT8/INT4混合)的落地实现;劣势:存在训练成本,维护升级相对吃力;精度效果未必好,也依赖策略选择与超参调整。
3.后训练量化(PQT即post-quantization-training):对预训练后的网络选择合适的量化操作和校准操作,以实现量化损失的最小化,该过程又细分为两种:
(1)需要calibration数据,这些数据主要用来统计得到量化参数,因此是不需要打标的,一般百来张即可。
(2)完全不需要数据集。这适用于那些完全拿不到训练环境和数据的场景。优势:简单易用,能快速看到量化效果;劣势:由于模型训练时,并未考虑到量化约束,因此未必能完全消除量化误差或精度损失。
4.量化的作用:量化将网络中主要算子(卷积)由原先的浮点计算转成低精度的Int8计算,减少模型大小并提升性能。
5.ONNX(Open Neural Exchange,开放神经网络交换)格式,是一种针对机器学习所设计的开放式的文件格式用于存储训练好的模型。用于表示深度学习模型的标准,可使得模型在不同框架之间进行转移。
发明内容
为了解决上述问题,本申请的目的在于:提供一种切实可行的简单快速的将其他方法量化出来的模型和MNN快速结合的方法。
具体地,本发明提供一种快速地将各种量化算法和MNN结合的方法,所述方法包括:
S1,分析线性量化方法:
设:
量化Quantize X_int=round(X*S)+Z
X_Q=clamp(0,N-1,X_int)
反量化De-Quantize X_float=(X_Q-Z)/S
其中,X是float32的原始值,S是float32的缩放因子,Z是float32的偏移量,N=2n-1,其中n表示量化的位宽,N由比特bit计算得出;X_int是量化之后的值对比X_float,X_Q是量化后的值,X_int做完边界处理就是X_Q,大部分情况X_int\X_Q二者相等,X_float是反量化后的值,这里默认已经量化完毕,即已经得到合适的S和Z;
S2,假设,线性量化的一个卷积层,节点Conv之上的一系列节点是对权重Weight的量化,之后的是对Feature的量化,只想得到量化参数,即Weight的缩放系数S_W和零点Z_W以及Feature的缩放系数S_F和零点Z_F;进一步包括:
(1),原权重weight先除以S值,表示为:Div:W’=W/S;
(2),round()是四舍五入取整函数,表示为:Aten:W_r=round(W’);
(3),这一步相当于计算整数和取整之前浮点直接的差值,表示为:Sub:d=W_r-W’;
(4),这一步的结果其实跟(2)中round后的结果是一样的,表示为Add:W_int=W’+d;
(5),加上零点值,表示为:Add:W_int=W_int+Z_W
(6),该操作是为了防止越界,做了一个阶段,将值限制在量化的范围0~2bit-1;表示为:Clip:W_Q=clamp(W_int,0,N),其中N=2bit-1;
(7),相当于前面量化的值再减去零值,表示为:Sub:W_Q=W_Q-Z_W;
(8),再乘上前面的scale值,这两步相当于反量化操作,表示为:Mul:W_float=W_Q*S;
因此,以上步骤(1)-(6)是在进行量化操作,对应X_Q=clamp(0,N-1,round(X*S)+Z);(7)-(8)是在进行反量化操作,对应X_float=(X_Q-Z)/S;故步骤(1)中Div中可取出来量化的S值,由第二个Sub即步骤(7)取出Z的值,因为这里是对Weight的量化,所以用了S_W和Z_W来表示;
S3,分析S1中的量化方法及S2中的节点可知,从除法Div中即可获取S的值,节点Conv前的Div的input[0]对应Conv的Weight,input[1]对应Conv的S_W,Conv后的Div的input[1]对应Conv的缩放系数S_F;其中,除法Div的输入有两个,input[0]代表第1个输入,input[1]代表第2个输入,减法Sub中获取Z的值,Conv前、后均有两个Sub,但是只有每个的第二个Sub才是真正的零点,根据节点node的节点的属性attribute的长度判断即可得到Z,且当节点的属性的值的维度node.attribute.t.dims有值时为零点Z_W,否则是Z_F;单个值是dims为0,多个值是比如weight的就是多个值的,维度是[32,1,1,1],其中32是当前层weight的通道数;S4,最终得到简化后的ONNX,从Attributes中看到除了Conv原有的属性,还加入了需要的量化参数S_W、S_F、Z_W、Z_F,后续转成*.mnn格式的时候也做一下相应的修改读取这几个参数,forward的时候再读取提出参数做量化运算替代现有的量化方法即可,也即因为MNN里的量化是在转换的时候一并完成的,但现在的ONNX是已经量化过的,即已经得到S和Z,所以不需要再额外计算S和Z,只需要对输入的数据进行量化即可;其中,Pytorch中forward是表示一个前向传播,构建网络层的先后运算步骤。
所述步骤S2中,所述线性量化的一个卷积层是量化前已经合并完BN。
所述步骤S3中,所述卷积Conv前的Div的input[0]对应Conv的Weight,input[1]对应Conv的S_W是分通道,channels个值。
所述步骤S3中,所述Conv前、后均有两个Sub,每个的第一个Sub是整形和浮点值之间的差值计算。
所述步骤S3中,当节点的属性的值的维度node.attribute.t.dims有值时为零点Z_W,因为Weight分通道,值有多个,否则是Z_F即Feature不分通道,单个值。
所述步骤S3中,为了保证去掉无用节点之后整个网络节点之间的连续性,将Conv的输出节点改为量化特征Feature的最后一个乘法Mul的输出节点,这样该层Conv就和下一层自然衔接。
由此,本申请的优势在于:
本申请提出了一种快速地将后量化方法融合进MNN的方法,尤其对量化过程较复杂的量化算法很有用,求取量化参数S和Z的过程仍按原始的流程走,之后线下简化ONNX,去掉不需要的节点,提取相应的参数再合入MNN,修改起来简单方便。所述方法对于其他量化方法,尤其需要小批量校正数据进行计算反传求取S或Z或其他量化参数的量化方法,能够采用通过修改ONNX的节点变成MNN需要的格式的方法,修改时只需注意参数的提取对应以及节点输入输出的连接关系。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。
图1是本发明的线性量化的一个卷积层示意图。
图2是本发明简化后的ONNX图示意图。
图3是本发明步骤S2中的部分代码示意图。
图4是本发明方法的流程示意图。
具体实施方式
为了能够更清楚地理解本发明的技术内容及优点,现结合附图对本发明进行进一步的详细说明。
如图4所示,本发明涉及一种快速地将各种量化算法和MNN结合的方法,其所述方法包括:
S1,分析线性量化方法:
设:
量化Quantize X_int=round(X*S)+Z
X_Q=clamp(0,N-1,X_int)
反量化De-Quantize X_float=(X_Q-Z)/S
其中,X是float32的原始值,S是float32的缩放因子,Z是float32的偏移量,N=2n-1,其中n表示量化的位宽,N由比特bit计算得出;X_int是量化之后的值对比X_float,X_Q是量化后的值,X_float是反量化后的值,这里默认已经量化完毕,即已经得到合适的S和Z;
S2,假设,线性量化的一个卷积层,节点Conv之上的一系列节点是对权重Weight的量化,之后的是对Feature的量化,只想得到量化参数,即Weight的缩放系数S_W和零点Z_W以及Feature的缩放系数S_F和零点Z_F;进一步包括:
(1),原权重weight先除以S值,表示为:Div:W’=W/S;
(2),round()是四舍五入取整函数,表示为:Aten:W_r=round(W’);
(3),这一步相当于计算整数和取整之前浮点直接的差值,表示为:Sub:d=W_r-W’;
(4),这一步的结果其实跟(2)中round后的结果是一样的,表示为Add:W_int=W’+d;之所以还要多做步骤(2)和(3),如图3中源代码所示:在代码注释中说明了“实现四舍五入运算的直通式估计器”,这样的做法是“直通式估计器”(STE),此法简单的将梯度按原样传递给这些函数。现在深度学习中一般学习的参数都是连续的,因为这样在反向传播的时候才可以对梯度进行更新。但是有的时候也会遇到参数是离散的情况,这样就没有办法进行反向传播了,比如这里的x.round(),所以这里在实现代码的时候用了先减后加的方式,既保留了原始的逻辑,又实现了梯度计算(前面的tensor取detach相当于常数,梯度为0,后面的X梯度为1),一举两得;
(5),加上零点值,表示为:Add:W_int=W_int+Z_W;
(6),该操作是为了防止越界,做了一个阶段,将值限制在量化的范围0~2bit-1;表示为:Clip:W_Q=clamp(W_int,0,N),其中N=2bit-1;
(7),相当于前面量化的值再减去零值,表示为:Sub:W_Q=W_Q-Z_W;
(8),再乘上前面的scale值,这两步相当于反量化操作,表示为:Mul:W_float=W_Q*S;
因此,以上步骤(1)-(6)是在进行量化操作,对应X_Q=clamp(0,N-1,round(X*S)+Z);(7)-(8)是在进行反量化操作,对应X_float=(X_Q-Z)/S;故步骤(1)中Div中可取出来量化的S值,由第二个Sub即步骤(7)取出Z的值,因为这里是对Weight的量化,所以用了S_W和Z_W来表示;节点中是先除再乘,原理中是先乘再除,不一致是因为除一个数就是乘一个数的倒数,所以二者是等价的,这里的S只是代指,不是具体的值,只需要保证量化和反量化的时候二者对立即可,加减零值也是一样的道理。
如图1所示,节点conv后的第一个clip节点是卷积之后网络自带的激活(ReLU6)操作,非量化过程。之后的黑色节点即Feature的量化步骤,同前面weight的部分,因此可以取出对应的S_F和Z_F。
S3,分析S1中的量化方法及S2中的节点可知,从除法Div中即可获取S的值,节点Conv前的Div的input[0]对应Conv的Weight,input[1]对应Conv的S_W,Conv后的Div的input[1]对应Conv的缩放系数S_F;
减法Sub中获取Z的值,Conv前、后均有两个Sub,但是只有每个的第二个Sub才是真正的零点,根据节点node的节点的属性attribute的长度判断即可得到Z,且当节点的属性的值的维度node.attribute.t.dims有值时为零点Z_W,否则是Z_F;
S4,最终得到简化后的ONNX,从Attributes中看到除了Conv原有的属性,还加入了需要的量化参数S_W、S_F、Z_W、Z_F,后续转成*.mnn格式的时候也做一下相应的修改读取这几个参数,forward的时候再提出参数做量化运算替代原来的量化方法即可,也即因为MNN里的量化是在转换的时候一并完成的,但现在的ONNX是已经量化过的,即已经得到S和Z,所以不需要再额外计算S和Z,只需要对输入的数据进行量化即可。
进一步地,本申请方法可以描述如下:
首先这里以简单的线性量化方法为例:
Quantize X_int=round(X*S)+Z
X_Q=clamp(0,N-1,X_int)
De-Quantize X_float=(X_Q-Z)/S
其中,X是float32的原始值,S是float32的缩放因子,Z是float32的偏移量,N=2n-1,n表示量化的位宽,X_Q是量化后的值,X_float是反量化后的值,这里默认已经量化完毕,即已经得到合适的S和Z,而这也是后量化关键的一步。
如图1所示,即是线性量化的一个卷积层(量化前已经合并完BN),节点Conv之上的一系列节点是对权重Weight的量化,之后的是对Feature的量化,只是想得到量化参数,即Weight的缩放系数S_W和零点Z_W以及Feature的缩放系数S_F和零点Z_F。
分析量化方法及图1中的节点可知从Div中即可获取S的值,Conv前的Div的input[0]对应Conv的Weight,input[1]对应Conv的S_W(分通道,channels个值),Conv后的Div得input[1]对应Conv的S_F;Sub中可以获取Z的值,从图1中可以看到,上下均有两个Sub,但是只有第二个Sub才是真正的零点(第一个Sub是整形和浮点值之间的差值计算),根据node的attribute的长度判断即可得到Z,且当node.attribute.t.dims有值时为Z_W(因为Weight分通道,值是多维的),否则是Z_F(Feature不分通道,单个值)。另外,为了保证去掉无用节点之后整个网络节点之间的连续性,将Conv的输出节点改为量化Feature的最后一个Mul的输出节点,这样该层Conv就和下一层很自然地衔接。
最终得到简化后的ONNX图,如图2所示,从Attributes中可以看到除了Conv原有的属性,还加入了需要的量化参数S_W,S_F,Z_W,Z_F,后续我们转成*.mnn的时候也简单做一下相应的修改提出这几个参数,forward的时候再提出参数做量化运算替代原来的量化方法即可。
对于其他量化方法,尤其需要小批量校正数据进行计算反传求取S或Z或其他量化参数的量化方法,也可以采用类似的方法,修改时注意参数的提取对应以及节点输入输出的连接关系。
综上所述,本申请提出了一种快速地将后量化方法融合进MNN的方法,尤其对量化过程较复杂的量化算法很有用,求取量化参数S和Z的过程仍按原始的流程走,之后线下简化ONNX,去掉不需要的节点,提取相应的参数再合入MNN,修改起来简单方便。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种快速地将各种量化算法和MNN结合的方法,其特征在于,所述方法包括:
S1,分析线性量化方法:
设:
量化Quantize X_int=round(X*S)+Z
X_Q=clamp(0,N-1,X_int)
反量化De-Quantize X_float=(X_Q-Z)/S
其中,X是float32的原始值,S是float32的缩放因子,Z是float32的偏移量,N=2n-1,其中n表示量化的位宽,N由比特bit计算得出;X_int是量化之后的值对比X_float,X_Q是量化后的值,X_float是反量化后的值,这里默认已经量化完毕,即已经得到合适的S和Z;
S2,假设,线性量化的一个卷积层,节点Conv之上的一系列节点是对权重Weight的量化,之后的是对Feature的量化,只想得到量化参数,即Weight的缩放系数S_W和零点Z_W以及Feature的缩放系数S_F和零点Z_F;进一步包括:
(1),原权重weight先除以S值,表示为:Div:W’=W/S;
(2),round()是四舍五入取整函数,表示为:Aten:W_r=round(W’);
(3),这一步相当于计算整数和取整之前浮点直接的差值,表示为:Sub:d=W_r-W’;
(4),这一步的结果其实跟(2)中round后的结果是一样的,表示为Add:W_int=W’+d;
(5),加上零点值,表示为:Add:W_int=W_int+Z_W;
(6),该操作是为了防止越界,做了一个阶段,将值限制在量化的范围0~2bit-1;表示为:Clip:W_Q=clamp(W_int,0,N),其中N=2bit-1;
(7),相当于前面量化的值再减去零值,表示为:Sub:W_Q=W_Q-Z_W;
(8),再乘上前面的scale值,这两步相当于反量化操作,表示为:Mul:W_float=W_Q*S;
因此,以上步骤(1)-(6)是在进行量化操作,对应X_Q=clamp(0,N-1,round(X*S)+Z);(7)-(8)是在进行反量化操作,对应X_float=(X_Q-Z)/S;
故步骤(1)中Div中可取出来量化的S值,由第二个Sub即步骤(7)取出Z的值,因为这里是对Weight的量化,所以用了S_W和Z_W来表示;
S3,分析S1中的量化方法及S2中的节点可知,从除法Div中即可获取S的值,
节点Conv前的Div的input[0]对应Conv的Weight,input[1]对应Conv的S_W,Conv后的Div的input[1]对应Conv的缩放系数S_F;其中,除法Div的输入有两个,input[0]代表第1个输入,input[1]代表第2个输入,减法Sub中获取Z的值,Conv前、后均有两个Sub,但是只有每个的第二个Sub才是真正的零点,根据节点node的节点的属性attribute的长度判断即可得到Z,且当节点的属性的值的维度node.attribute.t.dims有值时为零点Z_W,否则是Z_F;
S4,最终得到简化后的ONNX,从Attributes中看到除了Conv原有的属性,还加入了需要的量化参数S_W、S_F、Z_W、Z_F,后续转成*.mnn格式的时候也做一下相应的修改读取这几个参数,forward的时候再读取提出参数做量化运算替代现有的量化方法即可,也即因为MNN里的量化是在转换的时候一并完成的,但现在的ONNX是已经量化过的,即已经得到S和Z,所以不需要再额外计算S和Z,只需要对输入的数据进行量化即可。
2.根据权利要求1所述的一种快速地将各种量化算法和MNN结合的方法,其特征在于,所述步骤S2中,所述线性量化的一个卷积层是量化前已经合并完BN。
3.根据权利要求1所述的一种快速地将各种量化算法和MNN结合的方法,其特征在于,所述步骤S3中,所述卷积Conv前的Div的input[0]对应Conv的Weight,input[1]对应Conv的S_W是分通道,channels个值。
4.根据权利要求1所述的一种快速地将各种量化算法和MNN结合的方法,其特征在于,所述步骤S3中,所述Conv前、后均有两个Sub,每个的第一个Sub是整形和浮点值之间的差值计算。
5.根据权利要求1所述的一种快速地将各种量化算法和MNN结合的方法,其特征在于,所述步骤S3中,当节点的属性的值的维度node.attribute.t.dims有值时为零点Z_W,因为Weight分通道,值有多个,否则是Z_F即Feature不分通道,单个值。
6.根据权利要求1所述的一种快速地将各种量化算法和MNN结合的方法,其特征在于,所述步骤S3中,为了保证去掉无用节点之后整个网络节点之间的连续性,将Conv的输出节点改为量化特征Feature的最后一个乘法Mul的输出节点,这样该层Conv就和下一层自然衔接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210875053.2A CN117521731A (zh) | 2022-07-25 | 2022-07-25 | 一种快速地将各种量化算法和mnn结合的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210875053.2A CN117521731A (zh) | 2022-07-25 | 2022-07-25 | 一种快速地将各种量化算法和mnn结合的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117521731A true CN117521731A (zh) | 2024-02-06 |
Family
ID=89757132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210875053.2A Pending CN117521731A (zh) | 2022-07-25 | 2022-07-25 | 一种快速地将各种量化算法和mnn结合的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117521731A (zh) |
-
2022
- 2022-07-25 CN CN202210875053.2A patent/CN117521731A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110135580B (zh) | 一种卷积网络全整型量化方法及其应用方法 | |
CN111353505B (zh) | 基于可联合实现语义分割和景深估计的网络模型的装置 | |
CN112733964B (zh) | 一种强化学习自动感知权重分布的卷积神经网络量化方法 | |
CN113822284B (zh) | 一种基于边界注意力的rgbd图像语义分割方法 | |
US11288414B2 (en) | Artificial intelligence-based manufacturing part design | |
CN114528987A (zh) | 一种神经网络边缘-云协同计算分割部署方法 | |
WO2022246986A1 (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN112399177B (zh) | 一种视频编码方法、装置、计算机设备及存储介质 | |
CN116980541B (zh) | 视频编辑方法、装置、电子设备以及存储介质 | |
CN113096133A (zh) | 一种基于注意力机制的语义分割网络的构建方法 | |
CN117521731A (zh) | 一种快速地将各种量化算法和mnn结合的方法 | |
CN112561050B (zh) | 一种神经网络模型训练方法及装置 | |
CN114169513B (zh) | 神经网络的量化方法、装置、存储介质及电子设备 | |
WO2022252694A1 (zh) | 神经网络优化方法及其装置 | |
CN113268599B (zh) | 文件分类模型的训练方法、装置、计算机设备及存储介质 | |
CN114065913A (zh) | 模型量化方法、装置及终端设备 | |
CN115081609A (zh) | 一种智能决策中的加速方法、终端设备及存储介质 | |
CN116644783A (zh) | 模型训练方法、对象处理方法及装置、电子设备、介质 | |
CN114118358A (zh) | 图像处理方法、装置、电子设备、介质及程序产品 | |
CN112052916A (zh) | 基于神经网络的数据处理方法、装置以及可读存储介质 | |
Forchhammer et al. | Lossless image data sequence compression using optimal context quantization | |
CN117010459B (zh) | 基于模块化和序列化自动生成神经网络的方法 | |
Baldvinsson | Rare Event Learning In URLLC Wireless Networking Environment Using GANs | |
CN117014633B (zh) | 一种跨模态数据压缩方法、装置、设备及介质 | |
CN112801017B (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 |