CN114418098A - 一种神经网络差量压缩方法、装置、电子设备及存储介质 - Google Patents
一种神经网络差量压缩方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114418098A CN114418098A CN202210255131.9A CN202210255131A CN114418098A CN 114418098 A CN114418098 A CN 114418098A CN 202210255131 A CN202210255131 A CN 202210255131A CN 114418098 A CN114418098 A CN 114418098A
- Authority
- CN
- China
- Prior art keywords
- model
- integer
- floating point
- quantization
- network layer
- 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
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
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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
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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种神经网络差量压缩方法、装置、电子设备及存储介质,该方法在获取到神经网络的两个相邻训练版本时,可为这些版本所包含的各网络层生成专用的量化参数,并利用这些量化参数为对应的网络层进行浮点参数量化处理,得到训练版本对应的整数版本,再利用这些整数版本替代训练版本进行差量数据计算及差量压缩。换而言之,本发明为神经网络模型的每一网络层设置了生成的专用的量化参数,可采用不同力度对每一网络层进行针对性量化,相较于全局量化策略额外考虑了神经网络模型不同网络层之间的参数取值差异,能够有效避免将整个网络的浮点数参数看作一个集合来确定全局的量化参数所导致的量化误差增大及模型的精度下降问题。
Description
技术领域
本发明涉及神经网络领域,特别涉及一种神经网络差量压缩方法、装置、电子设备及存储介质。
背景技术
在神经网络压缩领域中,通常会对神经网络两个相邻版本间的浮点参数差量进行统一的全局量化并进行后续压缩,然而全局量化策略并没有考虑神经网络不同层之间参数分布和取值的差异性。例如,利用较大的参数的取值范围来确定量化器可以得到较高的压缩比,因为在相同的量化值个数的情况下,量化范围越大对应单个量化值代表的聚类范围也就越大,因此会导致更大的量化误差。而细粒度的量化则会有与之相反的结果,量化误差会更小但是压缩比会相应的与之减小。
因此,如何为整个神经网络选择合适的量化力度,以尽可能平衡量化误差和压缩比是本技术方案所要解决的问题。
发明内容
本发明的目的是提供一种神经网络差量压缩方法、装置、电子设备及存储介质,可对神经网络模型的每一网络层进行专门量化,进而可避免将整个网络的浮点数参数看作一个集合来确定全局的量化参数所导致的量化误差增大及模型的精度下降问题。
为解决上述技术问题,本发明提供一种神经网络差量压缩方法,包括:
获取神经网络的当前训练模型,并对所述当前训练模型中的各当前网络层执行量化参数生成操作,得到所述当前网络层对应的第一量化参数;
利用所述第一量化参数对所述当前网络层中的浮点参数进行量化处理,得到所述当前训练模型对应的第一整数模型;
对所述当前训练模型进行训练得到新模型,并对所述新模型中的各新网络层执行所述量化参数生成操作,得到所述新网络层对应的第二量化参数;
利用所述第二量化参数对所述新网络层中的浮点参数进行所述量化处理,得到所述新模型对应的第二整数模型;
利用所述第一整数模型和所述第二整数模型计算所述当前训练模型与新模型之间的差量数据,并对所述差量数据进行压缩。
可选地,所述对所述当前训练模型中的各当前网络层执行量化参数生成操作,得到所述当前网络层对应的第一量化参数,包括:
将所述当前网络层包含的所有浮点参数添加至浮点集,并确定所述浮点集的浮点集取值范围;
利用预设量化比特数生成整数集取值范围,并利用所述浮点集取值范围和所述整数集取值范围生成缩放因子;
提取所述整数集取值范围中的最小整数值,以及提取所述浮点集取值范围中的最小浮点值,并利用所述缩放因子、所述最小整数值和所述最小浮点值生成偏移因子;
将所述缩放因子及所述偏移因子添加至所述第一量化参数。
可选地,所述利用所述第一量化参数对所述当前网络层中的浮点参数进行量化处理,得到所述当前训练模型对应的第一整数模型,包括:
利用所述缩放因子和所述偏移因子采取如下方式对所述当前网络层中的浮点参数进行所述量化处理,得到所述当前网络层对应的整数集:
将所述当前训练模型对应的所有整数集进行整合,得到所述第一整数模型。
可选地,所述对所述当前训练模型进行训练得到新模型,包括:
利用所述第一量化参数对所述第一整数模型中对应的整数集进行浮点参数还原,得到所述第一整数模型对应的浮点数模型;
利用所述浮点数模型计算损失值及梯度值,并利用所述损失值和所述梯度值对所述当前训练模型进行更新,得到所述新模型。
可选地,所述利用所述第一整数模型和所述第二整数模型计算所述当前训练模型与新模型之间的差量数据,包括:
利用所述第一整数模型中的每一参数与所述第二整数模型中的对应参数采取如下方式计算所述差量数据:
本发明还提供一种神经网络差量压缩装置,包括:
第一量化参数生成模块,用于获取神经网络的当前训练模型,并对所述当前训练模型中的各当前网络层执行量化参数生成操作,得到所述当前网络层对应的第一量化参数;
第一量化处理模块,用于利用所述第一量化参数对所述当前网络层中的浮点参数进行量化处理,得到所述当前训练模型对应的第一整数模型;
第二量化参数生成模块,用于对所述当前训练模型进行训练得到新模型,并对所述新模型中的各新网络层执行所述量化参数生成操作,得到所述新网络层对应的第二量化参数;
第二量化处理模块,用于利用所述第二量化参数对所述新网络层中的浮点参数进行所述量化处理,得到所述新模型对应的第二整数模型;
差量运算及压缩模块,用于利用所述第一整数模型和所述第二整数模型计算所述当前训练模型与新模型之间的差量数据,并对所述差量数据进行压缩。
可选地,所述第一量化参数生成模块,包括:
浮点集生成子模块,用于将所述当前网络层包含的所有浮点参数添加至浮点集,并确定所述浮点集的浮点集取值范围;
缩放因子生成子模块,用于利用预设量化比特数生成整数集取值范围,并利用所述浮点集取值范围和所述整数集取值范围生成缩放因子;
偏移因子生成子模块,用于提取所述整数集取值范围中的最小整数值,以及提取所述浮点集取值范围中的最小浮点值,并利用所述缩放因子、所述最小整数值和所述最小浮点值生成偏移因子;
添加子模块,用于将所述缩放因子及所述偏移因子添加至所述第一量化参数。
可选地,所述第一量化处理模块,包括:
量化处理子模块,用于利用所述缩放因子和所述偏移因子采取如下方式对所述当前网络层中的浮点参数进行所述量化处理,得到所述当前网络层对应的整数集:
整合子模块,用于将所述当前训练模型对应的所有整数集进行整合,得到所述第一整数模型。
本发明还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的神经网络差量压缩方法的步骤。
本发明还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的神经网络差量压缩方法的步骤。
本发明提供一种神经网络差量压缩方法,包括:获取神经网络的当前训练模型,并对所述当前训练模型中的各当前网络层执行量化参数生成操作,得到所述当前网络层对应的第一量化参数;利用所述第一量化参数对所述当前网络层中的浮点参数进行量化处理,得到所述当前训练模型对应的第一整数模型;对所述当前训练模型进行训练得到新模型,并对所述新模型中的各新网络层执行所述量化参数生成操作,得到所述新网络层对应的第二量化参数;利用所述第二量化参数对所述新网络层中的浮点参数进行所述量化处理,得到所述新模型对应的第二整数模型;利用所述第一整数模型和所述第二整数模型计算所述当前训练模型与新模型之间的差量数据,并对所述差量数据进行压缩。
可见,本发明在获取到神经网络的两个相邻版本,即当前训练模型和新训练模型时,并未对这两个模型之间的浮点参数差量进行统一的全局量化,而是为这些模型所包含的各网络层生成专用的量化参数,并利用这些量化参数为对应的网络层进行浮点参数量化处理,得到当前训练模型对应的第一整数模型以及新训练模型对应的第二整数模型,再利用这两个整数模型进行差量数据计算及差量压缩。换而言之,本发明为神经网络模型的每一网络层设置了生成的专用的量化参数,可采用不同力度对每一网络层进行针对性量化,相较于全局量化策略额外考虑了神经网络模型不同网络层之间的参数取值差异,能够有效避免将整个网络的浮点数参数看作一个集合来确定全局的量化参数所导致的量化误差增大及模型的精度下降问题。本发明还提供一种神经网络差量压缩装置、电子设备及存储介质,具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种神经网络差量压缩方法的流程图;
图2为本发明实施例所提供的两种训练模式的对比图;
图3为本发明实施例所提供的一种环形差量计算方式的示意图;
图4为本发明实施例所提供的一种神经网络差量压缩方法的整体框架图;
图5为本发明实施例所提供的一种神经网络差量压缩装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为减小神经网络训练文件的体积,通常会对神经网络两个相邻版本间的浮点参数差量进行统一的全局量化并进行后续压缩,然而全局量化策略并没有考虑神经网络不同层之间参数分布和取值的差异性,进而容易导致量化误差增加,并导致模型精度下降。有鉴于此,本发明提供一种神经网络差量压缩方法,可对神经网络模型的每一网络层进行专门量化,进而可避免将整个网络的浮点数参数看作一个集合来确定全局的量化参数所导致的量化误差增大及模型的精度下降问题。请参考图1,图1为本发明实施例所提供的一种神经网络差量压缩方法的流程图,该方法可以包括:
S101、获取神经网络的当前训练模型,并对当前训练模型中的各当前网络层执行量化参数生成操作,得到当前网络层对应的第一量化参数。
首先需要说明的是,为了寻找神经网络在相邻训练版本间的相似性,需要一个基准网络及一个目标网络。通常情况下,基准网络即为相邻训练版本中的前一版本,在本发明实施例中由当前训练模型表示;而目标网络则为相邻训练版本中的后一版本,在本发明实施例中由新模型表示。需要说明的是,本发明实施例并不限定具体的神经网络类型,也不限定该网络具体的训练内容,可根据实际应用需求进行设置及调整。
进一步,在神经网络领域中,神经网络通常为多层结构,且各网络层所使用的浮点参数在取值范围方面存在较大差异,进而由这些浮点参数计算得到的差量数据所对应的取值范围差异也很大。这导致全局量化策略难以取得理想的压缩比,且容易增加量化误差,难以有效平衡压缩比及误差率。而本发明实施例则是采用局部敏感的量化方案,可为神经网络的不同层确定专用的量化参数,相较于全局量化策略额外考虑了神经网络模型不同网络层之间的参数取值差异,能够有效提升神经网络差量压缩的精度和可压缩性。
下面对量化处理及量化参数进行介绍。量化处理是将取值范围为的浮点集F映射到取值范围为的整数集Q,其中每一网络层设置有对应的浮点集,用于存储该层中的所有浮点参数,而与浮点集相对应的整数集则用于存储由浮点参数经过量化处理后得到的整数参数,和分别表示最小浮点数和最大浮点数,和分别表示量化后可以表示的最小整数和最大整数。整数集的取值范围由预设的量化比特数q生成,量化比特数所确定的量化范围为,例如,当采用无符号8bit量化时,量化值的取值范围时0-255,即为0,为255。可以理解的是,量化比特数越小,则压缩强度越高,但损失越大,因此为有效平衡压缩比和损失率,通常可对量化比特数进行试验调整。需要说明的是,当前训练模型和新模型使用的量化比特数相等,各网络层对应的量化比特数均相等。为了更好地利用浮点参数在值域上的高相似性并尽可能减少尾数不确定性的影响,本发明实施例可使用线性量化方式将浮点集F中的原始浮点参数f映射到整数集Q中的量化整数值h,具体的,线性量化使用缩放因子来放缩取值范围的大小,并使用偏移因子对放缩后的范围进行偏移,计算方式如下所示:
其中,表示浮点参数,表示缩放因子,表示偏移因子,表示取整函数,表示浮点参数对应的整数参数。缩放因子S为用于缩放原取值范围的正实数,偏移因子Z为用于将缩放后的取值范围转换的偏移量,这两个因子的计算方式如下所示:
可见,量化的关键在于确定量化浮点参数集合F的量化参数S和Z。由于神经网络中每一层参数的取值范围存在显著差异,差距甚至可达几十倍,因此若将整个网络的浮点数参数纳入一个集合来确定全局的量化参数,必然导致量化误差增大,进而导致模型精度下降的问题。也正是如此,本发明实施例可为神经网络的每一网络层单独计算量化参数。此外,为每一层单独计算量化参数的方式还可将各层不同的浮点值取值范围量化为相同的整数取值范围,进而增大了各层不同的浮点参数量化为相同整数值的可能性,可在一定程度上增加单一版本中不同层之间量化参数的冗余性,为后续的压缩提供更大的可压缩性。在计算相邻版本之间的差量后,本来不同层中绝对值不同的差量也有可能被量化成相同的量化差值,而这都是采用全局量化所不能得到的。
在一种可能的情况中,对当前训练模型中的各当前网络层执行量化参数生成操作,得到当前网络层对应的第一量化参数,可以包括:
步骤11:将当前网络层包含的所有浮点参数添加至浮点集,并确定浮点集的浮点集取值范围。
步骤12:利用预设量化比特数生成整数集取值范围,并利用浮点集取值范围和整数集取值范围生成缩放因子。
步骤13:提取整数集取值范围中的最小整数值,以及提取浮点集取值范围中的最小浮点值,并利用缩放因子、最小整数值和最小浮点值生成偏移因子。
步骤14:将缩放因子及偏移因子添加至第一量化参数。
S102、利用第一量化参数对当前网络层中的浮点参数进行量化处理,得到当前训练模型对应的第一整数模型。
量化处理的具体过程请参考上述实施例,此处不再具体描述。
在一种可能的情况中,利用第一量化参数对当前网络层中的浮点参数进行量化处理,得到当前训练模型对应的第一整数模型,包括:
步骤21:利用缩放因子和偏移因子采取如下方式对当前网络层中的浮点参数进行量化处理,得到当前网络层对应的整数集:
步骤22:将当前训练模型对应的所有整数集进行整合,得到第一整数模型。
S103、对当前训练模型进行训练得到新模型,并对新模型中的各新网络层执行量化参数生成操作,得到新网络层对应的第二量化参数。
为适应不同的训练需求,本发明实施例可提供两种训练方式。第一种训练方式称为离线训练模式(Off-line quantization)。在该模式中,训练过程中的目标函数和梯度信息都是直接利用当前训练模型进行计算的,即整个完整的训练过程与常规过程是完全一样的。这也意味着在该模式中,当前训练模型的量化过程可独立于训练过程,即可在训练之前进行量化,也可在训练之后进行量化,量化操作并不会改变原有的参数值和训练过程。这正是如此,该模式的好处在于整个压缩过程并不会对训练过程有任何的影响,属于非侵入式设计,即不需要介入及修改训练系统。但由于此时量化过程是离线的,并没有给予网络训练任何的反馈,因此将无法修正量化误差对推理精度带来的影响。
然而在实际使用时,神经网络最重要的性能指标正是模型的推理精度。相关技术中,为降低量化误差对神经网络推理精度的影响,通常采用对量化后的网络模型进行后处理操作的方式来尽可能减少量化误差(如Delta-DNN网络中通过对多个误差因子进行测试选择)。然而,这种后处理操作在选择最佳配置的误差因子时,需要对多种配置进行遍历,并对每个配置进行完整的网络推理精度结果测试,这容易增加耗时并带来较大的测试开销。因此,为了减少模型推理精度的丢失,最大可能地减少和修正对神经网络量化压缩所带来的误差,本发明实施例还提供了另一种训练更新的模式,即在线训练模式(On-linequantization),可让网络在训练过程中动态调整量化误差,避免了后处理过程所带来的时间开销和计算开销。
下面对在线训练模式的具体过程进行介绍。该模式的主要思想在于将量化损失融入到神经网络的训练过程中。具体的,在得到当前训练模型对应的整数模型后,本发明实施例会对该整数模型进行浮点参数还原,得到对应的浮点数模型,并利用浮点数模型替代当前训练模型进行目标函数和梯度信息计算。这首先是因为整数版本仅用于量化浮点数,无法直接参与训练,因此需利用还原后的浮点数模型进行训练;更重要的是,由于量化是一个有损的压缩过程,无法避免信息丢失,因此浮点数模型实际为与当前训练模型相对应的、带有量化损失的模型,利用浮点数模型替代当前训练模型进行计算,并利用计算结果对当前训练模型进行更新,即能够将量化损失融入到当前训练模型的梯度下降中,达到神经网络自适应修正量化误差的效果。可以理解的是,整数模型的浮点参数还原过程即为量化过程的逆过程,具体可用如下公式进行表示:
为便于理解,请参考图2,图2为本发明实施例所提供的两种训练模式的对比图。
在一种可能的情况中,对当前训练模型进行训练得到新模型,可以包括:
步骤31:利用第一量化参数对第一整数模型中对应的整数集进行浮点参数还原,得到第一整数模型对应的浮点数模型;
步骤32:利用浮点数模型计算损失值及梯度值,并利用损失值和梯度值对当前训练模型进行更新,得到新模型。
需要说明的是,本发明实施例并不限定损失值及梯度值的计算方式,也不限定利用这两个数值对当前训练模型进行参数更新的具体过程,可参考神经网络的相关技术。
S104、利用第二量化参数对新网络层中的浮点参数进行量化处理,得到新模型对应的第二整数模型。
需要说明的是,针对步骤S103中的“对新模型中的各新网络层执行量化参数生成操作,得到新网络层对应的第二量化参数”以及步骤S104的限定说明,与针对步骤S101和步骤S102的限定说明相同,可参考上述实施例,此处不再赘述。
S105、利用第一整数模型和第二整数模型计算当前训练模型与新模型之间的差量数据,并对差量数据进行压缩。
在得到第一整数模型和第二整数模型之后,便可利用这两个整数模型确定当前训练模型与新模型之间的差量数据,进而对差量数据进行压缩。具体的,可将新模型的第二整数模型标记为A,当前训练版本的第一整数模型标记为B,第二整数模型的参数标记为,第二整数模型中的参数标记为,差量数据可表示如下:
为了避免这额外的一比特的浪费,可以将量化后参数的取值范围看成一个环状链,差量的方向总是从指向,从当前值出发向增加,增加到时继续增加就回到处,此时计算差量的方式如图3,图3为本发明实施例所提供的一种环形差量计算方式的示意图。当时,计算差量的方式与式五相同,直接等于二者量化值的差值;当时,可将量化范围看作一个环,此时差量为沿着环正向走到的距离,即到量化范围最大值的距离加上到量化范围最小值的距离再加上1,计算方式如式七。
在式九的计算方式下,由于第二整数模型中的量化值在与第一整数模型的量化值相减后,都需要再对取余才得到差量数据,因此在基于第一整数模型和差量数据对第二整数模型进行还原时,若的还原值在范围内,则该还原值为正确值;若的还原值大于,则说明计算差量前和的关系对应于式八中的情况。此时只需要对还原值也对取余即可。的还原过程可统一利用式十表示:
在一种可能的情况中,利用第一整数模型和第二整数模型计算当前训练模型与新模型之间的差量数据,可以包括:
步骤41:利用第一整数模型中的每一参数与第二整数模型中的对应参数采取如下方式计算差量数据:
由于神经网络的参数在不同版本之间实际存在较高的相似性,因此量化后的参数也具有较高的相似性。显然,每一对相似的量化参数在相减之后,得到的差量会出现显著地分布在 0 附近,因此通过计算差量,可以将相邻版本间参数的相似性转变为差量序列中每一个差量之间的相似性,可为后续压缩过程提供更大的可压缩空间。
在得到差量数据后,便可对差量数据进行压缩,得到最终的压缩文件。需要说明的是,本发明实施例并不限定压缩所使用的具体方式,可参考压缩的相关技术;本发明实施例也不限定压缩文件的具体形式,例如可以为一个二进制文件。可以理解的是,在进行模型还原时时,仅需执行上述过程的逆过程即可,即首先将压缩后的二进制文件解压得到差量数据,然后将解压后的差量数据添加至基准网络(第一整数模型)中得到目标网络的量化版本(第二整数模型),最后使用已存的量化参数对目标网络量化版本中对应的网络层进行浮点数还原即可。
最后,为便于理解,本发明实施例还提供图4,图4为本发明实施例所提供的一种神经网络差量压缩方法的整体框架图。
基于上述实施例,本发明在获取到神经网络的两个相邻版本,即当前训练模型和新训练模型时,并未对这两个模型之间的浮点参数差量进行统一的全局量化,而是为这些模型所包含的各网络层生成专用的量化参数,并利用这些量化参数为对应的网络层进行浮点参数量化处理,得到当前训练模型对应的第一整数模型以及新训练模型对应的第二整数模型,再利用这两个整数模型进行差量数据计算及差量压缩。换而言之,本发明为神经网络模型的每一网络层设置了生成的专用的量化参数,可采用不同力度对每一网络层进行针对性量化,相较于全局量化策略额外考虑了神经网络模型不同网络层之间的参数取值差异,能够有效避免将整个网络的浮点数参数看作一个集合来确定全局的量化参数所导致的量化误差增大及模型的精度下降问题。
下面对本发明实施例提供的神经网络差量压缩装置、电子设备及存储介质进行介绍,下文描述的神经网络差量压缩装置、电子设备及存储介质与上文描述的神经网络差量压缩方法可相互对应参照。
请参考图5,图5为本发明实施例所提供的一种神经网络差量压缩装置的结构框图,该装置可以包括:
第一量化参数生成模块501,用于获取神经网络的当前训练模型,并对当前训练模型中的各当前网络层执行量化参数生成操作,得到当前网络层对应的第一量化参数;
第一量化处理模块502,用于利用第一量化参数对当前网络层中的浮点参数进行量化处理,得到当前训练模型对应的第一整数模型;
第二量化参数生成模块503,用于对当前训练模型进行训练得到新模型,并对新模型中的各新网络层执行量化参数生成操作,得到新网络层对应的第二量化参数;
第二量化处理模块504,用于利用第二量化参数对新网络层中的浮点参数进行量化处理,得到新模型对应的第二整数模型;
差量运算及压缩模块505,用于利用第一整数模型和第二整数模型计算当前训练模型与新模型之间的差量数据,并对差量数据进行压缩。
可选地,第一量化参数生成模块501,可以包括:
浮点集生成子模块,用于将当前网络层包含的所有浮点参数添加至浮点集,并确定浮点集的浮点集取值范围;
缩放因子生成子模块,用于利用预设量化比特数生成整数集取值范围,并利用浮点集取值范围和整数集取值范围生成缩放因子;
偏移因子生成子模块,用于提取整数集取值范围中的最小整数值,以及提取浮点集取值范围中的最小浮点值,并利用缩放因子、最小整数值和最小浮点值生成偏移因子;
添加子模块,用于将缩放因子及偏移因子添加至第一量化参数。
可选地,第一量化处理模块502,可以包括:
量化处理子模块,用于利用缩放因子和偏移因子采取如下方式对当前网络层中的浮点参数进行量化处理,得到当前网络层对应的整数集:
整合子模块,用于将当前训练模型对应的所有整数集进行整合,得到第一整数模型。
可选地,第二量化参数生成模块503,可以包括:
还原子模块,用于利用第一量化参数对第一整数模型中对应的整数集进行浮点参数还原,得到第一整数模型对应的浮点数模型;
训练子模块,用于利用浮点数模型计算损失值及梯度值,并利用损失值和梯度值对当前训练模型进行更新,得到新模型。
可选地,差量运算及压缩模块505,可以包括:
差量运算子模块,用于利用第一整数模型中的每一参数与第二整数模型中的对应参数采取如下方式计算差量数据:
本发明实施例还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的神经网络差量压缩方法的步骤。
由于电子设备部分的实施例与神经网络差量压缩方法部分的实施例相互对应,因此电子设备部分的实施例请参见神经网络差量压缩方法部分的实施例的描述,这里暂不赘述。
本发明实施例还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例的神经网络差量压缩方法的步骤。
由于存储介质部分的实施例与神经网络差量压缩方法部分的实施例相互对应,因此存储介质部分的实施例请参见神经网络差量压缩方法部分的实施例的描述,这里暂不赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种神经网络差量压缩方法、装置、电子设备及存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种神经网络差量压缩方法,其特征在于,包括:
获取神经网络的当前训练模型,并对所述当前训练模型中的各当前网络层执行量化参数生成操作,得到所述当前网络层对应的第一量化参数;
利用所述第一量化参数对所述当前网络层中的浮点参数进行量化处理,得到所述当前训练模型对应的第一整数模型;
对所述当前训练模型进行训练得到新模型,并对所述新模型中的各新网络层执行所述量化参数生成操作,得到所述新网络层对应的第二量化参数;
利用所述第二量化参数对所述新网络层中的浮点参数进行所述量化处理,得到所述新模型对应的第二整数模型;
利用所述第一整数模型和所述第二整数模型计算所述当前训练模型与新模型之间的差量数据,并对所述差量数据进行压缩。
2.根据权利要求1所述的神经网络差量压缩方法,其特征在于,所述对所述当前训练模型中的各当前网络层执行量化参数生成操作,得到所述当前网络层对应的第一量化参数,包括:
将所述当前网络层包含的所有浮点参数添加至浮点集,并确定所述浮点集的浮点集取值范围;
利用预设量化比特数生成整数集取值范围,并利用所述浮点集取值范围和所述整数集取值范围生成缩放因子;
提取所述整数集取值范围中的最小整数值,以及提取所述浮点集取值范围中的最小浮点值,并利用所述缩放因子、所述最小整数值和所述最小浮点值生成偏移因子;
将所述缩放因子及所述偏移因子添加至所述第一量化参数。
4.根据权利要求1所述的神经网络差量压缩方法,其特征在于,所述对所述当前训练模型进行训练得到新模型,包括:
利用所述第一量化参数对所述第一整数模型中对应的整数集进行浮点参数还原,得到所述第一整数模型对应的浮点数模型;
利用所述浮点数模型计算损失值及梯度值,并利用所述损失值和所述梯度值对所述当前训练模型进行更新,得到所述新模型。
6.一种神经网络差量压缩装置,其特征在于,包括:
第一量化参数生成模块,用于获取神经网络的当前训练模型,并对所述当前训练模型中的各当前网络层执行量化参数生成操作,得到所述当前网络层对应的第一量化参数;
第一量化处理模块,用于利用所述第一量化参数对所述当前网络层中的浮点参数进行量化处理,得到所述当前训练模型对应的第一整数模型;
第二量化参数生成模块,用于对所述当前训练模型进行训练得到新模型,并对所述新模型中的各新网络层执行所述量化参数生成操作,得到所述新网络层对应的第二量化参数;
第二量化处理模块,用于利用所述第二量化参数对所述新网络层中的浮点参数进行所述量化处理,得到所述新模型对应的第二整数模型;
差量运算及压缩模块,用于利用所述第一整数模型和所述第二整数模型计算所述当前训练模型与新模型之间的差量数据,并对所述差量数据进行压缩。
7.根据权利要求6所述的神经网络差量压缩装置,其特征在于,所述第一量化参数生成模块,包括:
浮点集生成子模块,用于将所述当前网络层包含的所有浮点参数添加至浮点集,并确定所述浮点集的浮点集取值范围;
缩放因子生成子模块,用于利用预设量化比特数生成整数集取值范围,并利用所述浮点集取值范围和所述整数集取值范围生成缩放因子;
偏移因子生成子模块,用于提取所述整数集取值范围中的最小整数值,以及提取所述浮点集取值范围中的最小浮点值,并利用所述缩放因子、所述最小整数值和所述最小浮点值生成偏移因子;
添加子模块,用于将所述缩放因子及所述偏移因子添加至所述第一量化参数。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的神经网络差量压缩方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的神经网络差量压缩方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210255131.9A CN114418098A (zh) | 2022-03-16 | 2022-03-16 | 一种神经网络差量压缩方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210255131.9A CN114418098A (zh) | 2022-03-16 | 2022-03-16 | 一种神经网络差量压缩方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114418098A true CN114418098A (zh) | 2022-04-29 |
Family
ID=81262735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210255131.9A Pending CN114418098A (zh) | 2022-03-16 | 2022-03-16 | 一种神经网络差量压缩方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114418098A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2739956A1 (en) * | 2010-05-11 | 2011-11-11 | Dassault Systemes | Compression and decompression of numerical data |
CN108734266A (zh) * | 2017-04-21 | 2018-11-02 | 展讯通信(上海)有限公司 | 深度神经网络模型的压缩方法及装置、终端、存储介质 |
-
2022
- 2022-03-16 CN CN202210255131.9A patent/CN114418098A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2739956A1 (en) * | 2010-05-11 | 2011-11-11 | Dassault Systemes | Compression and decompression of numerical data |
CN108734266A (zh) * | 2017-04-21 | 2018-11-02 | 展讯通信(上海)有限公司 | 深度神经网络模型的压缩方法及装置、终端、存储介质 |
Non-Patent Citations (1)
Title |
---|
SHUYU ZHANG ET.AL: "QD-Compressor: a Quantization-based Delta Compression Framework for Deep Neural Networks", 《2021 IEEE 39TH INTERNATIONAL CONFERENCE ON COMPUTER DESIGN (ICCD)》, 20 December 2021 (2021-12-20), pages 542 - 550 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dettmers et al. | The case for 4-bit precision: k-bit inference scaling laws | |
CN110222821B (zh) | 基于权重分布的卷积神经网络低位宽量化方法 | |
Drumond et al. | Training dnns with hybrid block floating point | |
Köster et al. | Flexpoint: An adaptive numerical format for efficient training of deep neural networks | |
KR20180043172A (ko) | 뉴럴 네트워크 양자화(neural network quantization) 방법 및 장치 | |
KR20180043154A (ko) | 뉴럴 네트워크 양자화(neural network quantization) 방법 및 장치 | |
CN109635935B (zh) | 基于模长聚类的深度卷积神经网络模型自适应量化方法 | |
Liu et al. | Improving neural network efficiency via post-training quantization with adaptive floating-point | |
Kuzmin et al. | Fp8 quantization: The power of the exponent | |
CN109859281B (zh) | 一种稀疏神经网络的压缩编码方法 | |
EP2441049A2 (en) | Method for encoding/decoding a 3d mesh model that comprises one or more components | |
CN110036384B (zh) | 信息处理设备和信息处理方法 | |
CN111147862B (zh) | 一种基于目标编码的端到端图像压缩方法 | |
CN109740737B (zh) | 卷积神经网络量化处理方法、装置及计算机设备 | |
US11531884B2 (en) | Separate quantization method of forming combination of 4-bit and 8-bit data of neural network | |
Tomić et al. | Performance of Post‐Training Two‐Bits Uniform and Layer‐Wise Uniform Quantization for MNIST Dataset from the Perspective of Support Region Choice | |
US20240080038A1 (en) | Compression of Data that Exhibits Mixed Compressibility | |
TW202013261A (zh) | 算數框架系統及操作浮點至定點算數框架的方法 | |
CN114418098A (zh) | 一种神经网络差量压缩方法、装置、电子设备及存储介质 | |
CN113537474A (zh) | 多精度量化元神经网络训练及精度选取方法 | |
WO2021247840A2 (en) | Systems and methods for improved machine-learned compression | |
CN112702600A (zh) | 一种图像编解码神经网络分层定点化方法 | |
Sun et al. | Efficient vector quantization using genetic algorithm | |
WO2022247368A1 (en) | Methods, systems, and mediafor low-bit neural networks using bit shift operations | |
Sakthi et al. | Speech Recognition model compression |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20220429 |