训练方法、信息处理设备和非暂态计算机可读存储介质技术

技术编号:24171300 阅读:75 留言:0更新日期:2020-05-16 03:02
公开了一种训练方法、信息处理设备和非暂态计算机可读存储介质。使用神经网络执行深度学习的信息处理设备,包括:存储器和算术处理装置,该算术处理装置在预定方向上对神经网络的各层执行处理。用于层的处理包括:预先确定通过每个层的运算而获得的中间数据的定点数的小数点位置;以及使用预定小数点位置对每个层执行算术运算以获得中间数据并且获取中间数据的位的分布的第一统计信息;基于统计信息确定中间数据的小数点位置;以及当确定的小数点位置与预定的小数点位置的差大于阈值时,使用确定的小数点位置再次对每个层执行算术运算。

【技术实现步骤摘要】
训练方法、信息处理设备和非暂态计算机可读存储介质
本专利技术涉及训练方法、信息处理设备和非暂态计算机可读存储介质。
技术介绍
深度学习(下文中称为DL)是使用多层神经网络的机器学习。作为深度学习的示例的深度神经网络(下文中称为DNN)是依次布置输入层、多个隐藏层和输出层的网络。每个层具有一个或更多个节点,并且每个节点具有值。一个层中的节点和下一层中的节点通过节点之间的边连接,并且每个边具有变量(或参数),例如权重或偏差。在DNN中,基于前一层中的节点的值、节点之间的边的权重等通过预定运算来获得每个层中的节点的值。当将输入数据输入到输入层中的节点时,通过预定运算获得下一层中的节点的值,并且此外,使用通过由上述运算获得的数据作为输入通过对后续层的预定操作来获得后续层中的节点的值。然后,作为最后层的输出层中的节点的值变为针对输入数据的输出数据。用于对DNN执行算术运算的DNN处理器可以使用定点算术单元来执行算术运算,因为作为要由运算处理的一个对象的图像数据具有相对小的位数。由于不使用浮点算术单元,因此这使得可以降低算术运算所需的功耗。此外,使用具有比浮点算术单元更简单的电路的定点算术单元意味着DNN处理器可以被设置成具有更小的电路规模。然而,由于定点数的位数是固定的,因此动态范围比浮点数的动态范围更窄。为此,由于运算而产生的上溢可能使算术运算的结果值饱和,并且相反,下溢可能使更低位舍入。这导致算术运算的精度降低。因此,对于DNN的运算,已经提出了可以动态调整通过计算而获得的运算的结果数据的小数点位置的动态定点。例如在日本专利申请公开第2018-124681号中公开了这样的动态定点。例如在日本专利申请公开第2012-203566号、第2009-271598号和第H07-084975号中公开了定点算术运算。
技术实现思路
在动态定点方法中,在DNN的训练期间,执行每个层的算术运算,并且基于算术运算的结果的有效位的分布来调整算术运算的结果的定点位置。这使得可以抑制上述的上溢和下溢的发生,从而提高了运算的精度。另一方面,由于未将预训练中使用的定点调整为最佳位置,因此可以将DNN的输入数据、每个层的输出数据以及参数(例如权重和偏差)设定为浮点数使得通过浮点算术单元执行预训练。当使用浮点数执行预训练时,不存在当使用定点数执行预训练时出现的运算结果的上溢或下溢,从而使得可以防止诸如各个层的输出数据和参数的中间数据的精度降低。此外,可以基于浮点算术单元的算术运算的结果的指数部的值将中间数据的定点调整到最佳位置。因此,训练对调整后的定点数使用定点算术单元。然而,其中用于对DNN执行算术运算的DNN处理器除了配备有定点算术单元之外还配备有浮点算术单元以使用浮点算术单元对DNN执行预训练的配置需要浮点算术单元的硬件,并且还由于浮点算术单元而导致功耗增加。因此,本实施方式的第一方面的目的是提供了一种能够通过定点运算以高精度执行预训练的训练程序、训练方法和信息处理设备。本实施方式的一方面是一种使用神经网络执行深度学习的信息处理设备,该信息处理设备包括:存储器;以及算术处理装置,其能够访问存储器,其中,算术处理装置在预定方向上针对神经网络的多个层执行处理,针对多个层的处理包括:(a)确定第一小数点位置,该第一小数点位置用于设定当多个第二定点数数据的被存储在寄存器中时执行饱和处理或舍入处理的范围,所述多个第二定点数数据是通过由算术处理装置对多个第一定点数数据的片段执行算术运算而获得的;(b)通过算术处理装置对多个第一定点数数据执行算术运算,基于使用第一小数点位置设定的范围对多个第二定点数数据执行饱和处理或舍入处理,并且将饱和处理或舍入处理的第一结果值存储在寄存器中,以及获取关于多个第二定点数数据中的每一个的正数的最左置位的位置或负数的最左零位的位置的分布的第一统计信息;(c)基于第一统计信息确定第二小数点位置,该第二小数点位置用于设定当多个第二定点数数据被存储在寄存器中时执行饱和处理或舍入处理的范围;以及(d)基于第一小数点位置与第二小数点位置之间的差确定是否再次执行通过算术处理装置对多个第一定点数数据的算术运算,以及当确定再次执行算术运算时,基于使用第二小数点位置设定的范围对下述多个第二定点数数据执行饱和处理或舍入处理并且将饱和处理或舍入处理的第二结果值存储在寄存器中,所述多个第二定点数数据是通过由算术处理装置对多个第一定点数数据再次执行算术运算而获得的。附图说明图1是示出深度神经网络(DNN)的配置示例的图;图2是示出DNN训练处理的示例的流程图;图3是示出根据本实施方式的深度学习(DL)系统的配置示例的图;图4是示出主机30的配置示例的图;图5是示出DNN执行机的配置示例的图;图6是示出要由主机和DNN执行机执行的深度学习处理的概述的序列图;图7是示出相对于本示例的比较例的深度学习(DL)的流程图的图;图8是示出图7的比较例的深度学习中的由多个处理器进行的处理的流程图的图;图9是示出根据第一实施方式的深度学习的流程图的图;图10是示出图9的深度学习中的由多个处理器进行的处理的流程图的图;图11是示出用于使用动态定点小数的训练的S61和S63的处理的图;图12是示出训练中的前向传播处理和后向传播处理的图;图13和图14是示出关于中间数据的分布的统计信息以及基于该分布来调整小数点位置的方法的图;图15和图16是示出根据本实施方式的预训练的详细流程图的图;图17是示出DNN处理器43的配置示例的图;图18是示出要由DNN处理器执行的获取、聚合和存储统计信息的处理的流程图;图19是示出统计信息获取单元ST_AC的逻辑电路示例的图;图20是示出由统计信息获取单元取得的运算输出数据的位模式的图;图21是示出统计信息聚合器ST_AGR_1的逻辑电路示例的图;图22是描述统计信息聚合器ST_AGR_1的运算的图;图23是示出第二统计信息聚合器ST_AGR_2和统计信息寄存器文件的示例的图;图24是示出根据第二实施方式的由多个处理器进行的深度学习的流程图的图;以及图25是示出根据第二实施方式的预训练中的前向传播处理和后向传播处理的详细流程图的图。具体实施方式图1是示出深度神经网络(DNN)的配置示例的图。图1中的DNN是根据输入图像的内容(例如,数字)将例如接收到的输入图像分类为有限数量的类别的对象类别识别模型。DNN包括输入层(INPUT)、第一卷积层Conv_1、第一池化层Pool_1、第二卷积层Conv_2、第二池化层Pool_2、第一完全连接层fc1、第二完全连接层fc2和输出层(OUTPUT)。每个层具有一个或更多个节点。在卷积层Conv_1中,例如,对输入到输入层输入中的多个节点的图像的像素数据和节点之间的权重执行积和运算本文档来自技高网
...

【技术保护点】
1.一种使用神经网络执行深度学习的信息处理设备,所述信息处理设备包括:/n存储器;以及/n算术处理装置,所述算术处理装置能够访问所述存储器,/n其中,所述算术处理装置在预定方向上针对所述神经网络的多个层执行处理,/n针对所述多个层的处理包括:/n确定第一小数点位置,所述第一小数点位置用于设定当多个第二定点数数据被存储在寄存器中时执行饱和处理或舍入处理的范围,所述多个第二定点数数据是通过由所述算术处理装置对多个第一定点数数据执行算术运算而获得的;/n通过所述算术处理装置对所述多个第一定点数数据执行所述算术运算,/n基于使用所述第一小数点位置设定的范围对所述多个第二定点数数据执行所述饱和处理或所述舍入处理并且将所述饱和处理或所述舍入处理的第一结果值存储在所述寄存器中;以及/n获取关于所述多个第二定点数数据中的每一个的正数的最左置位的位置或负数的最左零位的位置的分布的第一统计信息;/n基于所述第一统计信息确定第二小数点位置,所述第二小数点位置用于设定当所述多个第二定点数数据被存储在所述寄存器中时执行所述饱和处理和所述舍入处理的范围;以及/n基于所述第一小数点位置与所述第二小数点位置之间的差,确定是否再次执行由所述算术处理装置对所述多个第一定点数数据的算术运算,以及/n当确定再次执行所述算术运算时,基于使用所述第二小数点位置设定的范围对下述多个第二定点数数据执行所述饱和处理或所述舍入处理并且将所述饱和处理或所述舍入处理的第二结果值存储在所述寄存器中,该多个第二定点数数据是通过由所述算术处理装置对所述多个第一定点数数据再次执行所述算术运算而获得的。/n...

【技术特征摘要】
20181107 JP 2018-2094151.一种使用神经网络执行深度学习的信息处理设备,所述信息处理设备包括:
存储器;以及
算术处理装置,所述算术处理装置能够访问所述存储器,
其中,所述算术处理装置在预定方向上针对所述神经网络的多个层执行处理,
针对所述多个层的处理包括:
确定第一小数点位置,所述第一小数点位置用于设定当多个第二定点数数据被存储在寄存器中时执行饱和处理或舍入处理的范围,所述多个第二定点数数据是通过由所述算术处理装置对多个第一定点数数据执行算术运算而获得的;
通过所述算术处理装置对所述多个第一定点数数据执行所述算术运算,
基于使用所述第一小数点位置设定的范围对所述多个第二定点数数据执行所述饱和处理或所述舍入处理并且将所述饱和处理或所述舍入处理的第一结果值存储在所述寄存器中;以及
获取关于所述多个第二定点数数据中的每一个的正数的最左置位的位置或负数的最左零位的位置的分布的第一统计信息;
基于所述第一统计信息确定第二小数点位置,所述第二小数点位置用于设定当所述多个第二定点数数据被存储在所述寄存器中时执行所述饱和处理和所述舍入处理的范围;以及
基于所述第一小数点位置与所述第二小数点位置之间的差,确定是否再次执行由所述算术处理装置对所述多个第一定点数数据的算术运算,以及
当确定再次执行所述算术运算时,基于使用所述第二小数点位置设定的范围对下述多个第二定点数数据执行所述饱和处理或所述舍入处理并且将所述饱和处理或所述舍入处理的第二结果值存储在所述寄存器中,该多个第二定点数数据是通过由所述算术处理装置对所述多个第一定点数数据再次执行所述算术运算而获得的。


2.根据权利要求1所述的信息处理设备,其中,当所述差超过第一阈值时,确定要再次执行由所述算术处理装置对所述多个第一定点数数据的所述算术运算。


3.一种通过在预定方向上针对神经网络的多个层执行处理来执行深度学习的方法,其中,针对所述多个层的处理包括:
确定第一小数点位置,所述第一小数点位置用于设定当多个第二定点数数据被存储在寄存器中时执行饱和处理或舍入处理的范围,所述多个第二定点数数据是通过由算术处理装置对多个第一定点数数据执行算术运算而获得的;
通过所述算术处理装置对所述多个第一定点数数据执行所述算术运算,
基于使用所述第一小数点位置设定的范围对所述多个第二定点数...

【专利技术属性】
技术研发人员:伊藤真纪子
申请(专利权)人:富士通株式会社
类型:发明
国别省市:日本;JP

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1