深度神经网络的硬件实现的端到端数据格式选择制造技术

技术编号:21659541 阅读:42 留言:0更新日期:2019-07-20 05:50
本公开涉及深度神经网络的硬件实现的端到端数据格式选择。用于选择用于表示输入至和/或输出自DNN的层的值的定点数格式的方法,该方法考虑了定点数格式对DNN的上下文中的特定层的影响。方法包括在预定序列中一次针对一个层来选择用于表示输入至和/或输出自该层的多组值的(一个或多个)定点数格式,其中在序列中任何层之前是该层依赖的(一个或多个)层。基于与定点数格式相关联的DNN的输出中的误差来选择针对每个层的(一个或多个)定点数格式。一旦针对一个层的(一个或多个)定点数格式已经被选择,则序列中后续层的DNN的输出中的误差的任意计算将基于被配置为使用选择的定点数格式的该层。

End-to-end data format selection for hardware implementation of deep neural network

【技术实现步骤摘要】
深度神经网络的硬件实现的端到端数据格式选择
本公开涉及深度神经网络的硬件实现的端到端数据格式选择。
技术介绍
深度神经网络(DNN)是可以用于机器学习应用的一种人工神经网络。具体地,DNN可以用于信号处理应用,包括图像处理和计算机视觉应用。DNN已经在其中功率资源不是重要因素的应用中被实现。尽管如此,DNN还应用于许多不同的
,在这些领域中用于实现DNN的硬件资源的功耗、处理能力或硅面积是有限的。因此,需要实现被配置为以有效方式(即,以在操作时需要更少硅面积或更少处理能力的方式)实现DNN的硬件。此外,DNN可以以多种不同的方式被配置以用于各种不同的应用。因此,还需要用于实现DNN的硬件能够灵活地支持各种DNN配置。以下描述的实施例仅作为示例被提供,并且不限制解决深度神经网络的已知硬件实现的任意或所有缺点的实现方式。
技术实现思路

技术实现思路
被提供介绍将在以下详细描述中进一步描述的一些概念。本
技术实现思路
不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。本文描述的是用于确定用于表示输入至和/或输出自DNN的层的值的定点数格式的方法,该方法考虑了定点数格式对DNN的上下文中的特定层的影响。方法包括根据预定序列一次针对一个层来选择用于表示输入至和/或输出自该层的多组值的(一个或多个)定点数格式,其中在序列中任何层之前是该层依赖的(一个或多个)层。基于与定点数格式相关联的DNN的输出中的误差来选择针对每个层的定点数格式。一旦针对一个层的(一个或多个)定点数格式已经被选择,则针对序列中后续层的DNN的输出中的误差的任意计算将基于被配置为使用选择的定点数格式的该层。换句话说,DNN的输出中的误差是基于被配置为使用针对序列中的先前层已经选择的定点数格式的DNN的。这允许以整体地考虑DNN的行为的方式来选择定点数格式。第一方面提供了一种标识用于表示输入至和/或输出自深度神经网络“DNN”的多个层的值的定点数格式以用于配置DNN的硬件实现的计算机实现的方法,该方法包括:确定多个层的序列,其中,多个层中的每个层之前是多个层中该层所依赖的任意层;接收被配置为使用浮点数格式来表示输入至和/或输出自DNN的多个层的值的DNN的实例;针对确定的序列中的每个层:选择用于表示输入至或输出自该层的一组或多组值中的每组值的定点数格式,其中,用于表示输入至或输出自一个层的一组值的定点数格式被选择以使得最小化DNN的实例的输出误差;以及重新配置DNN的实例以使用针对一组或多组值中的每组值的选择的定点数格式来表示该组值。第二方面提供了一种用于标识用于表示输入至和/或输出自深度神经网络“DNN”的多个层的值的定点数格式以用于配置DNN的硬件实现的基于计算的设备,该基于计算的设备包括:至少一个处理器;以及存储器,被耦合到至少一个处理器,存储器包括:DNN的实例,被配置为使用浮点数格式来表示输入至和/或输出自DNN的多个层的值;计算机可读代码,在由至少一个处理器执行时,使得至少一个处理器执行以下操作:确定多个层的序列,其中,多个层中的每个层之前是多个层中该层所依赖的任意层;针对确定的序列中的每个层:选择用于表示输入至或输出自该层的一组或多组值中的每组值的定点数格式,其中,用于表示输入至或输出自一个层的一组值的定点数格式被选择以使得最小化DNN的实例的输出误差;以及重新配置DNN的实例以使用针对一组或多组值中的每组值的选择的定点数格式来表示该组值。第三方面提供了一种深度神经网络“DNN”的硬件实现,包括:硬件逻辑,被配置为:接收DNN的一个层的输入数据值;接收指示针对该层的输入数据值的定点数格式的信息,针对该层的输入数据值的定点数格式已经根据第一方面的方法被选择;基于针对该层的输入数据值的定点数格式来解释输入数据值;以及根据该层来处理经解释的输入数据值以生成针对该层的输出数据值。DNN的硬件实现可以体现在集成电路上的硬件中。可以提供一种在集成电路制造系统中制造硬件实现的方法。可以提供集成电路定义数据集,该集成电路定义数据集在集成电路制造系统中处理时,配置系统以制造DNN的硬件实现。可以提供一种在其上存储有DNN的硬件实现的计算机可读描述的非暂态计算机可读存储介质,该DNN的硬件实现的计算机可读描述在集成电路制造系统中处理时,使得集成电路制造系统制造体现DNN的硬件实现的集成电路。可以提供一种集成电路制造系统,包括:非暂态计算机可读存储介质,在其上存储有DNN的硬件实现的计算机可读描述;布局处理系统,被配置为处理计算机可读描述以便生成体现DNN的硬件实现的集成电路的电路布局描述;以及集成电路生成系统,被配置为根据电路布局描述制造DNN的硬件实现。可以提供用于执行如本文描述的方法的计算机程序代码。可以提供在其上存储有计算机可读指令的非暂态计算机可读存储介质,该计算机可读指令在计算机系统处执行时,使得计算机系统执行如本文描述的方法。如技术人员显而易见的,上述特征可以被适当地组合,并且可以与本文描述的示例的任何方面进行组合。附图说明现在将参考附图详细描述实施例,其中:图1是示例深度神经网络(DNN)的示意图;图2是DNN中的示例数据的示意图;图3是用于确定用于表示输入至和输出自DNN的每个层的多组值的定点数格式的示例方法的流程图;图4是示例DNN的示意图和示例DNN的示例序列;图5是用于选择针对一个层的一组值的定点数格式的示例方法的流程图;图6是示出与定点数格式相关联的输出误差的第一示例计算的示意图;图7是示出与定点数格式相关联的输出误差的第二示例计算的示意图;图8是示出输入至和输出自一个层的值的示意图;图9是用于选择针对输入至或输出自一个层的多组值的定点数格式的示例方法的流程图;图10是DNN的示例硬件实现的框图;图11是示例基于计算的设备的框图;图12是其中实现DNN的硬件实现的示例计算机系统的框图;并且图13是用于生成体现如本文描述的DNN的硬件实现的集成电路的示例集成电路制造系统的框图。附图示出了各种示例。技术人员将理解,附图中示出的元件边界(例如,框、框组或其他形状)代表边界的一个示例。在一些示例中,可以将一个元件设计为多个元件,或可以将多个元件设计为一个元件。在整个附图中使用共同的附图标记来适当地表示类似的特征。具体实施方式通过示例的方式呈现以下描述以使得本领域技术人员能够制造和使用本专利技术。本专利技术不限于本文描述的实施例,并且所公开的实施例的各种修改对于本领域技术人员来说是显而易见的。仅通过示例的方式描述了实施例。深度神经网络(DNN)是一种人工神经网络,包括多个互连层,使得DNN能够执行信号处理任务,包括但不限于计算机视觉任务。图1示出了包括多个层102-1、102-2、102-3的示例DNN100。每个层102-1、102-2、102-3接收输入数据,根据该层来处理输入数据以产生输出数据。输出数据作为输入数据提供给另一层,或作为DNN的最终输出数据输出。例如,在图1的DNN100中,第一层102-1接收进入DNN100的原始输入数据104,并且根据第一层102-1来处理输入数据以产生输出数据。第一层102-1的输出数据成为第二层102-2的输入数据,第二层102-2根据第二层102-2来处理输本文档来自技高网...

【技术保护点】
1.一种标识用于表示输入至和/或输出自深度神经网络“DNN”的多个层的值的定点数格式以用于配置所述DNN的硬件实现的计算机实现的方法(300),所述方法包括:确定所述多个层的序列,其中,所述多个层中的每个层之前是所述多个层中该层所依赖的任意层(302);接收被配置为使用浮点数格式来表示输入至和/或输出自所述DNN的所述多个层的值的所述DNN的实例(304);针对确定的序列中的每个层(306,312,314):选择用于表示输入至或输出自该层的一组或多组值中的每组值的定点数格式,其中,用于表示输入至或输出自一个层的一组值的定点数格式被选择以使得最小化所述DNN的实例的输出误差(308);以及重新配置所述DNN的实例以使用针对所述一组或多组值中的每组值的选择的定点数格式来表示该组值(310)。

【技术特征摘要】
2017.11.03 GB 1718289.01.一种标识用于表示输入至和/或输出自深度神经网络“DNN”的多个层的值的定点数格式以用于配置所述DNN的硬件实现的计算机实现的方法(300),所述方法包括:确定所述多个层的序列,其中,所述多个层中的每个层之前是所述多个层中该层所依赖的任意层(302);接收被配置为使用浮点数格式来表示输入至和/或输出自所述DNN的所述多个层的值的所述DNN的实例(304);针对确定的序列中的每个层(306,312,314):选择用于表示输入至或输出自该层的一组或多组值中的每组值的定点数格式,其中,用于表示输入至或输出自一个层的一组值的定点数格式被选择以使得最小化所述DNN的实例的输出误差(308);以及重新配置所述DNN的实例以使用针对所述一组或多组值中的每组值的选择的定点数格式来表示该组值(310)。2.根据权利要求1所述的方法(300),其中,选择用于表示输入至或输出自一个层的一组值的定点数格式包括:针对多个可能的定点数格式中的每个定点数格式(502,510,512):临时配置所述DNN的实例以使用所述定点数格式来表示针对该层的该组值(504);响应于测试输入数据而确定临时配置的所述DNN的实例的输出(506);并且确定临时配置的所述DNN的实例的输出误差(508);以及基于与所述多个可能的定点数格式中的每个定点数格式相关联的输出误差来选择定点数格式以表示输入至或输出自该层的该组值。3.根据权利要求2所述的方法(300),其中,与最低输出误差相关联的定点数格式被选择作为用于表示该组值的定点数格式。4.根据权利要求2所述的方法(300),其中,每个可能的定点数格式包括指数和尾数位长度,并且所述多个可能的定点数格式中的每个可能的定点数格式包括相同的尾数位长度和不同的指数。5.根据前述权利要求中任一项所述的方法(300),其中,选择用于表示输入至或输出自该层的一组或多组值中的每组值的定点数格式包括:选择最小化所述DNN的实例中的输出误差的用于表示针对该层的输入数据值的至少一部分的定点数格式(904);重新配置所述DNN的实例以用选择的定点数格式来表示针对该层的输入数据值的至少一部分(906);以及在所述重新配置之后,选择最小化所述DNN的实例中的输出误差的用于表示针对该层的输出数据值的至少一部分的定点数格式(922)。6.根据权利要求5所述的方法(300),其中,选择用于表示输入至或输出自该层的一组或多组值中的每组值的定点数格式还包括:选择最小化所述DNN的实例中的输出误差的用于表示针对该层的权重的至少一部分的定点数格式(910);以及在选择用于表示针对该层的输出数据值的至少一部分的定点数格式之前,重新配置所述DNN的实例以用选择的定点数格式来表示针对该层的权重的至少一部分(912)。7.根据权利要求1至4中任一项所述的方法(300),其中,所述DNN是分类网络,并且所述输出误差是响应于测试输入数据的所述DNN的实例的输出的前1名的分类准确度。8.根据权利要求1至4中任一项所述的方法(300),其中,所述DNN是分类网络,并且所述输出误差是响应于测试输入数据的所述DNN的实例的输出的前5名的分类准确度。9.根据权利要求1至4中任一项所述的方法(300),其中,所述DNN是分类网络,并且所述输出误差是响应于测试输入数据的所述DNN的实例的输出的分对数与基线输出的分对数之间的L1差异的总和。10.根据权利要求1至4中任一项所述的方法(300),其中,所述DNN是分类网络,并且所述输出误差是所述DNN的实例的输出的柔性最大归一化的分对数与基线输出的柔性最大归一化的分对数之间的L1差...

【专利技术属性】
技术研发人员:詹姆斯·因贝尔
申请(专利权)人:畅想科技有限公司
类型:发明
国别省市:英国,GB

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

1