基于语义分割神经网络模型的任意比特量化方法及设备转让专利

申请号 : CN202110756609.1

文献号 : CN113487014B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谭黎敏崔卫东赵钊

申请人 : 上海西井信息科技有限公司

摘要 :

本发明提供一种基于语义分割神经网络模型的任意比特量化方法及设备。基于语义分割神经网络模型的任意比特量化方法,包括:于预训练的语义分割浮点网络模型的设置多个伪量化节点,所述伪量化节点用于采集量化信息,所述预训练的语义分割浮点网络模型的输入、各层输入以及权重以浮点数表示;对设置后的语义分割浮点网络模型进行量化感知训练;将所述语义分割浮点网络模型转化为语义分割定点网络模型,所述语义分割定点网络模型的输入、各层输入以及权重以指定比特的定点数表示。本发明对模型进行量化,使得模型在推理时使用指定比特的定点数进行计算,能够更好的适配到嵌入式和FPGA平台上的同时,保证运算速度且提高模型的精度。

权利要求 :

1.一种基于语义分割神经网络模型的任意比特量化方法,其特征在于,包括:于预训练的语义分割浮点网络模型的设置多个伪量化节点,所述伪量化节点用于采集量化信息,所述预训练的语义分割浮点网络模型的输入、各层输入以及权重以浮点数表示;

对设置后的语义分割浮点网络模型进行量化感知训练;

将所述语义分割浮点网络模型转化为语义分割定点网络模型,所述语义分割定点网络模型的输入、各层输入以及权重以指定比特的定点数表示,其中,所述伪量化节点设置于所述预训练的语义分割浮点网络模型的各层,所述伪量化节点包括:输入量化节点、权重量化节点、算子量化节点以及输出反量化节点,所述伪量化节点的算子量化节点为卷积量化节点、加法量化节点以及乘法量化节点中的多种,所述加法量化节点根据如下公式进行加法量化:zq=Zz/q+Mx,z/float(xq‑Zx/q)+My,z/float(yq‑Zy/q)其中,xq是加法算子的量化形式的一个指定比特的输入定点数,Zx/q是输入定点数xq对应的零点偏差,yq是加法算子的量化形式的另一个指定比特的输入定点数,Zy/q是输入定点数yq对应的零点偏差,zq是加法算子的量化形式的指定比特的输出定点数,Zz/q是输出定点数zq对应的零点偏差,Mx,z/float是输入定点数xq和输出定点数zq的缩放系数的比值;My,z/float是输入定点数yq和输出定点数zq的缩放系数的比值。

2.如权利要求1所述的基于语义分割神经网络模型的任意比特量化方法,其特征在于,所述输入量化节点按如下步骤量化:根据输入浮点数的所有元素的最大值和最小值、量化区间的最大值和最小值计算缩放因子和零点偏差;

根据所述缩放因子和零点偏差将所述输入浮点数转换为指定比特的输入定点数。

3.如权利要求2所述的基于语义分割神经网络模型的任意比特量化方法,其特征在于,所述权重量化节点按与所述输入量化节点相同的方式量化权重浮点数。

4.如权利要求1所述的基于语义分割神经网络模型的任意比特量化方法,其特征在于,所述卷积量化节点根据如下公式进行卷积量化:yq=Zy/q+[M*conv((xq‑Zx/q)(wq‑Zw/q))]其中,xq是卷积量化节点的卷积层的指定比特的输入定点数,wq是卷积量化节点的卷积层的指定比特的权重定点数,yq是卷积量化节点的卷积层的指定比特的输出定点数,Sx/float是输入定点数对应的缩放系数,Sw/float是权重定点数对应的缩放系数,Sy/float是输出定点数对应的缩放系数,M是输入定点数和输出定点数的缩放系数的比值。

5.如权利要求2所述的基于语义分割神经网络模型的任意比特量化方法,其特征在于,所述乘法量化节点根据如下步骤进行乘法量化:将浮点乘法系数转换为定点乘法系数;

根据所述定点乘法系数进行定点乘法。

6.如权利要求1至5任一项所述的基于语义分割神经网络模型的任意比特量化方法,其特征在于,所述语义分割定点网络模型的输入、各层输入以及权重为整数,所述语义分割定点网络模型部署至现场可编程门阵列或嵌入式平台。

7.一种电子设备,其特征在于,所述电子设备包括:

处理器;

存储介质,其上存储有计算机程序,所述计算机程序被所述处理器运行时执行:如权利要求1至6任一项所述的基于语义分割神经网络模型的任意比特量化方法。

8.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行:如权利要求1至6任一项所述的基于语义分割神经网络模型的任意比特量化方法。

说明书 :

基于语义分割神经网络模型的任意比特量化方法及设备

技术领域

[0001] 本发明涉及图像处理领域,尤其涉及一种基于语义分割神经网络模型的任意比特量化方法及设备。

背景技术

[0002] 随着计算机与信息技术的不断演进,机器学习以及模式识别已成为近几年来最炙手可热的领域之一。各种深度学习模型也在大量的涌现,当模型在端设备上部署时,对模型的大小,以及推理速度,精度提出了很高的要求。现有的技术无法兼顾大小,速度,时延,以及精度。
[0003] 由此,如何对模型进行量化,使得模型在推理时使用指定比特的定点数进行计算,能够更好的适配到嵌入式和FPGA平台上的同时,保证运算速度且提高模型的精度,是本领域亟待解决的技术问题。

发明内容

[0004] 本发明为了克服上述现有技术存在的缺陷,提供一种基于语义分割神经网络模型的任意比特量化方法及设备,以对模型进行量化,使得模型在推理时使用指定比特的定点数进行计算,能够更好的适配到嵌入式和FPGA平台上的同时,保证运算速度且提高模型的精度。
[0005] 根据本发明的一个方面,提供一种基于语义分割神经网络模型的任意比特量化方法,包括:
[0006] 于预训练的语义分割浮点网络模型的设置多个伪量化节点,所述伪量化节点用于采集量化信息,所述预训练的语义分割浮点网络模型的输入、各层输入以及权重以浮点数表示;
[0007] 对设置后的语义分割浮点网络模型进行量化感知训练;
[0008] 将所述语义分割浮点网络模型转化为语义分割定点网络模型,所述语义分割定点网络模型的输入、各层输入以及权重以指定比特的定点数表示。
[0009] 在本申请的一些实施例中,所述伪量化节点设置于所述预训练的语义分割浮点网络模型的各层,所述伪量化节点包括:输入量化节点、权重量化节点、算子量化节点以及输出反量化节点。
[0010] 在本申请的一些实施例中,所述输入量化节点按如下步骤量化:
[0011] 根据输入浮点数的所有元素的最大值和最小值、量化区间的最大值和最小值计算缩放因子和零点偏差;
[0012] 根据所述缩放因子和零点偏差将所述输入浮点数转换为指定比特的输入定点数。
[0013] 在本申请的一些实施例中,所述权重量化节点按与所述输入量化节点相同的方式量化权重浮点数。
[0014] 在本申请的一些实施例中,所述算子量化节点为卷积量化节点,所述卷积量化节点根据如下公式进行卷积量化:
[0015]
[0016] 其中,xq是卷积量化节点的卷积层的指定比特的输入定点数,wq是卷积量化节点的卷积层的指定比特的权重定点数,yq是卷积量化节点的卷积层的指定比特的输出定点数,Sx/float是输入定点数对应的缩放系数,Sw/float是权重定点数对应的缩放系数,Sy/float是输出定点数对应的缩放系数,M是输入定点数和输出定点数的缩放系数的比值。
[0017] 在本申请的一些实施例中,所述算子量化节点为加法量化节点,所述加法量化节点根据如下公式进行加法量化:
[0018] zq=Zz/q+Mx,z/float(xq‑Zx/q)+My,z/float(yq‑Zy/q)
[0019]
[0020]
[0021] 其中,xq是加法算子的量化形式的一个指定比特的输入定点数,Zx/q是输入定点数xq对应的零点偏差,yq是加法算子的量化形式的另一个指定比特的输入定点数,Zy/q是输入定点数yq对应的零点偏差,zq是加法算子的量化形式的指定比特的输出定点数,Zz/q是输出定点数zq对应的零点偏差,Mx,z/float是输入定点数xq和输出定点数zq的缩放系数的比值;My,z/float是输入定点数yq和输出定点数zq的缩放系数的比值;
[0022] 在本申请的一些实施例中,所述算子量化节点为乘法量化节点,所述乘法量化节点根据如下步骤进行乘法量化:
[0023] 将浮点乘法系数转换为定点乘法系数;
[0024] 根据所述定点乘法系数进行定点乘法。
[0025] 在本申请的一些实施例中,所述语义分割定点网络模型的输入、各层输入以及权重为整数,所述语义分割定点网络模型部署至现场可编程门阵列或嵌入式平台。
[0026] 根据本发明的又一方面,还提供一种电子设备,所述电子设备包括:处理器;存储介质,其上存储有计算机程序,所述计算机程序被所述处理器运行时执行如上所述的步骤。
[0027] 根据本发明的又一方面,还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上所述的步骤。
[0028] 相比现有技术,本发明的优势在于:
[0029] 本发明通过设置指定的比特,能够产生任意位宽的语义分割神经网络推理模型,为了克服量化造成的精度损失,使用量化感知训练方法重新微调模型,减少了精度损失,同时加快了推理速度,优化吞吐量,模型的大小,大大降低了对运行设备的要求。

附图说明

[0030] 通过参照附图详细描述其示例实施方式,本发明的上述和其它特征及优点将变得更加明显。
[0031] 图1示出了根据本发明实施例的基于语义分割神经网络模型的任意比特量化方法的流程图;
[0032] 图2示出了根据本发明实施例的预训练的语义分割浮点网络模型的设置多个伪量化节点的示意图;
[0033] 图3示出了根据本发明实施例的语义分割定点网络模型的流程图;
[0034] 图4示出了根据本发明实施例的基于语义分割神经网络模型的任意比特量化装置的模块图;
[0035] 图5示意性示出本公开示例性实施例中一种计算机可读存储介质示意图;
[0036] 图6示意性示出本公开示例性实施例中一种电子设备示意图。

具体实施方式

[0037] 现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
[0038] 此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0039] 为了解决现有技术的缺陷,本发明提供一种基于语义分割神经网络模型的任意比特量化方法,如图1所示。图1示出了根据本发明实施例的基于语义分割神经网络模型的任意比特量化方法的流程图。图1共示出如下:
[0040] 步骤S110:于预训练的语义分割浮点网络模型的设置多个伪量化节点,所述伪量化节点用于采集量化信息,所述预训练的语义分割浮点网络模型的输入、各层输入以及权重以浮点数表示。
[0041] 具体而言,所述量化信息例如可以包括量化输出值的最大值和最小值、以及量化误差。
[0042] 步骤S120:对设置后的语义分割浮点网络模型进行量化感知训练。
[0043] 具体而言,为了减少量化误差造成的精度损失,步骤S120可以通过设置超参数,然后进行量化感知训练。在训练的过程中伪量化节点在每一次训练后统计每层的最大值和最小值信息。使得经过多次训练后带有伪量化节点的模型精度接近或者达到语义分割浮点网络模型的精度。
[0044] 步骤S130:将所述语义分割浮点网络模型转化为语义分割定点网络模型,所述语义分割定点网络模型的输入、各层输入以及权重以指定比特的定点数表示。
[0045] 本发明提供基于语义分割神经网络模型的任意比特量化方法通过设置指定的比特,能够产生任意位宽的语义分割神经网络推理模型,为了克服量化造成的精度损失,使用量化感知训练方法重新微调模型,减少了精度损失,同时加快了推理速度,优化吞吐量,模型的大小,大大降低了对运行设备的要求。
[0046] 在本申请的优选例中,所述语义分割定点网络模型的输入、各层输入以及权重为整数,所述语义分割定点网络模型部署至现场可编程门阵列或嵌入式平台,从而减少模型占用的内存。
[0047] 下面结合图2,描述步骤S110。如图2所示,在一个具体实施例中,预训练的语义分割浮点网络模型包括基于浮点数的卷积层A以及基于浮点数的卷积层B。由此,输入浮点数A和权重浮点数A输入到基于浮点数的卷积层A后获得输出浮点数A。输出浮点数A作为输入浮点数B和权重浮点数B输入到基于浮点数的卷积层B后获得输出浮点数B。在此模型的基础上,设置伪量化节点A和伪量化节点B。伪量化节点可以包括输入量化节点、权重量化节点、算子量化节点以及输出反量化节点。由此,设置伪量化节点A和伪量化节点B后,语义分割浮点网络模型中:输入浮点数A通过输入量化节点A转化为指定比特的输入定点数A;权重浮点数A通过权重量化节点A转化为指定比特的权重定点数A;输入定点数A和权重定点数A输入卷积量化节点A(作为算子量化节点)获得输出定点数A;输出定点数A输入输出反量化节点A获得输出浮点数A。伪量化节点B的执行过程与伪量化节点A类似,在此不予赘述。由此,可以通过伪量化节点A收集量化信息(例如包括量化区间的最大值和最小值以及量化误差)。
[0048] 然后,把训练后带有伪量化节点的模型的输入浮点数和权重浮点数都从浮点数转换为指定比特的定点形式;然后把浮点卷积运算可以替换成量化的卷积运算,语义分割定点网络模型如图3所示。由此,通过转化工具转化为纯整数计算的语义分割神经网络模型,供现场可编程门阵列或者嵌入式平台使用。
[0049] 具体而言,在伪量化节点中,可以采用仿射变换的方式,对激活值,权重,偏差都进行量化,激活和权重可以选用设置的比特数,偏差可以选用32比特或者16比特。以输入量化节点为例,输入量化节点可以按如下步骤量化:根据输入浮点数的所有元素的最大值和最小值、量化区间的最大值和最小值计算缩放因子和零点偏差;根据所述缩放因子和零点偏差将所述输入浮点数转换为指定比特的输入定点数。所述权重量化节点按与所述输入量化节点相同的方式量化权重浮点数。
[0050] 上述步骤,可以通过如下公式实现:
[0051] 确定 输入 浮点数 (T en so r) 中 的最 大值 和最 小值
[0052] 根据如下公式确定缩放因子Sx/float和零点偏差Zx/q:
[0053]
[0054]
[0055] 其中, 是输入浮点数x中所有元素的最大值, 是输入浮点数x中所有元素的最小值;缩放因子Sx/float是把浮点数映射到整数范围内时需要缩小或者放大的倍数;零点偏差Zx/q是把浮点数0.0对应到量化区间内的某个整数值; 和 是输入浮点数对应的量化区间的最大值和最小值,比如量化到8比特则量化区间为[0,255],则 为0,为255。
[0056] 然后,根据缩放系数Sx/float和零点偏差Zx/q,利用如下公式将输入浮点数的每个值从浮点数xfloat转换为对应的整数xq:
[0057]
[0058] 其中,当 除法的结果不等于整数时,需要进行舍入[·]操作。
[0059] 具体而言,所述算子量化节点为卷积量化节点,所述卷积量化节点根据如下公式进行卷积量化:
[0060] yq=Zy/q+[M*conv((xq‑Zx/q)(wq‑Zw/q))]
[0061]
[0062] 其中,xq是卷积量化节点的卷积层的指定比特的输入定点数,wq是卷积量化节点的卷积层的指定比特的权重定点数,yq是卷积量化节点的卷积层的指定比特的输出定点数,Sx/float是输入定点数对应的缩放系数,Sw/float是权重定点数对应的缩放系数,Sy/float是输出定点数对应的缩放系数,M是输入定点数和输出定点数的缩放系数的比值。
[0063] 具体而言,所述算子量化节点为加法量化节点,所述加法量化节点根据如下公式进行加法量化:
[0064] zq=Zz/q+Mx,z/float(xq‑Zx/q)+My,z/float(yq‑Zy/q)
[0065]
[0066]
[0067] 其中,xq是加法算子的量化形式的一个指定比特的输入定点数,Zx/q是输入定点数xq对应的零点偏差,yq是加法算子的量化形式的另一个指定比特的输入定点数,Zy/q是输入定点数yq对应的零点偏差,zq是加法算子的量化形式的指定比特的输出定点数,Zz/q是输出定点数zq对应的零点偏差,Mx,z/float是输入定点数xq和输出定点数zq的缩放系数的比值;My,z/float是输入定点数yq和输出定点数zq的缩放系数的比值。
[0068] 上述公式中,除了Mx,z/float和My,z/float,其余都是指定比特位数的整数。所以上述公式中也可以使用整数加法运算。而Mx,z/float和My,z/float可以使用下面提到的定点乘法来模拟浮点乘法计算。
[0069] 具体而言,所述算子量化节点为乘法量化节点,所述乘法量化节点根据如下步骤进行乘法量化:将浮点乘法系数转换为定点乘法系数;根据所述定点乘法系数进行定点乘法。
[0070] 上述步骤可以由如下公式示出:
[0071] 替换Mfloat为整数形式的Mint32,转换公式如下:
[0072]
[0073] 其中,Mfloat是一个浮点数,是卷积或者加法算子中的乘法系数;Mq是Mfloat转换成有符号的32比特的整数;n是把取值在(0,0.5)的Mfloat变换到(0.5,1.0)的Mfloat需要2的倍数。其中,[·]表示舍入操作,此转换的目的是把一个浮点数(取值范围在[0,1]内)转换为int32的整数,然后做计算,计算完之后在右移操作。
[0074] 使用Mq来替代Mfloat,把浮点乘法可以表示成定点乘法。
[0075] Mfloat*∑·→cast_int32(Mq*∑·)>>n
[0076] 其中,Mq和矩阵∑·的值都用INT32表示。数据类型转换和移位操作可以将Mfloat*∑·转换为INT32或INT16,和Zz/quant一起确保计算结果zq可以几乎全部落入指定bits的整数范围内。
[0077] 进一步地,在卷积层之后,还可以包括批归一化的处理。具体而言,在预测阶段,将会把BN的参数折叠进权重中。因此,在预测时没有显式的BN操作,只是折叠后等的权重Winf和偏差Biasinf,计算的公式如下:
[0078]
[0079]
[0080] 其中,W为权重;Winf为原始的权重W和批归一化的系数整合之后的等效值;μ和σ是整个训练集的均值和标准差;γ,β是批归一化在训练过程中学习到缩放系数和偏移值;Binf是批归一化的系数整合之后的等效的偏差值。
[0081] 由此,这样卷积和批归一化的组合就可以变换成融合的卷积处理,如下述公式所示:
[0082] y=conv(w,x)
[0083]
[0084] 上述公式的等效公式为:
[0085] yout=conv(winf,x)+βinf。
[0086] 以上仅仅是示意性地描述本发明提供的基于语义分割神经网络模型的任意比特量化方法,本发明并非以此为限制。
[0087] 本发明还提供一种基于语义分割神经网络模型的任意比特量化装置,图4示出了根据本发明实施例的基于语义分割神经网络模型的任意比特量化装置的模块图。基于语义分割神经网络模型的任意比特量化装置200包括设置模块210、训练模块220及转化模块230。
[0088] 设置模块210用于于预训练的语义分割浮点网络模型的设置多个伪量化节点,所述伪量化节点用于采集量化信息,所述预训练的语义分割浮点网络模型的输入、各层输入以及权重以浮点数表示;
[0089] 训练模块220用于对设置后的语义分割浮点网络模型进行量化感知训练;
[0090] 转化模块230用于将所述语义分割浮点网络模型转化为语义分割定点网络模型,所述语义分割定点网络模型的输入、各层输入以及权重以指定比特的定点数表示。
[0091] 本发明提供基于语义分割神经网络模型的任意比特量化装置通过设置指定的比特,能够产生任意位宽的语义分割神经网络推理模型,为了克服量化造成的精度损失,使用量化感知训练方法重新微调模型,减少了精度损失,同时加快了推理速度,优化吞吐量,模型的大小,大大降低了对运行设备的要求。
[0092] 图4仅仅是示意性的示出本发明提供的基于语义分割神经网络模型的任意比特量化装置200的模块图,在不违背本发明构思的前提下,模块的拆分、合并、增加都在本发明的保护范围之内。
[0093] 在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被例如处理器执行时可以实现上述任意一个实施例中所述基于语义分割神经网络模型的任意比特量化方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述基于语义分割神经网络模型的任意比特量化方法部分中描述的根据本发明各种示例性实施方式的步骤。
[0094] 参考图5所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD‑ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0095] 所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0096] 所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0097] 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在租户计算设备上执行、部分地在租户设备上执行、作为一个独立的软件包执行、部分在租户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到租户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0098] 在本公开的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中所述基于语义分割神经网络模型的任意比特量化方法的步骤。
[0099] 所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
[0100] 下面参照图6来描述根据本发明的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0101] 如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
[0102] 其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述基于语义分割神经网络模型的任意比特量化方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所示的步骤。
[0103] 所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
[0104] 所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0105] 总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0106] 电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得租户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0107] 通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD‑ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述基于语义分割神经网络模型的任意比特量化方法。
[0108] 相比现有技术,本发明的优势在于:
[0109] 本发明通过设置指定的比特,能够产生任意位宽的语义分割神经网络推理模型,为了克服量化造成的精度损失,使用量化感知训练方法重新微调模型,减少了精度损失,同时加快了推理速度,优化吞吐量,模型的大小,大大降低了对运行设备的要求。
[0110] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。