存储算术程序的计算机可读记录介质、算术方法和设备与流程

文档序号:33452313发布日期:2023-03-15 01:15阅读:29来源:国知局
存储算术程序的计算机可读记录介质、算术方法和设备与流程

1.本文所讨论的实施方式涉及存储算术程序的非暂态计算机可读存储介质等。


背景技术:

2.在深度学习中,存在对数据值进行量化以加速用于学习模型的机器学习的处理的方法。此处,将描述对用于机器学习的张量进行量化的现有技术。
3.张量的值由公式(1)表示。张量的元素数据由fp格式(s-ebit-mbit)和指数部分偏差b表示。例如,在由公式(1)指示的示例中,s表示1位固定符号位。指数部分e中的位数由ebit表示。尾数m中的位数由mbit表示。指数部分的偏差值由b表示。张量中的所有元素使用相同的ebit、mbit和b。
4.[公式1]
[0005][0006]
在现有技术中,由于上限量化和下限量化而存在舍入范围。图9是用于说明现有技术的图。图9中的直方图的横轴对应于指数部分e的值,而纵轴表示元素的数量。根据现有技术,在量化目标范围被设置为[a,a+e]的情况下,将指数部分e小于a的下限范围a1中的元素舍入为0。此外,将指数部分e等于或大于a+e的上限范围a2中的元素舍入为2
(a+e)
。量化指数宽度由e表示,例如e=2
ebit

[0007]
根据现有技术,基于量化目标张量t的元素的最大绝对值(max_e)来计算量化目标范围。基于公式(2)计算最大绝对值。
[0008]
[公式2]
[0009][0010]
作为相关技术公开了国际公布小册子第wo2020/065874号、国际公布小册子第wo2019/146189号和美国专利申请公布第2019/0340492号。


技术实现要素:

[0011]
技术问题
[0012]
然而,上述现有技术具有在对张量进行量化时张量的数学性质改变的问题。
[0013]
图10是用于说明现有技术的问题的图。图10中的直方图的横轴对应于指数部分e的值,而纵轴表示元素的数量。在指数部分e的元素的一部分具有大值的情况下,量化目标范围r1被向上偏差,并且其他元素的大部分被舍入为0。在图10所示的示例中,张量中等于或大于99.9%的非零元素被舍入为0。当以这种方式舍入时,不保存诸如张量的秩数的特性,并且数学性质改变。
[0014]
在一个方面,实施方式旨在提供在不改变张量的数学性质的情况下能够对张量进行量化的算术程序、算术方法和算术设备。
[0015]
问题的解决方案
[0016]
根据实施方式的一个方面,提供了一种算术处理的计算机实现方法。在示例中,该方法包括:通过在由多维阵列表示的张量的各个维度中的每个维度的方向上投射最大绝对值来确定各个维度的最大绝对值,在张量中针对阵列的元素中的每个元素设置了值;确定最小值,该最小值指示各个维度的最大绝对值当中的最小的最大绝对值;以及基于最小值针对张量设置量化范围。
[0017]
发明的有益效果
[0018]
在不改变张量的数学性质的情况下对张量进行量化成为可能。
附图说明
[0019]
图1是用于说明根据第一实施方式的算术设备的处理的图;
[0020]
图2是示出根据第一实施方式的算术设备的量化和现有技术的量化之间的比较结果的图;
[0021]
图3是示出根据第一实施方式的算术设备的配置的功能框图;
[0022]
图4是示出根据第一实施方式的算术设备的处理过程的流程图;
[0023]
图5是用于说明根据第二实施方式的算术设备的处理的图;
[0024]
图6是示出根据第二实施方式的算术设备的配置的功能框图;
[0025]
图7是示出根据第二实施方式的算术设备的处理过程的流程图;
[0026]
图8是示出实现与根据实施方式的算术设备的功能类似的功能的计算机的示例性硬件配置的图;
[0027]
图9是用于说明现有技术的图;以及
[0028]
图10是用于说明现有技术的问题的图。
具体实施方式
[0029]
在下文中,将参照附图详细描述在本技术中公开的算术程序、算术方法和算术设备的实施方式。注意,实施方式不限于本公开内容。
[0030]
[第一实施方式]
[0031]
根据第一实施方式的算术设备执行以下处理来设置量化范围,以便在不改变张量的数学性质的情况下对张量进行量化。
[0032]
图1是用于说明根据第一实施方式的算术设备的处理的图。图1使用二维张量ta给出了说明。针对张量ta的每个元素设置指数部分e的值。例如,分别针对张量ta的元素(0,0)、(0,1)和(0,2)设置“16”、“1”和“4”。分别针对张量ta的元素(1,0)、(1,1)和(1,2)设置值“1”、“1024”和“0”。分别针对张量ta的元素(2,0)、(2,1)和(2,2)设置值“128”、“1”和“128”。
[0033]
算术设备在维度中的每个维度的方向上投射最大绝对值,从而确定维度的各个最大绝对值。例如,算术设备在元素(0,0)、(0,1)和(0,2)的行方向上投射最大绝对值,从而确定“16”。算术设备在元素(1,0)、(1,1)和(1,2)的行方向上投射最大绝对值,从而确定“1024”。算术设备在元素(2,0)、(2,1)和(2,2)的行方向上投射最大绝对值,从而确定“128”。
[0034]
算术设备在元素(0,0)、(1,0)和(2,0)的列方向上投射最大绝对值,从而确定“128”。算术设备在元素(0,1)、(1,1)和(2,1)的列方向上投射最大绝对值,从而确定“1024”。算术设备在元素(0,2)、(1,2)和(2,2)的列方向上投射最大绝对值,从而确定“128”。
[0035]
算术设备确定由上述处理确定的各个维度的最大绝对值当中的最小的最大绝对值。在以下描述中,最小的最大绝对值将被称为“最小值a”。在图1所示的示例中,算术设备从最大绝对值16、1024、128、128、1024和128中确定最小值a“16”。
[0036]
算术设备基于最小值a指定“rank_e”。基于公式(3),指定rank_e。当最小值a=16时,rank_e=4。
[0037]
rank_e=[log2a]...(3)
[0038]
算术设备基于rank_e设置量化范围。例如,假设量化范围是[rank_e,rank_e+e]。此处,e表示量化指数宽度,并且被预先指定。在rank_e=4且e=2的情况下,量化范围是[4,5]。
[0039]
同时,根据现有技术,基于max_e确定量化范围。存在max_e=log2(a'+e)的关系,并且a'表示张量ta的每个元素的最大绝对值。基于max_e的量化范围为[log2a',log2(a'+e)]。例如,图1中示出的张量ta的最大绝对值a'是“1024”,并且基于max_e的量化范围是[9,10]。
[0040]
图2是示出根据第一实施方式的算术设备的量化与现有技术的量化之间的比较结果的图。如图2所示,当利用rank_e执行量化时,量化范围是[4,5],因此张量ta被量化为张量tb。根据这种量化,绝对值大于16(=24)的元素保持为非零,由此抑制了秩的降低,并且在不改变张量的数学性质的情况下对张量进行量化变得可能。
[0041]
同时,如在现有技术中利用max_e进行量化时,量化范围是“9,10”,并且张量ta被量化为张量tc。根据这种量化,只有最大值1024(=2
10
)变成非零元素,并且秩也被降低至1,由此极大地损害了张量的数学性质。
[0042]
接下来,将描述根据第一实施方式的算术设备的示例性配置。图3是示出根据第一实施方式的算术设备的配置的功能框图。如图3所示,该算术设备100包括通信单元110、输入单元120、显示单元130、存储单元140和控制单元150。
[0043]
通信单元110有线或无线地连接至外部设备等,并与外部设备等交换信息。例如,通信单元110由网络接口卡(nic)等实现。通信单元110可以连接至网络(未示出)。通信单元110可以经由网络从外部设备接收量化目标张量140a。
[0044]
输入单元120是向算术设备100输入各种类型的信息的输入设备。输入单元120对应于键盘、鼠标、触摸板等。
[0045]
显示单元130是显示从控制单元150输出的信息的显示设备。显示单元130对应于液晶显示器、有机电致发光(el)显示器、触摸板等。
[0046]
存储单元140包括量化目标张量140a和量化张量140b。存储单元140例如由半导体存储器元件诸如随机存取存储器(ram)、闪存等或存储设备诸如硬盘、光盘等来实现。
[0047]
量化目标张量140a指示要被量化的张量。在第一实施方式中,量化目标张量140a是参照图1描述的二维张量ta。
[0048]
量化张量140b是作为对量化目标张量140a进行量化的结果而获得的张量。例如,量化张量140b对应于参照图2描述的张量tb。
[0049]
控制单元150包括指定单元151、设置单元152和量化单元153。控制单元150例如由中央处理单元(cpu)或微处理单元(mpu)实现。此外,控制单元150可以由例如集成电路诸如专用集成电路(asic)、现场可编程门阵列(fpga)等来实现。
[0050]
指定单元151在量化目标张量140a的每个维度的方向上投射最大绝对值,从而确定每个维度的最大绝对值。指定单元151确定指示在各个维度的最大绝对值当中的最小的最大绝对值的最小值a。指定单元151将关于最小值a的信息输出至设置单元152。
[0051]
将参照图1描述指定单元151的处理。指定单元151在张量ta(量化目标张量140a)的元素(0,0)、(0,1)和(0,2)的行方向上投射最大绝对值,从而确定“16”。指定单元151在元素(1,0)、(1,1)和(1,2)的行方向上投射最大绝对值,从而确定“1024”。指定单元151在元素(2,0)、(2,1)和(2,2)的行方向上投射最大绝对值,从而确定“128”。
[0052]
指定单元151在元素(0,0)、(1,0)和(2,0)的列方向上投射最大绝对值,从而确定“128”。指定单元151在元素(0,1)、(1,1)和(2,1)的列方向上投射最大绝对值,从而确定“1024”。指定单元151在元素(0,2)、(1,2)和(2,2)的列方向上投射最大绝对值,从而确定“128”。
[0053]
指定单元151从由上述处理确定的各个维度的最大绝对值中确定最小值a。在图1所示的示例中,指定单元151从最大绝对值16、1024、128、128、1024和128中确定最小值a“16”。
[0054]
设置单元152基于最小值a设置针对量化目标张量140a的量化范围。设置单元152将关于量化范围的信息输出至量化单元153。
[0055]
设置单元152基于最小值a和公式(3)指定rank_e。设置单元152基于rank_e设置量化范围[rank_e,rank_e+e]。例如,在最小值a=16的情况下,rank_e=4并且量化范围是[4,5]。
[0056]
量化单元153在从设置单元152接收的量化范围内对量化目标张量140a进行量化,从而生成量化张量140b。
[0057]
将参照图2描述量化单元153的处理。此处,量化目标张量140a是张量ta,量化范围是[4,5]。根据这种量化,绝对值大于16(=24)的元素保持为非零,例如,张量ta的量化结果是张量tb(量化张量140b)。
[0058]
量化单元153可以将量化张量140b传输至用作量化目标张量140a的传输源的外部设备。例如,这种外部设备使用量化张量140b执行学习模型的机器学习。注意,虽然省略了图示,但是算术设备100可以使用量化张量140b执行学习模型的机器学习。
[0059]
接下来,将描述根据第一实施方式的算术设备100的示例处理过程。图4是示出根据第一实施方式的算术设备的处理过程的流程图。如图4所示,算术设备100的指定单元151获得量化目标张量140a(步骤s101)。
[0060]
指定单元151针对量化目标张量140a的所有元素投射每个维度的最大绝对值(步骤s102)。指定单元151确定所有维度的最大绝对值当中的最小值a(步骤s103)。
[0061]
算术设备100的设置单元152基于最小值a计算rank_e(步骤s104)。设置单元152基于rank_e设置量化范围[rank_e,rank_e+e](步骤s105)。
[0062]
算术设备100的量化单元153在量化范围内对量化目标张量140a进行量化(步骤s106)。量化单元153输出量化张量140b(步骤s107)。
[0063]
接下来,将描述根据第一实施方式的算术设备100的效果。算术设备100在量化目标张量140a的每个维度的方向上投射最大绝对值以确定每个维度的最大绝对值,并从各个维度的最大绝对值中确定最小值a。算术设备100基于最小值a设置量化范围以执行量化。这使得在不改变张量的数学性质的情况下对张量进行量化成为可能。
[0064]
例如,如参照图2所述,由于根据算术设备100的量化范围是[4,5],因此张量ta被量化为张量tb。根据这种量化,绝对值大于16(=24)的元素保持为非零,由此抑制了秩的降低并且保留了张量的数学性质。
[0065]
同时,如在现有技术中利用max_e执行量化时,量化范围是“9,10”,并且张量ta被量化为张量tc。根据这种量化,只有最大值1,024(=2
10
)变成非零元素,并且秩也被降低至1,由此极大地损害了张量的数学性质。
[0066]
[第二实施方式]
[0067]
图5是用于说明根据第二实施方式的算术设备的处理的图。如图5所示,以与现有技术类似的方式,根据第二实施方式的算术设备根据量化目标张量ta计算最大绝对值,从而获得max_e。算术设备执行与第一实施方式中的计算类似的计算,并根据量化目标张量ta计算rank_e。算术设备确定rank_e和max_e的较小的最小值e0。基于公式(4)确定最小值e0。算术设备使用最小值e0设置量化范围[e0,e0+e],并对量化目标张量ta进行量化,从而获得量化张量tb。
[0068]
e0=min(rank_e,max_e)...(4)
[0069]
根据第二实施方式的算术设备确定rank_e和max_e中的较小的最小值e0,并使用最小值e0设置量化范围[e0,e0+e],由此能够对张量进行更适当地量化,并提高在执行机器学习时的学习精度。
[0070]
图6是示出根据第二实施方式的算术设备的配置的功能框图。如图6所示,该算术设备200包括通信单元210、输入单元220、显示单元230、存储单元240和控制单元250。
[0071]
关于通信单元210、输入单元220和显示单元230的描述类似于参照图3描述的关于通信单元110、输入单元120和显示单元130的描述。
[0072]
存储单元240包括量化目标张量240a和量化张量240b。存储单元240例如由半导体存储器元件诸如ram、闪存等或存储设备诸如硬盘、光盘等来实现。
[0073]
关于量化目标张量240a的描述类似于关于量化目标张量140a的描述。关于量化张量240b的描述类似于关于量化张量140b的描述。
[0074]
控制单元250包括计算单元251、指定单元252、设置单元253和量化单元254。控制单元250例如由cpu或mpu实现。此外,控制单元250可以由例如集成电路诸如asic、fpga等来实现。
[0075]
计算单元251计算max_e,max_e是量化目标张量240a的所有元素当中的最大绝对值。例如,计算单元251使用上述公式(2)计算max_e。计算单元251将关于max_e的信息输出至设置单元253。
[0076]
指定单元252基于量化目标张量240a确定最小值a。指定单元252确定最小值a的处理类似于第一实施方式中描述的指定单元151确定最小值a的处理。指定单元252将关于最小值a的信息输出至设置单元253。
[0077]
设置单元253基于最小值a和公式(3)指定rank_e。设置单元253基于公式(4)、
rank_e和max_e来确定最小值e0。设置单元253使用最小值e0设置量化范围[e0,e0+e]。设置单元253将关于量化范围的信息输出至量化单元254。
[0078]
量化单元254在从设置单元253接收的量化范围内对量化目标张量240a进行量化,从而生成量化张量240b。量化单元254的处理类似于第一实施方式中描述的量化单元153的处理。
[0079]
接下来,将描述根据第二实施方式的算术设备200的示例处理过程。图7是示出根据第二实施方式的算术设备的处理过程的流程图。算术设备200的计算单元251获得量化目标张量240a(步骤s201)。
[0080]
计算单元251基于量化目标张量240a计算max_e(步骤s202)。算术设备200的指定单元252针对量化目标张量240a的所有元素投射每个维度的最大绝对值(步骤s203)。指定单元252确定所有维度的最大绝对值当中的最小值a(步骤s204)。
[0081]
算术设备200的设置单元253基于最小值a计算rank_e(步骤s205)。设置单元253确定rank_e和max_e的最小值e0(步骤s206)。设置单元253基于最小值e0设置量化范围[e0,e0+e](步骤s207)。
[0082]
算术设备200的量化单元254在量化范围内对量化目标张量240a进行量化(步骤s208)。量化单元254输出量化张量240b(步骤s209)。
[0083]
接下来,将描述根据第二实施方式的算术设备200的效果。算术设备200根据从量化目标张量240a获得的max_e和rank_e来确定最小值e0,并基于最小值e0设置量化范围以执行量化。作为结果,对张量进行更适当地量化并提高在执行机器学习时的学习精度成为可能。
[0084]
同时,虽然在上述第二实施方式中设置单元253将rank_e和max_e中较小的一个设置为最小值e0以设置量化范围,但并不限于此。设置单元253可以计算rank_e和max_e的加权和ew,以基于加权和ew设置量化范围。
[0085]
例如,设置单元253基于公式(5)计算加权和ew。在公式(5)中,c表示常数,其在0≤c≤l的范围内进行设置。设置单元253将量化范围设置为[ew,ew+e]。
[0086]
ew=c
*
rank_e+(1-c)*max_e...(5)
[0087]
此处,发明人测量了通过现有技术进行量化的张量(第一张量)、通过第一实施方式的方法进行量化的张量(第二张量)和通过第二实施方式的方法(加权和)进行量化的张量(第三张量)的学习模型的学习精度。作为结果,第一张量的学习精度为“79.30%”,第二张量的学习精度为“79.89%”,第三张量的学习精度为“80.27%”。例如,根据第一实施方式的量化方法和第二实施方式的量化方法,与现有技术相比,可以提高在执行机器学习时的学习精度。
[0088]
接下来,将描述实现与上述实施方式中所示的算术设备200(100)的功能类似的功能的计算机的示例性硬件配置。图8是示出实现与根据实施方式的算术设备的功能类似的功能的计算机的示例性硬件配置的图。
[0089]
如图8所示,计算机300包括执行各种类型的算术处理的cpu 301、接收来自用户的数据输入的输入设备302以及显示器303。此外,计算机300包括经由有线或无线网络与外部设备等交换数据的通信设备304,以及接口设备305。此外,计算机300包括临时存储各种类型的信息的ram 306以及硬盘设备307。此外,设备301至307中的每一个连接至总线308。
[0090]
硬盘设备307包括计算程序307a、指定程序307b、设置程序307c和量化程序307d。此外,cpu 301读取程序307a至307d中的每一个,并且将其加载至ram 306中。
[0091]
计算程序307a用作计算处理306a。指定程序307b用作指定处理306b。设置程序307c用作设置处理306c。量化程序307d用作量化处理306d。
[0092]
计算处理306a的处理对应于计算单元251的处理。指定处理306b的处理对应于指定单元151和252的处理。设置处理306c的处理对应于设置单元152和253的处理。量化处理306d的处理对应于量化单元153和254的处理。
[0093]
注意,程序307a至307d中的每一个可以不必预先存储在硬盘设备307中。例如,程序中的每一个可以存储在要插入到计算机300中的“便携式物理介质”例如软盘(fd)、致密盘只读存储器(cd-rom)、数字多功能盘(dvd)、磁光盘和ic卡等中。然后,计算机300可以读取并执行程序307a至307d中的每一个。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1