首页> 中国专利> 信息处理设备、计算机可读存储介质和神经网络计算方法

信息处理设备、计算机可读存储介质和神经网络计算方法

摘要

提供了信息处理设备、计算机可读存储介质和神经网络计算方法。处理器根据第一定点数格式将从训练获得的多个第一中间数据量化为第一定点数的中间数据,获得第一中间数据与第一定点数的中间数据之间的第一量化误差,根据第二定点数格式将第一中间数据量化为第二定点数的中间数据,并且获得第一中间数据与第二定点数的中间数据之间的第二量化误差。处理器将第一量化误差与第二量化误差进行比较,并将具有量化误差中的较低量化误差的定点数格式确定为确定的定点数格式,并且利用通过根据确定的定点数格式量化多个第一中间数据而获得的定点数的中间数据来执行训练运算。

著录项

  • 公开/公告号CN113111998A

    专利类型发明专利

  • 公开/公告日2021-07-13

    原文格式PDF

  • 申请/专利权人 富士通株式会社;

    申请/专利号CN202011343338.9

  • 发明设计人 坂井靖文;

    申请日2020-11-25

  • 分类号G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构11227 北京集佳知识产权代理有限公司;

  • 代理人康建峰;崔俊红

  • 地址 日本神奈川县

  • 入库时间 2023-06-19 11:49:09

说明书

技术领域

本发明涉及信息处理设备、神经网络计算程序和神经网络计算方法。

背景技术

近年来,神经网络在诸如图像识别领域的领域中已经取得了显著的进展。在这样的领域中,通过使用深度神经网络(下文中称为“DNN”),即较复杂配置的神经网络(下文中称为“NN”),改善了图像识别率。利用具有较复杂配置的NN或DNN(下文中统称为“NN等”),增加了计算机的运算次数和存储使用量。

作为减少在执行针对NN等的运算的计算机中的运算次数和存储使用量的方法,提出了将中间数据包括例如NN等中的权重等参数和输入至神经元的激活数据量化(或转换)成具有低位数的定点数。例如,在.Rastegari等人的“XNOR-Net ImageNet ClassificationUsing Binary Convolutional Neural Networks”,arxiv,2016,日本公开特许公报第2018-124681号和日本专利申请公开第2018-10618号中公开了这样的方法。通过量化中间数据以减少位数,实现了减少中间数据的运算量和用于存储中间数据的存储量。即使通过量化可以表示的中间数据的准确度低,NN等的图像识别率也不会显著下降。另一项现有技术是A.Canziani等人的“An Analysis of Deep Neural Network Models for PracticalApplications”,arxiv,2016。

发明内容

已经提出了一种方法,在该方法中,当将中间数据量化为定点数时,基于中间数据中的作为无符号位(如果符号位为0,则无符号位意为“1”,或者如果符号位为1,则无符号位意为“0”)的最高有效位的位置的分布,来确定具有定点数的整数部分和小数部分的位宽的Q格式。日本专利申请公开第2018-124681号与此对应。

然而,尽管基于无符号最高有效位的位置的分布来确定Q格式使得能够稍微适当地设置Q格式,但是这不一定确保检测到最佳的Q格式。因此,在不期望的情况下,中间数据的有效位(或有效的位)(即为无符号位,当为正时为“1”,当为负时为“0”)的位置可能与Q格式的位范围的位置显著不同,从而导致由量化(或转换)为定点数所引起的量化误差的增加。在这种情况下,NN等的识别精度和准确率会显著下降。

因此,本实施方式的第一方面的目的是提供减少量化误差的信息处理设备、神经网络计算程序和神经网络计算方法。

根据实施方式的一方面,提供了一种执行神经网络的训练的信息处理设备,该信息处理设备包括:处理器和由该处理器访问的存储器,其中,该处理器:根据具有第一位长度的第一定点数格式和定点数的最低有效位的第一指数信息,将通过训练的预定运算获得的多个第一中间数据分别量化为多个第一定点数的中间数据;分别获得多个第一中间数据与多个第一定点数的中间数据之间的第一量化误差;根据具有第二位长度的第二定点数格式和定点数的最低有效位的第二指数信息,将多个第一中间数据分别量化为多个第二定点数的中间数据;分别获得多个第一中间数据与多个第二定点数的中间数据之间的第二量化误差;将第一量化误差与第二量化误差进行比较,并将具有第一量化误差和第二量化误差中的较低量化误差的定点数格式确定为确定的定点数格式;并且利用通过根据确定的定点数格式量化多个第一中间数据而获得的多个确定的定点数的中间数据来执行预定运算。

附图说明

图1是示出深度神经网络(DNN)的配置的示例的图。

图2是示出根据本实施方式的包括计算处理单元的信息处理设备的配置的示例的图。

图3是示出训练典型NN等的流程图的图。

图4示出了正向传播处理和反向传播处理的示例。

图5是示出根据本实施方式的训练NN等的流程图的图。

图6示出了定点数格式。

图7是示出关于中间数据的定点数格式的候选的图。

图8是示出用于确定定点数格式的处理的图。

图9是示出上述定点数格式确定处理的具体示例的图。

图10是示出加速器处理器14的配置的示例的图。

图11示出根据第三实施方式的用于确定定点数格式的处理的流程图。

图12是示出根据第四实施方式的用于推断的流程图的图。

图13是示出根据第五实施方式的两种类型的训练流程图的图。

图14示出了当通过在日本专利申请公开第2018-124681号中描述的方法量化中间数据时的手写数字识别任务的训练结果(1)和根据本实施方式来量化中间数据时的相同任务的训练结果(2)。

具体实施方式

图1是示出深度神经网络(DNN)的配置的示例的图。图1中所示的DNN是对象类别识别模型,其中,例如,输入图像数据并且根据输入图像的内容(例如数字)将图像数据分类为有限数量的类别。DNN包括输入层INPUT、第一卷积层Conv_1、第一池化层Pool_1、第二卷积层Conv_2、第二池化层Pool_2、第一完全连接层fc1、第二完全连接层fc2和输出层OUTPUT。每层具有对应于单个或多个神经元的节点。

卷积层Conv_1基于例如输入至输入层INPUT中的多个节点的图像的像素数据,计算与卷积层Conv_1内的节点相关联的例如权重等的乘积之和,并将所述乘积之和作为激活值输入至卷积层Conv_1中的多个节点。此外,将激活值输入至卷积层Conv_1的节点的激活函数,并且输出具有图像的特征的输出图像的像素数据。这同样适用于卷积层Conv_2。

池化层Pool_1是这样的层,在池化层Pool_1中,计算根据先前卷积层Conv_1的本地节点确定的值作为其自身节点的值,并且例如,通过将本地节点的最大值当作其自身节点的值来吸收图像中的微小变化。

输出层OUTPUT使用柔性最大传递(softmax)函数等根据节点的值得到属于每个类别的概率,并且将该概率作为输出数据输出。

在训练DNN的处理中,计算基于来自输出层中的每个节点的输出数据与训练数据中正确教导数据(teaching data)之间的差的误差函数,并且更新每层中的诸如权重之类的参数以使误差函数的误差最小化。通常通过梯度下降来更新参数。另外,使用误差反向传播作为梯度下降时的计算处理。

图2是示出根据本实施方式的包括算术处理单元的信息处理设备的配置的示例的图。信息处理设备1是通用计算机,例如个人计算机、服务器、高性能计算机(HPC)等。信息处理设备包括诸如中央处理单元(CPU)的主处理器10、主存储器12、作为子处理器的加速器处理器14、网络接口16、诸如大容量HDD或SSD的辅助存储装置20以及将这些元件彼此连接的总线28。

辅助存储装置20除了诸如OS(未示出)的基本软件之外,还存储针对NN等执行训练和推断处理的训练推断程序22、定点数格式确定程序24以及用于训练NN等的训练数据26。

主处理器10执行在主存储器12中展开的训练和推断程序22,以执行用于训练NN等的处理。主处理器10还执行展开的训练和推断程序,以执行用于NN等的推断的处理。当正在执行训练处理或推断处理时,主处理器10使加速器处理器14执行包括在训练和推断程序中的专用计算指令,例如矩阵运算和卷积运算。

此外,主处理器10执行已经在主存储器12中展开的定点数格式确定程序24,以确定用于将NN等的中间数据量化(转换)为具有预定位数的定点数的最佳定点数格式。定点数格式包括位数和最低有效位的指数信息。一旦确定了位数和最低有效位的指数,则设置定点数的小数点的位置,并且也设置当转换为定点数时使用的量化位置。定点数的最低有效位的指数的幂对应于定点数的分辨率。

可以通过网络NW从多个客户终端设备29_1和29_2来访问信息处理设备1。例如,客户终端设备29_1访问信息处理设备1并发送用于根据期望机器模型训练NN等的训练数据,并将该训练数据存储在辅助存储装置20中。然后,响应于来自客户终端设备29_1的开始训练的指示,主处理器10执行训练和推断程序,并且使用所提供的训练数据执行训练NN等的处理。

一旦NN等已通过训练处理被优化为期望机器模型,客户终端设备29_2通过网络发送用于推断的输入数据,并请求推断处理;然后,主处理器10执行训练和推断程序,并基于所提供的用于推断的输入数据执行NN等的推断运算。然后,主处理器10将来自推断的输出数据返回至发送了该推断请求的客户终端设备29_2。

图3是示出典型的训练NN等的流程图的图。在训练NN等时,训练数据被划分成称为“小批量(mini-batch)”的单元。然后,NN等中的参数例如权重在小批量的基础上被更新。使用多个小批量单元的训练数据的训练处理的单元被称为“轮次(epoch)”。

在图3中,当处理器执行训练和推断程序以开始单个轮次中的训练(S1)时,执行初始化处理,例如将训练数据划分成小批量(S2)。在第一小批量开始时,处理器还将初始值分配给NN等中的参数例如权重和偏置作为初始化处理。

接着,将一个小批量的训练数据作为输入数据,处理器从输入层侧到输出层侧依次执行NN等的多个层的运算(S3)。这是正向传播处理S3。在图1所示的NN等的示例中,处理器将训练数据的输入数据输入到输入层INPUT中,并对输入数据执行卷积层Conv_1的卷积运算。接着,处理器对来自卷积层Conv_1的输出数据执行池化层Pool_1的运算。此后以相同的方式,处理器在朝向输出层OUTPUT的正向方向上执行每一层的运算,并计算输出层OUTPUT的输出数据。

接着,处理器通过基于输出层OUTPUT中的每个节点的输出数据与训练数据的正确教导数据之间的差计算损失函数来计算误差,并且通过梯度下降来更新NN等中的诸如权重的参数以减小误差。具体而言,处理器通过沿反向方向即从输出层向输入层传播正确教导数据与根据一个小批量的训练数据的输入数据计算出的输出数据之间的差,来执行反向传播运算以找到每一层中的误差(S4)。然后,处理器基于在每个层中反向传播的误差通过梯度下降来更新参数例如权重(S5)。处理器更新每个小批量中的参数。

图4示出了正向传播处理和反向传播处理的示例。在正向传播处理中,处理器将靠近输入侧的层L1中的每个节点的数据X

另一方面,在反向传播处理中,处理器根据与靠近输出侧的层L6中的每个节点的差(输出数据与正确教导数据之间的差或反向传播差)δ

此外,在依次更新每层的参数例如权重的处理中,处理器通过将差分更新数据ΔW

图4中所示的参数,例如更新前的更新前权重W

返回图3,处理器对根据划分获得的多个小批量的每个小批量中的训练数据重复上述正向传播处理S3、反向传播处理S4和权重更新处理S5,直到完成所有小批量(在S6中为“是”)。当针对所有小批量的训练数据完成S3到S5的处理时,一个轮次的训练完成。

第一实施方式

图5是示出根据本实施方式的训练NN等的流程图的图。本实施方式假定处理器使用加速器处理器中的定点计算单元执行训练和推断程序,以执行用于训练NN等的处理的运算。通过训练运算生成的NN等的中间数据使用预定的定点数格式被量化为定点数,并被存储在处理器内的通用寄存器、主存储器等中。此外,在随后的训练运算中读出存储在处理器的寄存器、主存储器等中的经量化的中间数据,并将其输入至定点计算单元。

定点计算单元包括例如其中存储输入值的运算数寄存器、用于存储在计算期间获得的数据的寄存器、其中存储计算结果的结果寄存器等。在这样的定点计算单元中的寄存器通常具有与经量化的定点数相比的较长的位长度,以及较低的最低有效位的指数。因此,定点计算单元内的寄存器中的中间数据的分辨率与经量化的中间数据的分辨率相比而较低且较密集。

利用定点计算单元,乘法结果将变为高达输入数据的位长度的两倍。加法结果也会由于溢出而具有比输入数据长的位长度。然而,在本实施方式中,当通过训练NN等的运算而生成的中间数据从计算单元的结果寄存器中被存储到处理器的通用寄存器、主存储器等中时,该中间数据根据定点数格式被量化,并且被转换为具有短的位长度和低分辨率的定点数。具体地,处理器10或14基于定点数格式的位长度和最低有效位的指数信息两者通过对中间数据的最低有效侧位进行舍入并对中间数据的最高有效侧位进行饱和,来量化中间数据。换句话说,量化是将中间数据的位限制到基于定点数格式的位长度和最低有效位的指数信息而确定的数位范围的处理。该处理将中间数据的位限制成从基于最低有效位的指数信息的较低有效位到按上述位长度的较高有效位的位。

除了与图3中的处理步骤相同的处理步骤S1至S6之外,图5中的流程图还包括定点数格式确定处理S10和针对中间数据例如参数的量化处理S20。在图5中,定点数格式确定处理S10由处理步骤S11至S15指示。

根据本实施方式,处理器10和14执行训练和推断程序22以执行与图3中相同的处理步骤S1至S6以及参数量化处理S20。此外,处理器10执行定点数格式确定程序24以执行包括S11至S15的处理步骤的定点数格式确定处理S10。

在初始化处理S2中,处理器10将训练数据划分成小批量,并将初始值赋值给NN中的参数,例如权重。然后,处理器确定中间数据例如参数的定点数格式(S10)。在一个轮次的第一小批量中,中间数据被设置为初始值,并且因此在确定处理S10中,处理器确定对于初始值最佳的预定定点数格式。然后,处理器根据确定的定点数格式将中间数据的初始值转换(或量化)为定点数(S20)。

然后,处理器10和14对第一小批量的训练数据的输入数据执行上述正向传播处理(S3),基于通过正向传播处理获得的NN等的输出数据与训练数据的正确教导值之间的差执行反向传播处理(S4),并且更新NN等中参数,例如权重(S5)。

接着,在基于下一小批量的训练数据执行正向传播处理之前,处理器10确定利用前一小批量的训练数据计算出的NN等的中间数据的最佳定点数格式(S10)。

确定最佳定点数格式的处理S10如下。首先,基于在先前的小批量中计算出的NN等的中间数据中的值的范围,处理器10确定定点数格式的候选(S11)。定点数格式包括例如定点数位长度和最低有效位的指数信息。可替选地,定点数格式包括整数部分中的位数和小数部分中的位数。然而,如果小数部分中的位数是零,或者如果整数部分中的位数是零,则根据定点数位长度和最低有效位的指数信息来确定定点数格式。

图6示出了定点数格式。图6中所示的定点数格式Q_FMT具有8位的位长度,其中1位用于符号位,4位用于整数部分,3位用于小数部分。在这种情况下,格式Q_FMT例如被指示为Q4.3。

当由该定点数格式Q_FMT表示的定点数是[S,i

图7是示出关于中间数据的定点数格式的候选的图。图7示出了通过对小批量的训练数据执行NN等的操作而获得的多条中间数据的集合中包含的元素(中间数据)的值的直方图HG。直方图HG的横轴对应于从每个元素(中间数据)的较低有效位到较高有效位的每个数位的值(2

图7还示出了2的n次幂至2的(n+12)次幂,每个均指示定点数的分辨率,与直方图HG的分布相对应。

在图7中,定点数的位长度为4位,其中一位为符号位,并且因此整数部分和小数部分对应于总共3位。在这种情况下,例如,如果确定定点数的量化中的位的位置的格式是Q_FMT_1(最低位的分辨率为2

例如,如果定点数格式是Q_FMT_2(最低位的分辨率为2

图8是示出用于确定定点数格式的处理的图。下文中,定点数格式可以简称为“格式”。

在确定定点数格式的候选的处理S11中,如下关于图8的右侧示出的中间数据的集合的元素的直方图HG,处理器确定格式候选。在第一方法中,从可以包含最左仓中的元素的有效位的最低位格式候选1到通过将格式候选向右侧的较高有效位侧移位一位而获得的格式候选2、3...来确定格式候选。最后,确定可以包含最右仓中的元素的有效位的最高位格式候选n。

在第二方法中,统一地确定可以包括在量化之前中间数据的所有可能的最小值到所有可能的最大值的包括从最低位格式候选到最高位格式候选的格式候选。尽管第二种方法需要更多的工作来进行确定,但是第二种方法针对每个候选格式需要较少的后续运算。

接下来,如图5和图8所示,处理器基于格式候选量化所有中间数据(S12)。作为结果,为所有中间数据生成经量化的定点数中间数据。

然后,处理器使用量化前中间数据W、根据格式候选量化的中间数据W

处理器针对所有定点数格式候选执行量化处理S12和量化误差计算处理S13(S14中为“否”)。在针对全部的定点数格式候选完成量化处理S12和量化误差计算处理S13的情况下(S14中为“是”),处理器将量化误差最低的定点数格式候选确定为要用于量化的定点数格式(S15)。

图9是示出上述定点数格式确定处理的具体示例的图。图9从左起示出了量化前的第一中间数据W1、量化前的第二中间数据W2

量化前的第一中间数据W1是13个小数格式的中间数据。小数格式中间数据W1例如作为浮点数存储在处理器中的寄存器中。

量化前的第二中间数据W2

在量化前的中间数据W2

所述直方图以与图7相同的方式指示定点数格式候选1和2的位置。格式候选1是三位W2

作为结果,根据两个最高有效位的格式候选1量化的中间数据W

因此,当量化前的中间数据W1(浮点数)根据格式候选1被转换为定点数时,低于2

接着,当量化前的中间数据W2

图9的右下部分指示用于在量化前的中间数据W1(浮点数)分别根据格式候选1和2被量化的情况下得到量化误差的损失函数的等式。针对多个中间数据中的每一个,损失函数是量化前的中间数据W1与经量化的中间数据W

另外,如图9所示,通过分别根据格式候选1和2对量化前的中间数据W2

回到图5,处理器根据已经确定的定点数格式量化利用先前小批量的训练数据而计算出的所有中间数据(根据确定的格式转换为定点数)(S20)。然后,处理器针对下一小批量的训练数据执行图3中指示的正向传播处理S3和反向传播处理S4,并更新参数,例如权重(S5)。处理器重复处理步骤S10至S5,直到所有小批量中的训练数据的计算完成(S6)。

如上所述,量化前的中间数据是浮点数数据,或者是具有比在量化中使用的定点数格式长的位长度的定点数数据。根据已经确定的定点数格式对量化前的浮点数数据或量化前的定点数数据进行量化,并且生成经量化的定点数数据作为结果。

图10是示出加速器处理器14的配置的示例的图。加速器处理器14将存储在主存储器12中的指令和一些数据分别存储在L1指令缓存30和L1数据缓存33中。在加速器处理器14中,指令解码器31解码从L1指令缓存30提取的指令,并且根据指令的类型将解码后的指令提供给加载/存储单元32、浮点计算单元35和定点计算单元36中的一个。这些计算单元32、35和36中的每一个执行所提供的指令。

在加载指令的情况下,加载/存储单元32经由存储器控制器34从主存储器12读出数据并将该数据存储在L1数据缓存33中。浮点计算单元35计算从通用寄存器文件38中的寄存器读出的指令的输入变量,并将计算结果存储在专用寄存器文件37或通用寄存器文件38中的寄存器中。同样,定点计算单元36计算指令的输入变量,并将计算结果存储在专用寄存器文件37或通用寄存器文件38中。由执行存储指令的加载/存储单元32经由L1数据缓存33将通用寄存器文件38中的数据存储在主存储器12中。

根据本实施方式,例如,加速器处理器14使用定点计算单元36来执行NN等的运算,根据已经确定的定点数格式来量化计算结果的中间数据,并将经量化的中间数据存储在通用寄存器文件38的寄存器、主存储器12等中。此外,加速器处理器14读出存储在通用寄存器文件的寄存器、主存储器12等中的中间数据,并使用定点计算单元36来执行NN等的运算。

由于根据已确定的定点数格式量化的中间数据的位数较低或较少,所以NN等仅需要短时间量的运算,因此减少了用于存储中间数据的通用寄存器文件、主存储器等的容量。

另一方面,如上所述,主处理器10执行用于确定中间数据的最佳定点数格式的处理、用于根据已确定的定点数格式量化中间数据的处理等。

在图2中,如果信息处理设备1不包括执行NN等的运算的加速器处理器14,则NN等的运算由主处理器10执行。在这种情况下,主处理器10具有图10所示的配置,以使用定点计算单元执行NN等的运算,根据定点数格式量化作为运算结果的中间数据,并将经量化的中间数据存储在通用寄存器文件的寄存器、主存储器等中。主处理器10还读出通用寄存器文件、主存储器等中的中间数据,并使用定点计算单元36执行NN等的运算。主处理器10还执行用于确定中间数据的最佳定点数格式的处理、用于根据已确定的定点数格式量化中间数据的处理等。

第二实施方式

在第一实施方式中,用于计算量化误差的损失函数是量化前的中间数据与根据定点数格式量化的中间数据之间的差的平方之和。相反,在第二实施方式中,用于计算量化误差的损失函数是用于得到L1范数的函数。换句话说,用于计算量化误差的损失函数是量化前的中间数据与根据定点数格式量化的中间数据之间的差的绝对值之和。根据NN等的运算中计算的中间数据,可以选择是否使用差的平方之和或L1范数作为最佳。

第三实施方式

在第一实施方式中,如图5所示,针对与中间数据的最小值到最大值的范围相对应的所有的多个定点数格式候选计算量化误差,并且将与最低量化误差相对应的定点数格式候选确定为定点数格式。

相比之下,在第三实施方式中,以下述方式确定定点数格式,以便减少量化误差的计算次数。

图11示出根据第三实施方式的用于确定定点数格式的处理的流程图。图11左侧的流程图与图5相同。然而,图11右侧的格式确定的流程图中的处理步骤S16至步骤S19不同于图5。

在图11所示的格式确定处理中,处理器计算与从中间数据的最小值到最大值的范围相对应的格式候选(S11)。提取从与多个中间数据的最小值对应的定点数格式到与多个中间数据的最大值对应的定点数格式的这些格式候选作为格式候选。通过将格式候选限制到从中间数据的最小值到最大值的范围,可以减少格式候选的数量。

接着,处理器从提取的多个定点数格式候选中选择例如最低有效位侧的格式候选(S16)。最低有效位侧的格式候选是根据该格式的定点数中最低有效位的指数最低的格式候选。然后,处理器执行与图5相同的处理步骤S12和S13。接着,处理器确定计算的量化误差是否高于先前格式候选的量化误差(S17),如果计算的量化误差不高于先前格式候选的量化误差(S17中的“否”),则处理器选择下一位(一个较高有效位)的格式候选(S18),并再次执行与图5相同的处理步骤S12和S13。

处理器重复上述处理,直到所计算的量化误差增大。当计算出的量化误差增大时(S17中为“是”),处理器结束量化误差获得处理步骤S12和S13。然后,由于前一格式候选的量化误差对应于最小量,所以处理器将前一格式候选确定为定点数格式(S19)。

在处理S16中,处理器可从提取的多个定点数格式候选中选择例如最高有效位侧的格式候选。最高有效位侧的格式候选是根据该格式的定点数中最低有效位的指数最高的格式候选。在这种情况下,在处理S18中,处理器选择一个较低有效位的格式候选作为下一位的格式候选。

通过执行上述定点数格式确定处理,可以减少与格式候选相对应的量化误差的计算次数。

第四实施方式

在第一实施方式中,在用于训练NN等的处理中,根据最佳定点数格式量化中间数据,并将其处理或存储在寄存器、存储器等中。

相比之下,在第四实施方式中,在NN等的推断处理中,根据最佳定点数格式对通过用于推断的输入数据执行NN等的运算而计算出的中间数据进行量化,并将其处理或存储在寄存器、存储器等中。在用于训练NN等的处理中,中间数据包含包括权重、梯度等的参数以及激活数据。然而,由于在NN等的推断处理中不使用反向传播处理,因此中间数据不包括通过反向传播处理计算出的梯度,而是仅包括权重和激活数据。

图12是示出根据第四实施方式的用于推断的流程图的图。在推断处理中,输入作为NN等的解释变量的输入数据,执行NN等的运算,并将输出数据输出作为推断结果。图12的流程图不包括图5流程图中包括的反向传播处理S4和权重更新处理S5。其他处理与图5相同。

在图12中,在推断开始时,处理器执行初始化处理,该初始化处理划分用于推断的输入数据(S2),针对预定数量的输入数据执行NN等的正向传播处理(S3),并且当针对预定数量的输入数据的正向传播处理结束时,确定中间数据的最佳定点数格式(S10),并根据所确定的格式量化中间数据(S20)。

第五实施方式

图13是示出根据第五实施方式的两种类型的训练流程图的图。在第二训练流程(2)中,处理器在针对小批量的训练数据执行正向传播处理S3、反向传播处理S4和权重更新S5之后,执行定点数格式确定处理S10。然后,在针对下一小批量的训练数据执行正向传播处理S3和反向传播处理S4之前,根据已经确定的定点数格式量化在先前小批量中计算的中间数据(S20)。当对第一小批量中的训练数据执行正向传播处理S3和反向传播处理S4时,根据预定定点数格式量化中间数据(例如,权重的初始值)。

在第三训练流程(3)中,处理器在针对小批量的训练数据执行正向传播处理S3、反向传播处理S4和权重更新S5之后,执行定点数格式确定处理S10和根据已经确定的定点数格式量化中间数据的量化处理S20。在这种情况下,当对第一小批量中的训练数据执行正向传播处理S3和反向传播处理S4时,不根据定点数格式执行量化。

工作示例

图14示出了当通过日本专利申请公开第2018-124681号描述的方法量化中间数据时的手写数字识别任务的训练结果(1)和根据本实施方式量化中间数据时的手写数字识别任务的训练结果(2)的图。

当如日本专利申请公开第2018-124681号中描述的根据基于中间数据的统计信息而确定的格式来量化中间数据时获得的训练结果(1)中,可以看出,当中间数据的定点数的位数是6位时的量化误差比当中间数据的定点数的位数是8位时的量化误差高,并且因此训练准确度收敛于低的准确度。然而,当如本实施方式中所描述的根据具有较低量化误差的格式量化中间数据时获得的训练结果(2)中,当中间数据的定点数的位数是8位时以及当该位数是6位时,训练准确度均收敛于高的准确度。

如上所描述的,根据本实施方式,根据具有较低量化误差的定点数格式来量化通过NN等的运算获得的中间数据,并且因此可以提高NN等的训练准确度。

根据第一方面,可以减小量化误差。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号