具有可变输出数据格式的深度神经网络的硬件实现制造技术

技术编号:20867969 阅读:29 留言:0更新日期:2019-04-17 09:38
本发明专利技术涉及具有可变输出数据格式的深度神经网络的硬件实现。具体地,在本文描述的硬件实现和方法中,硬件实现被配置成:执行一个或多个硬件遍历来实施DNN,其中在每个遍历期间,硬件实现接收用于特定层的输入数据;根据特定层(以及可选地一个或多个后续层)来处理输入数据;并且基于在特定硬件遍历中处理的一个或多个层而输出期望格式的经处理的数据。具体地,当硬件实现接收待处理的输入数据时,硬件实现还接收指示硬件遍历的输出数据的期望格式的信息,并且硬件实现被配置成在输出经处理的数据之前将输出数据转换到期望格式。

【技术实现步骤摘要】
具有可变输出数据格式的深度神经网络的硬件实现
本专利技术涉及具有可变输出数据格式的深度神经网络的硬件实现。
技术介绍
深度神经网络(DNN)是可以用于机器学习应用的一种类型人工神经网络。具体地,DNN可以用在信号处理应用中,包括图像处理和计算机视觉应用。DNN已经在功率资源并不是重要因素的应用中实施。尽管如此,DNN应用于许多不同的
,其中用来实施DNN的硬件的资源使得功耗、处理能力或硅面积受限。因此,需要实施被配置成以有效的方式(即,以在操作时需要较少硅面积或较少处理能力的方式)实施DNN的硬件。此外,DNN可以以许多不同的方式被配置成用于多种不同的应用。因此,还需要用于灵活地实施DNN以便能够支持多种DNN配置的硬件。仅通过实例方式提供下文描述的实施例,并且不限制解决了深度神经网络的已知硬件实现的任何或所有缺点的实现。
技术实现思路
提供本
技术实现思路
以便介绍下文在具体实施方式中进一步描述的概念的选择。本
技术实现思路
并不意图标识所要求保护的主题的关键特征或基本特征,也不意图限制所要求保护的主题的范围。本文中描述具有可变输出数据格式的DNN的硬件实现和相关方法。具体地,在本文所述的硬件实现和方法中,硬件实现被配置成:执行一个或多个硬件遍历(hardwarepass)来实施DNN,其中在每个遍历期间,硬件实现接收用于特定层的输入数据;根据所述特定层(以及可选地一个或多个后续层)来处理所述输入数据;并且基于在特定硬件遍历中处理的一个或多个层而输出期望格式的经处理数据。具体地,当硬件实现接收待处理的输入数据时,硬件实现还接收指示硬件遍历的输出数据的期望格式的信息,并且硬件实现被配置成在输出经处理的数据之前将输出数据转换到期望格式。第一方面提供一种在深度神经网络“DNN”的硬件实现中的方法,所述硬件实现被配置成通过使用一个或多个硬件遍历处理数据来实施DNN,所述方法包括:接收用于硬件实现的硬件遍历的输入数据集,所述输入数据集表示用于DNN的特定层的输入数据的至少一部分;接收指示硬件遍历的期望输出数据格式的信息;根据与硬件遍历相关联的DNN的一个或多个层来处理所述输入数据集,所述一个或多个层包括DNN的特定层;以及将经处理的数据转换到硬件遍历的期望输出数据格式,以产生硬件遍历的输出数据。第二方面提供一种深度神经网络“DNN”的硬件实现,所述硬件实现被配置成通过使用一个或多个硬件遍历处理数据来实施DNN,所述硬件实现包括:输入模块,其被配置成接收用于硬件实现的硬件遍历的输入数据集,所述输入数据集表示用于DNN的特定层的输入数据的至少一部分;解码器,其被配置成接收指示硬件遍历的期望输出数据格式的信息;处理模块,其被配置成根据与硬件遍历相关联的DNN的一个或多个层来处理所述输入数据集,所述一个或多个层包括DNN的特定层;以及输出模块,其被配置成将经处理的数据转换到硬件遍历的期望输出数据格式,以产生硬件遍历的输出数据。DNN的硬件实现可以体现在集成电路上的硬件中。可以提供一种在集成电路制造系统处制造DNN的硬件实现的方法。可以提供一种集成电路定义数据集,所述集成电路定义数据集在集成电路制造系统中处理时将所述系统配置成制造DNN的硬件实现。可以提供一种非暂时性计算机可读存储介质,其上存储有对DNN的硬件实现的计算机可读描述,所述计算机可读描述在集成电路制造系统中处理时致使集成电路制造系统制造体现DNN的硬件实现的集成电路。可以提供一种集成电路制造系统,其包括:非暂时性计算机可读存储介质,其上存储有对DNN的硬件实现的计算机可读描述;布局处理系统,其被配置成处理计算机可读描述,以便生成对体现DNN的硬件实现的集成电路的电路布局描述;以及集成电路生成系统,其被配置成根据电路布局描述来制造DNN的硬件实施。可以提供用于执行如本文所述的方法的计算机程序代码。可以提供非暂时性计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令在计算机系统处执行时致使计算机系统执行如本文所述的方法。上述特征可以视情况组合,如技术人员将明白,并且可以与本文所述的实例的任一方面组合。附图说明现在将参考附图详细地描述实例,在附图中:图1是DNN中的示例数据的示意图;图2是具有可变输出数据格式的示例硬件实现的框图;图3是图2中的DNN的硬件实现的示例处理模块的框图;图4是图3的示例卷积引擎的框图;图5是图2中的DNN的硬件实现中的处理数据的示例方法的流程图;图6是具有可变内部数据格式的图2的DNN的硬件实现的第二示例处理模块的框图;图7是具有可变内部数据格式的图6的DNN的硬件实现中的处理数据的示例方法的流程图;图8是其中实施本文所述的DNN的硬件实现的示例计算机系统的框图;以及图9是用于生成体现如本文所述的DNN的硬件实现的集成电路的示例集成电路制造系统的框图。附图示出各种实例。技术人员应理解,附图中展示的元件边界(例如,框、框组或者其他形状)表示边界的一个实例。也许在一些实例中,一个元件可以被设计成多个元件或者多个元件可以被设计成一个元件。共同的参考标号在整个附图中在适当的情况下用来指示类似的特征。具体实施方式通过实例的方式呈现以下描述,以使得本领域的技术人员能够制作并使用本专利技术。本专利技术不限于本文所述的实施例,并且本领域的技术人员将明白对所公开的实施例的各种更改。仅通过实例的方式描述实施例。深度神经网络(DNN)是包括多个级联层的人工神经网络的形式,所述级联层使得DNN能够执行信号处理任务,包括但不限于,计算机视觉任务。每个层接收输入数据、根据层来处理输入数据以产生输出数据,所述输出数据作为输入数据提供给下一层或者作为DNN的最终输出而输出。因此,第一层接收对DNN的原始输入数据(例如,图像)作为输入数据。所有其他层从前一层接收输出数据(其可以被称为中间数据)作为输入数据。对层的输入数据执行的处理是基于层的类型。例如,DNN的每个层可以是多个不同层中的一个。每个DNN层类型包括,但不限于:卷积层、激活层、归一化层,以及池化层。本领域的技术人员将明白,这些是示例DNN层类型,并且这不是详尽列表且可以存在其他DNN层类型。针对卷积层,通过使用与该层相关联的权重对输入数据进行卷积来处理输入数据。具体地,每个卷积层与多个权重w0...wn相关联,所述权重也可以被称为滤波器权重或系数。权重可以进行分组以形成或限定一个或多个滤波器。参考图1,该图示出DNN中使用的数据格式的示例概述。如可以在图1中看出,DNN中使用的数据格式可以由多个平面形成。输入数据可以被布置成P个数据平面,其中每个平面具有维度x×y。DNN可以包括一个或多个卷积层,每个卷积层具有与之相关联的由多个权重w0...wn形成的多个滤波器。滤波器(w0...wn)各自具有维度m×n×P,并且根据若干个步骤的卷积操作在方向s和t上应用于输入数据,如图1所示。滤波器权重的数量和值可以在卷积层之间变化,使得针对第一卷积层,权重的数量可以被定义为并且针对第二卷积层,权重的数量可以被定义为其中第一卷积层中的权重的数量为n1且第二卷积层中的权重的数量为n2。卷积神经网络(CNN)是对图像识别和分类非常有效的一种具体类型的DNN,它通常包括多个卷积层。CNN的第一层通常但未必是卷积层。通常但未必跟本文档来自技高网...

【技术保护点】
1.一种深度神经网络“DNN”的硬件实现中的方法(500),所述硬件实现被配置成通过使用一个或多个硬件遍历处理数据来实施所述DNN,所述方法(500)包括:接收用于所述硬件实现的硬件遍历的输入数据集,所述输入数据集表示用于所述DNN的特定层的输入数据的至少一部分(502);接收指示所述硬件遍历的期望输出数据格式的信息(504);根据与所述硬件遍历相关联的所述DNN的一个或多个层来处理所述输入数据集,以产生经处理的数据,所述一个或多个层包括所述DNN的特定层(506);以及将所述经处理的数据转换成所述硬件遍历的期望输出数据格式,以产生所述硬件遍历的输出数据(508)。

【技术特征摘要】
2017.09.20 GB 1715215.81.一种深度神经网络“DNN”的硬件实现中的方法(500),所述硬件实现被配置成通过使用一个或多个硬件遍历处理数据来实施所述DNN,所述方法(500)包括:接收用于所述硬件实现的硬件遍历的输入数据集,所述输入数据集表示用于所述DNN的特定层的输入数据的至少一部分(502);接收指示所述硬件遍历的期望输出数据格式的信息(504);根据与所述硬件遍历相关联的所述DNN的一个或多个层来处理所述输入数据集,以产生经处理的数据,所述一个或多个层包括所述DNN的特定层(506);以及将所述经处理的数据转换成所述硬件遍历的期望输出数据格式,以产生所述硬件遍历的输出数据(508)。2.一种深度神经网络“DNN”的硬件实现(200),所述硬件实现被配置成通过使用一个或多个硬件遍历处理数据来实施所述DNN,所述硬件实现包括:输入模块(202),被配置成接收用于所述硬件实现的硬件遍历的输入数据集,所述输入数据集表示用于所述DNN的特定层的输入数据的至少一部分;解码器(206),被配置成接收指示所述硬件遍历的期望输出数据格式的信息;处理模块(204),被配置成根据与所述硬件遍历相关联的所述DNN的一个或多个层来处理所述输入数据集,以产生经处理的数据,所述一个或多个层包括所述DNN的特定层;以及输出模块(208),被配置成将所述经处理的数据转换成所述硬件遍历的期望输出数据格式,以产生所述硬件遍历的输出数据。3.根据权利要求2所述的硬件实现,其中:所述输入模块还被配置成接收用于所述硬件实现的不同硬件遍历的第二输入数据集;所述解码器还被配置成接收指示所述不同硬件遍历的期望输出格式的信息,所述不同硬件遍历的期望输出格式不同于所述硬件遍历的期望输出数据格式;所述处理模块还被配置成根据所述DNN的一个或多个层来处理所述第二输入数据集,以产生第二经处理的数据;并且所述输出模块还被配置成将所述第二经处理的数据转换成所述不同硬件遍历的期望输出数据格式,以产生第二输出数据。4.根据权利要求3所述的硬件实现,其中,所述第二输入数据集包括用于所述DNN的特定层的输入数据的一部分;或者其中,所述第二输入数据集包括用于所述DNN的另一层的输入数据的至少一部分。5.根据权利要求4所述的硬件实现,其中,所述第二输入数据集包括用于另一层的输入数据的至少一部分,并且所述第二输入数据集包括采用所述期望输出数据格式的所述输出数据的至少一部分。6.根据权利要求2至5中任一项所述的硬件实现,其中,所述输出模块还被配置成将采用所述期望输出数据格式的所述输出数据存储在存储器中;并且所述输入模块还被配置成从存储器中读取采用所述期望输出数据格式的所述输出数据,作为用于另一硬件遍历的输入数据集。7.根据权利要求2至5中任一项所述的硬件实现,其中,所述一个或多个层包括至少两个层,并且所述处理模块被配置成通过根据所述至少两个层中的一个层使用第一输入数据格式处理所述输入数据集并且根据所述至少两个层中的另一层使用第二输入数据格式处理所述输入数据集,而根据所述至少两个层来处理所述数据集,其中,所述第一输入数据格式和所述第二输入数据格式独立于所述硬件遍历的所述期望输出数据格式。8.根据权利要求7所述的硬...

【专利技术属性】
技术研发人员:克里斯·马丁大卫·霍夫保罗·布拉塞特卡加泰·迪基奇詹姆斯·因贝尔克利福德·吉布森
申请(专利权)人:畅想科技有限公司
类型:发明
国别省市:英国,GB

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

1