用于深度神经网络的硬件实现的误差分配格式选择制造技术

技术编号:21607057 阅读:25 留言:0更新日期:2019-07-13 18:45
本公开涉及用于深度神经网络的硬件实现的误差分配格式选择。用于基于DNN的输出误差中归因于不同层的定点格式的部分来确定DNN的一个或多个层的定点格式的方法。具体地,在本文描述的方法中,使用泰勒近似来确定可归因于每个层的权重或输入数据值的量化的DNN的输出误差,并且基于该归因来调整一个或多个层的定点数格式。例如,在由DNN使用的定点数格式包括指数和尾数位长度的情况下,可以减少分配有最少部分的输出误差的层的尾数位长度,或者可以增加分配有最多部分的输出误差的层的尾数位长度。可以迭代地重复这种方法以确定DNN的层的一组最佳定点数格式。

Error Allocation Format Selection for Hardware Implementation of Deep Neural Networks

【技术实现步骤摘要】
用于深度神经网络的硬件实现的误差分配格式选择
本公开涉及用于深度神经网络的硬件实现的误差分配格式选择。
技术介绍
深度神经网络(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函数f的切线的曲线图;图5是描绘反向传播的示意图;图6是用于确定DNN的输出误差中可归因于每个层的权重和/或输入数据值的量化的部分的示例方法的流程图;图7是描绘对DNN的经量化的实例的输出误差的计算的示意图;图8是描绘根据图7的方法确定的输出误差中可归因于GoogLeNetDNN的每个层的权重的量化的部分的曲线图;图9是用于基于使用图6的方法确定的输出误差中可归因于每个层的权重和/或输入数据值的量化的部分来确定用于表示DNN的一个或多个层的权重或输入数据值的定点数格式的第一示例方法的流程图;图10是用于基于使用图6的方法确定的输出误差中可归因于每个层的权重和/或输入数据值的量化的部分来确定用于表示DNN的一个或多个层的权重或输入数据值的定点数格式的第二示例方法的流程图;图11是DNN的示例硬件实现的框图;图12是示例性基于计算的设备的框图;图13是其中实现了图11的DNN的硬件实现的示例计算机系统的框图;以及图14是用于生成体现如本文所述的DNN的硬件实现的集成电路的示例集成电路制造系统的框图。附图描绘了各种示例。技术人员应理解,附图中示出的元件边界(例如,框、框组、或其他形状)表示边界的一个示例。在一些示例中,可以将一个元件设计为多个元件,或者一个元件可被设计为多个元件。在合适的情况下,贯穿附图使用共同的参考标记来指示相似的特征。具体实施方式通过示例的方式来呈现以下描述,以使得本领域技术人员能够制造和使用本专利技术。本专利技术不限于在此描述的实施例,并且对所公开的实施例的各种修改对于本领域技术人员来说是显而易见的。现在将仅通过示例的方式来描述实施例。深度神经网络(DNN)是一种人工神经网络,包括多个互连层,使得DNN能够执行信号处理任务,包括但不限于计算机视觉任务。图1示出了包括多个层102-1、102-2、102-3的示例DNN100。每个层102-1、102-2、102-3接收输入数据,根据该层来处理输入数据以产生输出数据。输出数据作为输入数据提供给另一层,或作为DNN的最终输出数据输出。例如,在图1的DNN100中,第一层102-1接收本文档来自技高网...

【技术保护点】
1.一种确定用于表示深度神经网络“DNN”的一个或多个层的值的定点数格式以用于配置所述DNN的硬件实现的计算机实现的方法(900,1000),值包括权重和输入数据值中的至少一者,所述方法(900,1000)包括:接收被配置为根据用于该层的一个或多个初始定点数格式表示一个或多个层的值的DNN的实例(602);确定响应于测试输入数据的所述DNN的所述实例的输出(604);确定所述DNN的所述实例的所述输出相对于基线输出的可微分误差(606);使用泰勒近似来确定所述可微分误差中与所述一个或多个层中的每个层的值的量化相关的部分(608);以及基于所述可微分误差中与所述一个或多个层中的每个层的值的量化相关的所述部分,调整所述一个或多个层中的至少一层的定点数格式(902)。

【技术特征摘要】
2017.11.03 GB 1718295.71.一种确定用于表示深度神经网络“DNN”的一个或多个层的值的定点数格式以用于配置所述DNN的硬件实现的计算机实现的方法(900,1000),值包括权重和输入数据值中的至少一者,所述方法(900,1000)包括:接收被配置为根据用于该层的一个或多个初始定点数格式表示一个或多个层的值的DNN的实例(602);确定响应于测试输入数据的所述DNN的所述实例的输出(604);确定所述DNN的所述实例的所述输出相对于基线输出的可微分误差(606);使用泰勒近似来确定所述可微分误差中与所述一个或多个层中的每个层的值的量化相关的部分(608);以及基于所述可微分误差中与所述一个或多个层中的每个层的值的量化相关的所述部分,调整所述一个或多个层中的至少一层的定点数格式(902)。2.根据权利要求1所述的方法(900,1000),其中,具有最低权重量化误差部分和/或最低输入数据值量化误差部分的层的定点数格式被调整。3.根据权利要求2所述的方法(900,1000),其中,每个定点数格式包括指数和尾数位长度,并且调整定点数格式包括将定点数格式调整为具有下一最低尾数位长度的定点数格式。4.根据权利要求1所述的方法(900,1000),其中,具有最高权重量化误差部分和/或最高输入数据值量化误差部分的层的定点数格式被调整。5.根据权利要求4所述的方法(900,1000),其中,每个定点数格式包括指数和尾数位长度,并且调整定点数格式包括将定点数格式调整为具有下一最高尾数位长度的定点数格式。6.根据前述任一项权利要求所述的方法(1000),还包括:在所述调整之后,确定响应于测试输入数据的所述DNN的所述实例的输出的准确度(1002);以及响应于确定所述DNN的所述实例的所述输出的所述准确度超过准确度阈值(1004),重复所述确定可微分误差、所述确定所述部分、以及所述调整。7.根据权利要求6所述的方法(1000),还包括:响应于确定所述DNN的所述实例的所述输出的所述准确度不超过所述准确度阈值,将所述调整丢弃(1006)。8.根据权利要求6所述的方法(1000),其中,所述DNN是分类网络,并且所述DNN的所述实例的所述输出的所述准确度是前1名的分类准确度或前5名的分类准确度。9.根据权利要求1至5中任一项所述的方法(900,1000),其中,使用泰勒近似来确定所述可微分误差中与所述一个或多个层中的每个层的值的量化相关的所述部分包括:使用反向传播确定所述可微分误差关于值的斜率;以及通过将特定值的量化误差乘以相应的斜率来计算所述可微分误差中可归因于该值的量化的所述部分。10.根据权利要求9所述的方法(900,1000),其中,确定所述可微分误差中与所述一个或多个层中的每个层的值的量化相关的所述部分还包括:通过对所述可微分误差中可归因于该层的权重的量化的部分求和来确定可归因于所述一个或多个层中的每个层的权重的量化的总误差,和/或通过对所述可微分误差中可归因于该层的输入数据值的量化的部分求和来确定可归因于所述一个或多个层中的每个层的输入数据值的量化的总误差。11.根据权利要求1至5中任一项所述的方法(900,1000),其中,所述DNN是分类网络,并且所述...

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

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

1