当前位置: 首页 > 专利查询>辉达公司专利>正文

对包含元素级别操作的神经网络进行剪枝制造技术

技术编号:24331911 阅读:38 留言:0更新日期:2020-05-29 20:01
本发明专利技术提供了一种对包含元素级别操作的神经网络进行剪枝。神经网络中元素级别操作的输入层可以被剪枝,以使经剪枝的层的形状(如高度、宽度和深度)匹配。剪枝引擎将所有输入层识别为元素级别操作。对于输入层中的每个对应神经元集合,剪枝引擎均衡化与所述神经元相关联的度量,以生成与所述集合相关联的经均衡度量。剪枝引擎基于针对每个唯一对应神经元集合生成的经均衡度量来剪枝输入层。

Pruning the neural network containing element level operations

【技术实现步骤摘要】
对包含元素级别操作的神经网络进行剪枝
技术介绍
为了方便训练,神经网络经常被过度参数化。过度参数化导致计算复杂并且内存密集的神经网络,其中层间存在大量冗余连接。神经网络可以被剪枝(prun)以断开连接,从而降低网络的复杂性。在某些情况下,剪枝神经网络会降低性能或影响神经网络的准确性。例如,将输入层剪枝成神经网络中的元素级别(element-wise,按元素)操作可能会阻止元素级别操作的执行或影响元素级别操作其他方面的性能。附图说明因此,为了更详细地理解各个实施例的上述特征,可以参照各个实施例来获得对上面简要概述的专利技术构思的更具体的描述,其中一些实施例在附图中示出。然而,应当注意的是,附图只示出了专利技术构思的典型实施例,因此不应当认为以任何方式限制其范围,而且还存在其他同样有效的实施例。图1示出了被配置为实现各个实施例的一个或更多个方面的系统。图2A示出了根据各个实施例的用于剪枝神经网络的剪枝工作流程。图2B示出了根据各个实施例的神经网络和经剪枝神经网络的示例。图2C示出了根据各个实施例的包括元素级别操作的神经网络的一部分。图3是根据各个实施例的图1中的剪枝引擎的详细说明。图4是根据各个实施例的用于将包含在神经网络中的输入层剪枝为元素级别操作的方法步骤的流程图。图5示出了根据各个实施例的残差网络中的网络块的体系结构。图6是根据各种实施例的用于对残差网络中卷积层和识别层进行剪枝的方法步骤的流程图。图7是被配置为实现各个实施例的一个或更多个方面的计算机系统的框图。图8是根据各个实施例的在图7的并行处理子系统中包括的并行处理单元(PPU)的框图。图9是根据各个实施例的在图8的并行处理单元(PPU)中包括的通用处理集群(GPC)的框图。具体实施方式在下面的描述中,提出了许多具体细节以提供对各个实施例的更透彻的理解。然而,对于本领域技术人员来说,显而易见的是,在没有这些具体细节中的一个或更多个的情况下,依然可以实践本专利技术构思。系统综述图1示出了被配置为实现各个实施例的一个或更多个方面的系统100。如图所示,计算机系统100包括通过网络140可通信地耦合的训练计算系统110、服务器计算系统120和客户端计算系统130。在一个实施例中,训练计算系统110包括内存120、训练数据库116和一个或更多个处理单元118。一个或更多个处理单元118可以包括任何技术上可行的硬件单元集合,被配置为处理数据和执行软件应用程序。例如,处理单元118可以是中央处理单元、图形处理单元、微处理器、ASIC、FPGA、控制器或微控制器。在一个实施例中,内存120可以包括一个或更多个非暂时计算机可读存储介质,如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等及其组合。在一个实施例中,内存120存储由一个或更多个处理单元118执行的数据和指令。在一个实施例中,内存120包括由一个或更多个处理单元118执行的训练引擎112和剪枝引擎114。在一个实施例中,训练引擎112使用存储在训练数据库116中的训练数据,通过各种机器学习技术来训练神经网络。机器学习技术包括但不限于梯度下降和正则化。在一个实施例中,训练引擎112训练神经网络。例如,在不同的实施例中,训练引擎112可以训练递归神经网络(RNN)、卷积神经网络(CNN)、深度神经网络(DNN)、深度卷积网络(DCN)、深度信念网络(DBN)、生成对抗网络(GAN)、自组织映射(SOM)或任何其他类型的在技术上可行的神经网络。在一个实施例中,神经网络(如CNN)包括一个或更多个卷积层、一个或更多个池化层、和/或一个或更多个全连接层。在一个实施例中,每个层被配置成使用具有一个或更多个参数的可微函数,将三维(3D)输入量转换为3D输出量。神经网络的层可以包括在三维(如宽度、高度和深度)中排列的多个神经元。在一个实施例中,神经网络的给定层中的神经元连接到前一层的一小部分。卷积层可以配置为计算连接到输入中的局部区域的神经元的输出。在一个实施例中,训练引擎112通过逐渐增加神经网络的层间连接的数量,以增量方式对神经网络进行训练。例如,训练引擎112可以通过对除一小部分连接(如1%、0.1%等)之外的所有连接的取消激活来初始化神经网络用于增量训练。训练引擎112可以递增地增加神经网络的连接的数量,这样训练引擎112就可以在连接的数量增加的神经网络上执行训练。这个过程可以重复一遍或更多遍,使得训练引擎112逐渐增加神经网络中的连接的数量,并随着连接的逐渐增加而训练神经网络140。在一个实施例中,训练引擎112可以根据用于训练神经网络的各种适当的训练技术,以任何适当的方式增加神经网络的密度。例如,训练引擎112可以确定一个加密方案,该方案定义了增加连接的时间间隔和增加连接的数量。在一个实施例中,至少部分地基于训练引擎112用于训练神经网络的训练技术来确定加密方案。至少部分地根据卷积层的参数和/或神经网络中的一些可能的连接,可以进一步确定加密方案。在一个实施例中,剪枝引擎114剪枝神经网络的层内的神经元。在各种实施例中,剪枝引擎114剪枝由训练引擎112训练的神经网络。在一个实施例中,剪枝神经网络降低了神经网络的总体复杂性,从而降低了与神经网络相关联的计算需求和内存需求。在一个实施例中,剪枝引擎114选择要剪枝的神经元,以减少剪枝对神经网络的性能的影响。剪枝引擎114使神经网络中被选择进行剪枝的神经元失活,也使神经网络中与该被选择神经元的任何连接失活。下面图2-图7的描述提供了与剪枝引擎114相关的各种实施例的详细信息。在一个实施例中,训练数据库116存储与神经网络训练和/或剪枝相关的训练数据和参数。在一个实施例中,在神经网络的训练和/或剪枝期间,该参数被训练引擎112和/或剪枝引擎114使用。该参数包括但不限于层数、每层的神经元数、训练迭代数、隐藏神经元数、学习率。在一个实施例中,服务器计算系统120存储由训练计算系统110生成的神经网络。在一个实施例中,服务器计算系统120包括一个或更多个服务器计算设备,或服务器计算系统120由一个或更多个服务器计算设备实现。在服务器计算系统120包含多个服务器计算设备的示例中,此类服务器计算设备可以根据串行计算架构、并行计算架构或其某些组合进行操作。在一个实施例中,服务器计算系统120可以是训练计算系统110的一部分。在一个实施例中,客户端计算系统130从服务器计算系统120接收经训练神经网络和/或经剪枝神经网络。客户端计算系统130可以实现一个或更多个软件应用程序,这些软件应用程序使用从服务器计算系统120接收到的神经网络或处理从服务器计算系统120接收到的神经网络来执行操作。这些操作包括但不限于:分类操作、计算机视觉操作和异常检测操作。在一个实施例中,客户端计算系统130是自动驾驶车辆。在另一个实施例中,客户端计算系统130是移动计算设备,如智能手机或智能手表。网络140可以是任何类型的通信网络,如局域本文档来自技高网...

【技术保护点】
1.一种计算机执行的方法,包括:/n识别神经网络内的多个网络层中的多个对应神经元,其中所述多个对应神经元中的每个神经元位于包含在所述多个网络层中的不同网络层中的匹配位置;以及/n至少部分地基于与所述多个对应神经元相关联的度量,使来自所述多个网络层的所述多个对应神经元中的每一个神经元失活。/n

【技术特征摘要】
20181121 US 16/197,9861.一种计算机执行的方法,包括:
识别神经网络内的多个网络层中的多个对应神经元,其中所述多个对应神经元中的每个神经元位于包含在所述多个网络层中的不同网络层中的匹配位置;以及
至少部分地基于与所述多个对应神经元相关联的度量,使来自所述多个网络层的所述多个对应神经元中的每一个神经元失活。


2.根据权利要求1所述的方法,还包括:基于与所述多个对应神经元中的每个神经元相关联的一个或更多个权重,计算与所述多个对应神经元相关联的所述度量。


3.根据权利要求2所述的方法,其中计算所述度量包括:对与所述多个对应神经元中的每个神经元相关联的所述一个或更多个权重执行一个或更多个均衡化操作,以生成所述度量。


4.根据权利要求3所述的方法,其中执行所述一个或更多个均衡化操作包括:对分配给所述多个对应神经元中的第一神经元的一个或更多个权重以及分配给所述多个对应神经元中的第二神经元的一个或更多个权重应用均衡化操作符。


5.根据权利要求3所述的方法,其中所述一个或更多个均衡化操作包括算术平均操作、几何平均操作、并集操作和交集操作中的至少一个。


6.根据权利要求3所述的方法,其中执行所述一个或更多个均衡化操作包括:
确定在所述多个对应神经元中的至少一个神经元与处于或高于阈值的单个度量相关联;以及
将与所述多个对应神经元相关联的所述度量设置为所述阈值。


7.根据权利要求1所述的方法,其中所述神经网格包括残差网络,并且其中所述多个网络层包括所述残差网络的卷积层和所述残差网络的识别层。


8.根据权利要求1所述的方法,其中所述多个对应神经元中的每一个神经元向所述神经网络的给定计算组件产生不同的输入。


9.一种计算机执行的方法,包括:
识别神经网络内的多个网络层中的多个对应神经元,其中所述多个对应神经元中的每一个神经元与匹配的特征类型相关联;以及
至少部分地基于与所述多个对应神经元相关联的度量,使来自所述神经网络内的所述多个网络层的多个对应神经元中的每一个神经元失活。


10.根据权利要求9所述的方法,其中所述多个对应神经元中的每...

【专利技术属性】
技术研发人员:V·普拉文A·乌巴勒P·西拉姆G·海因里希T·居雷尔
申请(专利权)人:辉达公司
类型:发明
国别省市:美国;US

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

1