CN116663640A - 用于剪枝的方法和设备 - Google Patents
用于剪枝的方法和设备 Download PDFInfo
- Publication number
- CN116663640A CN116663640A CN202211375155.4A CN202211375155A CN116663640A CN 116663640 A CN116663640 A CN 116663640A CN 202211375155 A CN202211375155 A CN 202211375155A CN 116663640 A CN116663640 A CN 116663640A
- Authority
- CN
- China
- Prior art keywords
- neural network
- pruning
- pruned
- binary vector
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013138 pruning Methods 0.000 title claims abstract description 181
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000013528 artificial neural network Methods 0.000 claims abstract description 190
- 239000013598 vector Substances 0.000 claims description 93
- 230000015654 memory Effects 0.000 claims description 41
- 238000005457 optimization Methods 0.000 claims description 17
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims description 3
- 239000010410 layer Substances 0.000 description 93
- 230000004913 activation Effects 0.000 description 24
- 238000001994 activation Methods 0.000 description 24
- 239000011159 matrix material Substances 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 238000013527 convolutional neural network Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 238000012549 training Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Harvester Elements (AREA)
Abstract
公开用于剪枝的方法和设备。所述方法由包括处理器的设备执行,所述方法包括:确定训练后的神经网络的权重重要性;接收与操作资源相关的约束条件;以及根据约束条件,确定用于使训练后的神经网络的权重重要性最大化的剪枝掩码。
Description
本申请要求于2022年2月16日提交到韩国知识产权局的第10-2022-0020308号韩国专利申请的权益,该韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
下面的描述涉及具有剪枝的方法和装置。
背景技术
人工神经网络设备通常需要大量的处理能力以能够处理复杂的输入数据(在下文中,“神经网络”表示人工神经网络)。增加神经网络的学习能力可涉及增加神经网络内的连接性(connectivity)的复杂性。虽然旧的学习数据的准确性可增加,但是新学习的数据的估计值的置信度可降低。也就是说,可发生过拟合问题。此外,增加神经网络的复杂性可过度增加神经网络的存储器分配,这造成小型化和商业化方面的问题。
因此,存在对在减少实现神经网络的成本的同时总体维持神经网络的性能的需要。
发明内容
提供本发明内容以便以简化的形式介绍以下在具体实施方式中进一步描述的构思的选择。本发明内容不意在确定要求保护的主题的关键特征或必要特征,也不意在用作帮助确定要求保护的主题的范围。
在一个总体方面,一种由包括处理器的设备执行的方法,包括:确定训练后的神经网络的权重重要性;接收与操作资源相关的约束条件;以及根据约束条件,确定用于使训练后的神经网络的权重重要性最大化的剪枝掩码。
确定剪枝掩码的步骤可包括:确定针对剪枝的输入通道的剪枝二进制向量;以及确定针对所述剪枝的输出通道的空间剪枝二进制向量。
剪枝神经网络的步骤可包括:基于确定的针对所述剪枝的输入通道的剪枝二进制向量来剪枝输入通道的权重;以及基于确定的输出通道的空间剪枝二进制向量来剪枝输出通道的空间维度上的权重。
确定权重重要性的步骤可包括:将权重重要性表示为针对所述剪枝的输入通道的剪枝二进制向量或针对所述剪枝的输出通道的空间剪枝二进制向量中的至少一个,并且接收约束条件的步骤可包括:将约束条件表示为输入通道的剪枝二进制向量或输出通道的空间剪枝二进制向量中的至少一个。
确定剪枝掩码的步骤可包括:根据约束条件,将用于使神经网络的权重重要性最大化的优化式表示为输入通道的剪枝二进制向量和输出通道的空间剪枝二进制向量中的至少一个。
确定剪枝掩码的步骤可包括:基于二进制向量优化算法来确定与优化式对应的剪枝掩码。
确定权重重要性的步骤可包括:基于神经网络的权重的绝对值和/或误差的梯度的绝对值来确定权重重要性。
与操作资源相关的约束条件可以是用于执行神经网络的推断的硬件资源的硬件性能约束。
与操作资源相关的约束条件可基于以下项中的至少一个被确定:能够用于执行神经网络的推断的存储器的可用容量、用于执行神经网络的推断的硬件资源的每秒浮点运算、以及使用用于执行神经网络的推断的硬件资源的时间限制。
所述方法还可包括:基于剪枝掩码来剪枝训练后的神经网络;接收输入图像;以及使用接收的输入图像基于剪枝后的神经网络来生成推断结果。
在一个总体方面,一种电子设备包括:处理器;以及存储器,存储能够由处理器执行的指令,其中,处理器被配置为,响应于执行所述指令:确定训练后的神经网络的权重重要性;接收与操作资源相关的约束条件;以及根据约束条件,确定用于使训练后的神经网络的权重重要性最大化的剪枝掩码。
处理器还可被配置为:确定输入通道的剪枝二进制向量;以及确定输出通道的空间剪枝二进制向量。
处理器还可被配置为:基于剪枝掩码来剪枝神经网络。
处理器可被配置为:基于剪枝后的神经网络来执行推断。
处理器还可被配置为:控制所述电子设备以基于确定的输入通道的剪枝二进制向量来剪枝输入通道的权重;以及基于确定的输出通道的空间剪枝二进制向量来剪枝输出通道的空间维度上的权重。
处理器可被配置为:将权重重要性表示为输入通道的剪枝二进制向量或输出通道的空间剪枝二进制向量中的至少一个;以及将约束条件表示为输入通道的剪枝二进制向量或输出通道的空间剪枝二进制向量中的至少一个。
处理器还可被配置为:根据约束条件,将用于使神经网络的权重重要性最大化的优化式表示为输入通道的剪枝二进制向量或输出通道的空间剪枝二进制向量中的至少一个。
处理器还可被配置为:基于二进制向量优化算法来确定与优化式对应的剪枝掩码。
处理器还可被配置为:基于神经网络的权重的绝对值和/或误差的绝对值梯度来确定权重重要性。
权重重要性可包括:与训练后的神经网络中的一个或多个权重对应的值,并且其中,所述值可对应于所述一个或多个权重对训练后的神经网络的准确性的影响。
与操作资源相关的约束条件可以是用于执行神经网络的推断的硬件资源的硬件性能约束。
与操作资源相关的约束条件可基于以下项中的至少一个被确定:能够用于执行神经网络的推断的存储器的可用容量、用于执行神经网络的推断的硬件资源的每秒浮点运算、以及使用用于执行神经网络的推断的硬件资源的时间限制。
处理器还可被配置为:基于剪枝掩码来剪枝训练后的神经网络;接收输入图像;以及使用接收的输入图像基于剪枝后的神经网络来生成推断结果。
在一个总体方面,一种方法由处理器执行,并且所述方法包括:接收约束条件,约束条件指示当对应的训练后的神经网络执行推断时将被遵守的约束;基于约束条件和训练后的神经网络,以神经网络的权重特征为基础来确定满足训练后的神经网络的约束条件的剪枝掩码;以及使用剪枝掩码来剪枝训练后的神经网络的输出通道的权重。
剪枝掩码可基于输入剪枝向量和输出剪枝向量被确定,输入剪枝向量对应于神经网络的层的针对所述剪枝的输入通道,输出剪枝向量对应于神经网络的层的输出通道。
权重特征可基于训练后的神经网络的一个或多个权重。
权重特征可对应于权重对训练后的神经网络的预测准确性的影响。
神经网络可包括卷积神经网络,其中,层可包括卷积神经网络的卷积层。
确定剪枝掩码的步骤可包括:执行由约束条件和权重条件约束的优化算法。
与操作资源相关的约束条件可以是用于执行神经网络的推断的硬件资源的硬件性能约束。
与操作资源相关的约束条件可基于以下项中的至少一个被确定:能够用于执行神经网络的推断的存储器的可用容量、用于执行神经网络的推断的硬件资源的每秒浮点运算、以及使用用于执行神经网络的推断的硬件资源的时间限制。
所述方法还可包括:基于剪枝掩码来剪枝训练后的神经网络;接收输入图像;以及使用接收的输入图像基于剪枝后的神经网络来生成推断结果。
一种非暂时性计算机可读存储介质可存储指令,所述指令在由处理器执行时使处理器执行任何的所述方法。
从下面的具体实施方式、附图以及权利要求,其他特征和方面将是清楚的。
附图说明
图1示出根据一个或多个实施例的在神经网络中执行的操作的示例。
图2A示出根据一个或多个实施例的神经网络剪枝的示例。
图2B示出根据一个或多个实施例的神经网络剪枝的示例。
图3A示出根据一个或多个实施例的通道剪枝方法的示例。
图3B示出根据一个或多个实施例的剪枝方法的示例。
图4示出根据一个或多个实施例的剪枝方法的示例。
图5示出根据一个或多个实施例的通过方法剪枝的权重的示例。
图6示出根据一个或多个实施例的电子设备的硬件配置的示例。
贯穿附图和具体实施方式,除非另外描述或提供,否则相同的附图参考标号将被理解为表示相同的元件、特征和结构。附图可不按比例,并且为了清楚、说明和方便,附图中的元件的相对尺寸、比例和描绘可被夸大。
具体实施方式
提供下面的具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺序仅是示例,并且不限于在此阐述的那些顺序,而是除了必须以特定的顺序发生的操作之外,可如在理解本申请的公开之后将是清楚的那样被改变可。此外,为了更加清楚和简明,可省略在理解本申请的公开之后已知的特征的描述。
在此描述的特征可以以不同的形式来实现,而不应被解释为限于在此描述的示例。相反,在此描述的示例已被提供,以仅示出在理解本申请的公开之后将是清楚的实现在此描述的方法、设备和/或系统的许多可行方式中的一些可行方式。
在此使用的术语仅用于描述各种示例,并且不应该用于限制公开。除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。如在此使用的,术语“和/或”包括相关联的所列项中的任何一个和任何两个或更多个的任何组合。作为非限制性示例,术语“包含”、“包括”和“具有”说明存在陈述的特征、数量、操作、构件、元件和/或它们的组合,但不排除存在或添加一个或多个其他特征、数量、操作、构件、元件和/或它们的组合。
贯穿说明书,当组件或元件被描述为“连接到”、“结合到”或“接合到”另一组件或元件时,该组件或元件可直接“连接到”、“结合到”或“接合到”该另一组件或元件,或者可合理地存在介于其间的一个或多个其他组件或元件。当组件或元件被描述为“直接连接到”、“直接结合到”或“直接接合到”另一组件或元件时,可不存在介于其间的其他元件。同样地,例如“在……之间”和“紧接在……之间”以及“与……邻近”和“与……紧邻”的表述也可如前所述来解释。
虽然在此可使用诸如“第一”、“第二”和“第三”、或A、B、(a)、(b)等的术语来描述各种构件、组件、区域、层或部分,但是这些构件、组件、区域、层或部分不应被这些术语限制。这些术语中的每个不用于定义例如对应的构件、组件、区域、层或部分的本质、次序或序列,而仅用于将对应的构件、组件、区域、层或部分与其他构件、组件、区域、层或部分区分开。因此,在不脱离示例的教导的情况下,在此描述的示例中所称的第一构件、第一组件、第一区域、第一层或第一部分也可被称为第二构件、第二组件、第二区域、第二层或第二部分。
除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与由本公开所属领域的普通技术人员通常理解以及基于对本申请的公开的理解的含义相同的含义。除非在此明确地如此定义,否则术语(诸如,在通用词典中定义的术语)应被解释为具有与它们在相关领域和本申请的公开的上下文中的含义一致的含义,并且不应以理想化的或过于形式化的含义解释。在此关于示例或实施例的术语“可”的使用(例如,关于示例或实施例可包括或实现什么)意味着存在包括或者实现这样的特征的至少一个示例或实施例,而所有示例不限于此。
示例可被实现为各种类型的产品(诸如,以个人计算机(PC)、膝上型计算机、平板计算机、智能电话、电视(TV)、智能家用电器、智能车辆、自助服务终端、可穿戴装置等为例)。在下文中,示例将操作附图被详细描述。在附图中,相同的参考标号普遍用于相同的元件。
图1示出根据一个或多个实施例的在神经网络中执行的操作的示例。
神经网络是模仿人脑的信息处理方法的计算系统。深度神经网络(DNN)可包括多个层(例如,接收输入数据的输入层、输出通过基于学习的以输入数据为基础的预测得到的结果的输出层、和输入层与输出层之间的一个或多个隐藏层)得到。卷积神经网络(CNN)、递归神经网络(RNN)等是用于处理信息的DNN的示例。
训练神经网络的方法可被称为深度学习。各种算法(例如,CNN方案和RNN方案)可被用于深度学习。训练人工神经网络可涉及确定以及更新或调整层之间的权重,并且可进一步或可选地包括确定和更新应用于神经网络的节点的相应偏置。例如,邻近层的节点之间的相应连接的权重可在训练期间被更新。
包括多个神经元之间的权重和偏置的分层结构和层可被统称为神经网络的连接性(connectivity)。训练神经网络可涉及构建和学习连接性。
参照图1,示例神经网络100可包括输入层(层1)、隐藏层(例如,层2和层3)以及输出层(层4)。神经网络可基于接收的输入数据(例如,I1和I2)来执行操作,并生成输出数据(例如,Q1和Q2)。如上所述,DNN可以是CNN、RNN、深度信念网络(DBN)、受限玻尔兹曼机(RBM)等,但示例不限于此。
在CNN的情况下,CNN使用卷积运算,卷积运算对于例如在图像中找到图案、识别对象、面部或场景等是有用的。在CNN中,滤波器可在以预定间隔遍历输入图像的像素或数据时执行卷积运算以提取图像的特征,并使用卷积运算的结果来生成特征图或激活图。滤波器可包括例如用于找到图像的特征的权重或非权重参数。示例滤波器还可被称为下面描述的内核(在一些情况下,滤波器可以是在相应的输入通道上进行卷积的多个内核)。当滤波器被应用于输入图像时,滤波器移过(或遍历)输入图像的像素或数据的间隔可被称为“步长”。例如,当步长是“2”时,滤波器可执行卷积运算,在输入图像的像素或数据中移动2个空间,并再次执行卷积运算,重复直到输入图像已经被处理。该示例可被表示为“步长参数=2”。
特征图可通过卷积运算从原始图像(或从前面的层的特征图)得到,并且通常以矩阵或张量的形式表示。另外,术语“激活图”可表示通过将激活函数应用于滤波器的加权的结果而获得的结果,该滤波器例如被应用于输入特征图或先前层特征图。换言之,激活图可对应于执行这样的激活函数的神经网络的层的每个输出结果。其中,“激活图”在此被使用,除非上下文另有暗示,否则这样的描述可同样地应用于“特征图”。激活图还可被称为由施加激活(例如,将非线性施加到层结果中)的层生成的特征向量、特征体量(featurevolume)或张量。
最终从CNN输出的数据的形状可根据例如滤波器大小、步长、滤波器的数量、填充是否被应用和/或在卷积运算之后应用的最大池化大小等而改变。在卷积层中,由于卷积涉及滤波器和步长,因此从滤波器的应用产生的特征图的空间大小通常小于输入到对应的卷积层的数据的空间大小。
填充可以是与在一组数据(通常是矩阵)的边界周围添加的像素的指定数量(例如,“2”)对应的预定值。例如,当填充被设置为“2”时,预定值(例如,“0”)可被添加到数据以添加输入数据的矩阵的2像素厚边界,例如,以填充被应用之前为例,从先前的卷积层输出的特征图可具有32×32的大小。因此,当填充被设置为“2”时,数据的矩阵的增加后的大小可以是36×36。该示例可被表示为“填充参数=2”。因此,卷积层中的输出数据的空间大小可通过填充而被调整。
例如,如果填充不被使用,则在经过卷积层时,数据可具有其空间大小的减小,因此,数据的角落和/或图像边缘周围的信息可丢失或减少。因此,填充可被用于防止数据的角落周围的信息丢失,或被用于将卷积层中的输出的空间大小与由下一卷积层预期的输入数据的空间大小匹配。
当神经网络100被实现为DNN架构时,神经网络100可包括能够处理有效信息的更多层,因此与仅包括单个层的神经网络相比,神经网络100可处理更复杂的数据集。图1示出包括四个层的神经网络100,但这仅是示例,神经网络100可包括更少或更多的层或者更少或更多的通道。也就是说,神经网络100可包括与图1中示出的结构不同的各种结构的层。
包括在神经网络100中的每个层可包括可根据多个通道而被组织的多个节点。每个节点还可被称为处理元件(PE)、单元或其它类似术语。出于解释的目的,如图1中所示,其中,层的每个通道包括一个节点,层1可包括两个通道(节点),层2和层3中的每个可包括三个通道。然而,这仅是示例,包括在神经网络100中的每个层可包括各种数量的通道。例如,在CNN中,输入图像可具有多个通道(例如,颜色通道),由给定层输出的体量(volume)可具有该给定层中的可与滤波器的数量对应的数量的通道(例如,特征图)。
包括在神经网络100的每个层中的通道可被互连以处理数据。例如,由一层输出的通道可由下一层接收,用于针对下一层中的该通道的运算。
每个通道的输入和输出可分别被称为输入激活和输出激活。激活可以是给定层处的一个通道的输出和与对应地包括在后续层中的通道的输入之一对应的参数两者。同时,给定层处的通道可基于从先前层中的通道接收的(或对应于先前层中的通道的)激活、权重和偏置来确定它们各自的输出激活。使用上面的解释性示例,当两个层的每个通道包括单个节点时,权重可以是与给定层处的通道的节点与下一层处的通道的节点之间的连接相关联的参数。权重可被应用于来自给定层处的通道的节点的输出激活,以通常结合来自给定层中的连接到下一层中的通道的节点的其他通道的节点的输出激活(和各自相关联的权重)来计算用于随后的层中的通道的节点的输出激活。
输入的值与对应的滤波器权重的每个通道的卷积层运算可由计算单元或处理元件处理。例如,在神经网络中,当σ是激活函数,是从包括在第i-1层中的第k节点到包括在第i层中的第j节点的权重,/>是包括在第i层中的第j节点的偏置值,并且/>是第i层的第j节点的激活时,激活/>可在下面被表示在等式1中。
等式1
如图1中所示,第一层(层1)的第一通道(CH1)的激活可被表示为另外,根据等式1,/>可具有/>的值。前述的等式1仅被提供为示例以描述用于神经网络100处理数据的激活、权重和偏置。激活可以是通过允许从先前层接收的激活的加权和经过激活函数(诸如,S型(sigmoid)函数或修正线性单元(ReLU)函数)而获得的值。
图2A和图2B示出根据一个或多个实施例的神经网络剪枝(pruning)的示例。
如图2A中所示,神经网络210是剪枝之前的神经网络,神经网络220是其剪枝之后的神经网络210。
例如,在预剪枝神经网络210中,包括在神经网络210中的任何两个邻近层中的所有配对节点组合之间存在连接关系,即,神经网络210被全连接。特别地,由于示例神经网络210是全连接神经网络,因此表示属于包括在神经网络210中的相应邻近层的两个节点之间的连接强度的权重可大于“0”。因此,当在所有邻近层的神经元之间存在全连接性时,神经网络的总体复杂度是最大的。在这样的全连接或高度连接的神经网络中,神经网络的预测结果的准确性和可靠性由于过拟合而降低是普遍的。为了降低神经网络的复杂度,可对神经网络执行剪枝。
神经网络剪枝可以是这样的处理:例如,如图2A中所示,响应于在神经网络210中连接的任何节点之间的任何权重(或其绝对值)小于或等于预定阈值,削弱或去除对应节点之间的连接性。在下文中,为了便于描述,“神经网络剪枝”也将被称为“剪枝”,并且可表示不同的剪枝技术或它们的组合。虽然剪枝阈值可在此被描述为“预定”,但是阈值也可基于外部输入、神经网络的状态、学习/反馈等而被动态地确定。预定阈值的在此描述适用于动态确定的阈值(即,阈值可在当直到并包括在阈值用于剪枝时的任何时间点(以及基于任何信息)被确定)。如可被看出的,“预定”意味着阈值在其用于剪枝之前的任何时间被确定。在一些实施例中,阈值可以是复杂的。例如,阈值可以是范围、布尔(Boolean)表达式、数学函数、它们的组合等。
例如,当神经网络210中的节点1与节点2-3之间的权重小于或等于预定阈值时,剪枝是将神经网络210中的节点1与节点2-3之间的权重设置为“0”的处理,例如,以有效地去除如在剪枝后的神经网络220中所示的节点1与节点2-3之间的连接性(在一些实施例中,剪枝可涉及去除或抑制连接,从而对应的先前连接的通道/节点停止交换激活输入/输出)。也就是说,在剪枝后的神经网络220中,神经网络210中的一些节点之间的连接性可被削弱或去除。
神经网络的每个层可在任何时间被搜索,以确定合适对其进行剪枝的节点或连接。针对层和/或权重的搜索可被执行,使得神经网络的推断准确性(即,神经网络的输出)可不被过度影响。在一些实施例中,剪枝可在权重正被应用于激活计算时、在训练期间、当神经网络“离线”时(例如,在维护处理时)等被执行。
当剪枝处理正在包括在神经网络中的层的权重之中被执行时,具有小于预定权重阈值的值的节点之间的连接可被确定,并且具有这样的权重的节点之间的连接关系可被去除或削弱。如接下来参照图2B讨论的,在此描述的剪枝技术可被应用于内核的加权连接。
参照图2B,对作为神经网络中的第n层的第k内核的KERNELn_k230(n和k是正整数)执行剪枝处理的结果被示出。作为对神经网络剪枝的设置,例如,权重阈值τ被假设为“0.5”。
在剪枝之前,KERNELn_k230可具有各种值的权重。在剪枝处理期间,在KERNELn_k230的权重之中,小于或等于权重阈值(τ=0.5)的所有权重可被剪枝为“0”,并且剪枝后的KERNELn_k240可被生成。与KERNELn_k230相比,剪枝后的KERNELn_k240可削弱邻近层的节点之间的连接性,因此,邻近节点之间的计算操作的量可由于权重中的一些具有“0”的值而被减少。
图3A示出根据一个或多个实施例的通道剪枝方法的示例300。
参照图3A的示例,例如,在神经网络的对应层中,内核图的空间大小可以是K×K,并且针对剪枝,输入通道(Cin)的数量可以是“6”,输出通道(Cout)的数量可以是“5”。在此,对针对剪枝的输入通道的引用指示内核的通道(或可指示多个或所有内核的同一通道)。例如,当到卷积层的输入包括“6”个通道(例如,6个特征图)时,与卷积层对应的一个或多个内核中的每个内核也将具有6个对应的通道,一个对应的通道用于输入的每个通道。相似地,对针对剪枝的输出通道的引用指示与卷积层对应的一个或多个内核的数量,该数量影响卷积层的输出通道的数量。例如,当存在与卷积层对应的“5”个内核时,将存在卷积层的5个输出通道。
如接下来所述,通道剪枝方法可涉及基于输入通道剪枝二进制向量针对每个输入通道执行剪枝,以及使用输出通道剪枝二进制向量针对每个输出通道执行剪枝。输入通道剪枝二进制向量可以是指示输入通道的权重是否被剪枝的二进制向量,并且可被表示为特别地,基于确定剪枝给定输入通道,(输入通道剪枝二进制向量的)与给定输入通道对应的向量值可被表示为“0”,相反,基于确定不剪枝给定输入通道,与给定通道对应的向量值可在输入通道剪枝二进制向量中被表示为“1”。例如,如图3A中所示,基于确定剪枝第二、第四和第五输入通道,输入通道剪枝二进制向量可如在下面的等式2中那样被表示。
等式2
rin=(1,0,1,0,0,1)
如图3A中所示,由等式2表示的示例输入通道剪枝二进制向量可被应用于“6”个输入通道以剪枝其中的通道。
输出通道剪枝二进制向量可以是指示“5”个输出通道中的哪些(即,特定内核)将被剪枝的二进制向量,并且可被表示为特别地,基于确定完全剪枝给定输出通道(例如,滤波器),与给定通道对应的向量值可被表示为“0”,相反,基于确定不剪枝给定输出通道,与给定输出通道对应的向量值可被表示为“1”。例如,如图3A中所示,基于确定剪枝第三输出通道,输出通道剪枝二进制向量可如下面的等式3中那样被表示。
等式3
rout=(1,1,0,1,1)
如图3A中所示,由等式3表示的示例输出通道剪枝二进制向量可被应用于表示的层的(例如,与表示的层对应的)“5”个内核以剪枝输出通道(例如,以剪枝对应的内核)。如图3A的示例中所示,第三内核被剪枝。因此,在图3A中表示的层可仅输出(或计算)零值的整个对应特征图(例如,与第三内核对应的输出特征图中的元素全部为零值),或者仅输出(或计算)“4”个特征图而不是“5”个(例如,仅计算与第一、第二、第四和第五内核对应的特征图,而不计算与第三内核对应的特征图)。当剪枝通过输入剪枝二进制向量和输出剪枝二进制向量两者被执行时,“4”个滤波器仅在第一、第三和第六输入通道上被卷积。
虽然通道剪枝可对每个输入通道被执行,但是可存在对网络的剪枝和对应压缩的复杂性的实际限制。如接下来所述,根据示例,剪枝方法可通过在输出通道的空间方向上剪枝来执行更复杂的剪枝。
图3B示出根据一个或多个实施例的剪枝方法的示例310。
参照图3B,例如,在神经网络的对应层中,内核图的大小可以是K×K,每个内核的输入通道(Cin)的数量(对应于到卷积层的输入的特征图的一些数量)可以是“6”,输出通道(Cout)的数量可以是“5”(例如,等于内核的数量,这导致相同数量的输出通道)。
根据示例,剪枝方法可涉及基于输入通道剪枝二进制向量和输出通道空间剪枝二进制向量来对每个输入通道执行剪枝。参照图3A的输入通道剪枝二进制向量的描述也可应用于图3B,因此,重复的描述被省略。然而,参照图3B描述的剪枝也可在不使用参照图3A描述的通道剪枝向量的情况下被执行。
如图3B中所示,与图3A的示例类似,响应于确定剪枝第二、第四和第五输入通道,输入通道剪枝二进制向量可如在等式2中那样被表示。
在图3B的示例中,输出通道空间剪枝二进制向量可以是其元素是二进制矩阵的二进制向量(在图3B的示例中,输出通道空间剪枝二进制向量是包含“5”个描绘的3×3掩码的向量)。每个二进制矩阵指示相应输出通道的哪些权重在空间维度上被剪枝。输出通道空间剪枝二进制向量可被表示为这里,指示输出通道的哪些权重在空间方向或维度上被剪枝可意味着指示权重是否在甚至考虑每个输出通道的内核图的空间形状的情况下被剪枝。
为了详细说明,根据如上面所讨论的示例,是否剪枝可针对每个输出通道被确定;然而,剪枝可针对输出通道的每个内核图元素被执行,这是剪枝的扩展方式。例如,响应于确定剪枝第一输出通道中的内核图的第一、第三、第七和第九元素,与这些元素对应的矩阵值可被表示为“0”。相反,基于确定不剪枝第一输出通道中的内核图的第二、第四、第五、第六和第八元素,与那些元素对应的矩阵值可被表示为“1”,并且在这种情况下,输出通道空间剪枝二进制向量的第一元素可如下面的等式4中那样(并且如由图3B中示出的最左边的3×3掩码所描绘的那样)被表示。
等式4
其中,“out_1”表示第一输出通道。
类似地,基于确定剪枝第二输出通道中的内核图的第一、第六、第八和第九元素,与那些元素对应的矩阵值可被表示为“0”。相反,基于确定不剪枝第二输出通道中的内核图的第二、第四、第五、第六和第八元素,与那些元素对应的矩阵值可被表示为“1”,并且在这种情况下,输出通道空间剪枝二进制向量的第二元素(矩阵)可如下面的等式5中那样(如由图3B中示出的从左起第二个3×3掩码所描绘的那样)被表示。
等式5
其中,“out_2”表示第二输出通道。
在一些实施例中,剪枝掩码可基于输入通道的剪枝二进制向量和输出通道的空间剪枝二进制向量被确定。剪枝掩码可以是指示对应元素是否被剪枝的二进制向量,并且可如下面的等式6中那样被表示。
等式6
其中,/>表示卷积运算。
根据等式6,当预定元素的输入通道的剪枝二进制向量或输出通道的空间剪枝二进制向量是“0”时,对应的元素可被剪枝。相反,当输入通道的剪枝二进制向量和输出通道的空间剪枝二进制向量两者是“1”时,对应的元素可不被剪枝。例如,根据实施例的剪枝可涉及剪枝至可快速对硬件执行运算的最小单元(诸如,在单个乘法运算,或在整组的乘法和累加运算)。
图4示出根据一个或多个实施例的剪枝方法的示例。
图4的操作可以以示出的顺序和方式执行。然而,在不脱离示出的示例的精神和范围的情况下,一些操作的顺序可改变,或操作中的一些可被省略。图4中示出的操作可被顺序地或并行地执行。如图4中所示,一个或多个块和它们的组合可由执行预定功能的基于专用硬件的计算机和/或由指令配置为用作专用硬件的通用计算机来实现。
被配置为实现参照图4描述的实施例的设备可根据由用户或以其他方式指示的资源的量(或如通过由用户或以其他方式指示的资源的量所约束的那样)以使权重的资源最大化的方式来优化剪枝掩码。例如,设备可基于在使用确定的剪枝掩码(例如,上述掩码A)进行剪枝之后剩余的权重来预测估计的推断时间、使用神经网络所必需的存储器的量、和/或操作所需要的每秒浮点运算(FLOP/s)。
参照图4,在操作410中,设备可确定训练后的神经网络的权重重要性。设备可由它自己训练神经网络,或神经网络可已经被训练。训练神经网络可将神经网络的属性暴露给设备。
此后,装置可确定训练后的神经网络的权重重要性。例如,设备可将权重的绝对值和/或误差的梯度的绝对值确定为权重重要性(或者,权重重要性可基于一个或多个这样的值)。也就是说,给定权重的权重重要性可以是训练后的神经网络的特征的任何测量,该特征指示针对网络的各种属性(诸如,预测准确性(局部和/或全局)或连接性等)的权重的重要性。可选地,设备可接收神经网络的预定权重重要性。确定权重重要性的示例方法在下面被描述。
在操作420中,设备可接收与操作资源相关的约束条件。在一个实施例中,与操作资源相关的约束条件可以是用于执行神经网络的推断的硬件资源的硬件性能约束。例如,与操作资源相关的约束条件可基于存储器的量、FLOP/s、和/或操作神经网络执行推断的时间(即,推断时间)中的至少一个而被确定。例如,约束条件可以是能够用于执行神经网络的推断的存储器的可用容量。约束条件可以是用于执行神经网络的推断的硬件资源的FLOP/s。例如,如果神经网络需要在预设时间内完成推断或预测,则对应的推断时间可以是约束条件。例如,约束条件可以是使用硬件资源(诸如,处理器、超级计算机等)的时间限制。
在操作430中,设备可根据约束条件来确定用于最大化或提高神经网络的权重重要性的剪枝掩码(或者剪枝向量或矩阵)。参照图3B的剪枝掩码的描述也可应用于图4,因此,重复的描述被省略。虽然下面的描述表示剪枝掩码,但相同的描述可应用于剪枝向量或剪枝矩阵等的使用。
在一些实施例中,基于剪枝之后的剩余权重,例如推断时间以及使用神经网络所需要的存储器的量、计算所需要的FLOP/s等可被预测。设备可将约束条件的任何这样的预测值表示为||rin||1和||A||1的线性组合,||rin||1是输入通道的剪枝二进制向量的大小或范数,||A||1是剪枝掩码的大小或范数。假设神经网络运算(例如,卷积运算)被顺序地连接,则每个神经网络运算(例如,卷积)的权重可被表示为(例如,l表示第l卷积,l-1指示第l-1卷积)。
与权重(W(l))(例如,卷积l)对应的权重重要性(I(l))和剪枝掩码(A(l))两者可分别被定义为和/>也就是说,权重重要性可被表示为针对剪枝的输入通道的剪枝二进制向量和针对剪枝的输出通道的空间剪枝二进制向量中的至少一个。这里,由神经网络的L个运算/卷积(例如,经过的所有卷积)使用的约束条件(例如,存储器的量、FLOP/s和/或推断时间)可如在下面的式7中被表示。也就是说,约束条件可被表示为输入通道的剪枝二进制向量和输出通道的空间剪枝二进制向量中的至少一个。
式7
在式7中,如果神经网络的第l个运算/卷积的特征表示是则表示由神经网络使用的资源的al和bl的值可如下面的表1中所示。
表1
神经网络的资源 | al | bl |
神经网络的大小 | 0 | 1 |
神经网络所需要的存储器的量 | HlWl | 0 |
FLOP/s | 0 | HlWl |
设备可在约束条件内表示如式8中那样表示用于最大化神经网络的权重重要性的优化式。
式8
式8可能需要满足下面的式9的条件。
式9
其中,M为阈值。
例如,设备可使用二进制优化算法来确定满足式8和式9的剪枝掩码。例如,设备可基于优化器(例如,Gurobi和cplex)或贪婪算法来确定满足式8和式9的剪枝掩码。
设备可在不重复调整阈值的情况下立即通过维持最大数量的剩余重要权重来确定满足由用户请求(或以其他方式选择)的所有条件的剪枝掩码。
此外,设备可以以便于在现有框架中高效地优化速度的形式(可替代适用于各种组的大小的形式)来启用剪枝,并且可尽可能多地、实际地或必要地执行剪枝(例如,在后续剪枝之前执行的每个训练(或轮次(epoch))之后)。
设备可基于确定的剪枝掩码来剪枝神经网络。设备可对剪枝后的神经网络执行推断,可经由网络发送剪枝后的神经网络(其可在大小上被减小)等。推断还可由电子装置(诸如,当设备是这样的电子设备时)执行。
图5示出根据一个或多个实施例的通过方法剪枝的权重的示例500。
参照图5,在通过根据示例的方法剪枝的权重中,黑色可指示未剪枝的区域,白色可指示剪枝后的区域。例如,图5中的3×3矩阵可以是通过如上所述的优化算法获得的卷积权重。
图6示出根据一个或多个实施例的设备的硬件配置的示例。
参照图6,设备600可包括处理器610和存储器620。在图6的示例中,仅与在此描述的示例相关的组件被示出为包括在设备600中。除了图6中示出的组件之外,设备600还可包括其他通用组件。
设备600可被实现为对神经网络执行剪枝的计算装置。例如,设备600可以是PC、服务装置或移动装置,或者可由PC、服务装置或移动装置实现,此外,设备可包括在基于神经网络执行语音和图像识别(或类似的模式识别)的例如自动驾驶车辆、机器人、智能电话、平板装置、增强现实(AR)装置或物联网(IoT)装置中,但示例不限于此。
处理器610是可执行用于控制设备600的操作的整体控制功能的硬件配置。例如,处理器610通常可通过执行(以处理器可执行指令、中间代码、字节码、可解释/可编译源代码等的形式)存储在设备600中的存储器620中的程序来控制设备600。处理器610可被实现为被包括在设备600中的中央处理器(CPU)、图形处理器(GPU)、应用处理器(AP)和神经处理器(NPU)等,但示例不限于此。
存储器620是可用于存储在处理器610中处理的各种神经网络数据集的硬件。例如,存储器620可存储用于神经网络的剪枝数据、将被输入到神经网络的数据集(例如,训练数据、验证数据、将对其执行预测的数据等)等。另外,存储器620可存储将由处理器610驱动的各种应用(例如,用于神经网络剪枝的应用、神经网络驱动应用、驱动器等)。
存储器620可包括易失性存储器和非易失性存储器中的至少一个,并且不包括信号本身。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、相变随机存取存储器(PRAM)、磁RAM(MRAM)、电阻RAM(RRAM)、铁电RAM(FeRAM)等。易失性存储器可包括动态RAM(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)、PRAM、MRAM、RRAM、FeRAM等。此外,存储器620可包括硬盘驱动器(HDD)、固态驱动器(SSD)、紧凑型闪存(CF)、安全数字(SD)、微型SD、迷你SD、极限数字(xD)和记忆棒中的任何一个或任何组合。
在此针对图1至图6描述的计算设备、电子装置、处理器、存储器、图像传感器、显示器、信息输出系统和硬件、存储装置、以及其他设备、装置、单元、模块和组件由硬件组件实现或代表硬件组件。可用于执行在本申请中描述的操作的硬件组件的示例在适当的情况下包括:控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器、以及被配置为执行在本申请中描述的操作的任何其他电子组件。在其他示例中,执行在本申请中描述的操作的硬件组件中的一个或多个由计算硬件(例如,由一个或多个处理器或计算机)实现。处理器或计算机可由一个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器、或被配置为以限定的方式响应并执行指令以实现期望的结果的任何其他装置或装置的组合)实现。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行指令或软件(诸如,操作系统(OS)和在OS上运行的一个或多个软件应用),以执行本申请中描述的操作。硬件组件还可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简单起见,单数术语“处理器”或“计算机”可用于在本申请中描述的示例的描述中,但是在其他示例中,多个处理器或计算机可被使用,或者处理器或计算机可包括多个处理元件、或多种类型的处理元件、或两者。例如,单个硬件组件、或者两个或更多个硬件组件可由单个处理器、或者两个或更多个处理器、或者处理器和控制器实现。一个或多个硬件组件可由一个或多个处理器、或者处理器和控制器实现,并且一个或多个其他硬件组件可由一个或多个其他处理器、或者另外的处理器和另外的控制器实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件、或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个或多个,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理以及多指令多数据(MIMD)多处理。
图1至图6中示出的执行在本申请中描述的操作的方法由计算硬件(例如,由一个或多个处理器或计算机)执行,计算硬件被如上所述地实现为实施指令或软件,以执行在本申请中描述的由所述方法执行的操作。例如,单个操作、或者两个或更多个操作可由单个处理器、或者两个或更多个处理器、或者处理器和控制器执行。一个或多个操作可由一个或多个处理器、或者处理器和控制器执行,并且一个或多个其他操作可由一个或多个其他处理器、或者另外的处理器和另外的控制器执行。一个或多个处理器、或者处理器和控制器可执行单个操作、或者两个或更多个操作。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或它们的任何组合,以单独地或共同地指示或配置一个或多个处理器或计算机如机器或专用计算机那样进行操作,以执行由硬件组件执行的操作和如上所述的方法。在一个示例中,指令或软件包括由一个或多个处理器或计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由一个或多个处理器或计算机使用解释器执行的高级代码。指令或软件可基于附图中示出的框图和流程图以及说明书中的对应描述使用任何编程语言来编写,附图中示出的框图和流程图以及说明书中的对应描述公开了用于执行由硬件组件执行的操作和如上所述的方法的算法。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件、以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中或者被记录、存储或固定在一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储设备、硬盘驱动器(HDD)、固态驱动器(SSD)、卡型存储器(诸如,多媒体卡或微型卡(例如,安全数字(SD)或极限数字(XD)))、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘和任何其他装置,该任何其他装置被配置为以非暂时性方式存储指令或软件、以及任何相关联的数据、数据文件和数据结构,并将指令或软件、以及任何相关联的数据、数据文件和数据结构提供给一个或多个处理器或计算机,使得一个或多个处理器或计算机可执行指令。在一个示例中,指令或软件、以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得指令和软件、以及任何相关联的数据、数据文件和数据结构由一个或多个处理器或计算机以分布方式存储、访问和执行。
虽然本公开包括特定的示例,但是在理解本申请的公开之后将清楚,在不脱离权利要求及它们的等同物的精神和范围的情况下,可在这些示例中做出形式和细节上的各种改变。在此描述的示例将仅被认为是描述性的,而不是出于限制的目的。每个示例中的特征或方面的描述将被认为可适用于其他示例中的类似特征或方面。如果描述的技术以不同的顺序被执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合,和/或由其他组件或它们的等同物替换或补充,则可实现合适的结果。
因此,除了上面的公开之外,公开的范围还可由权利要求及它们的等同物限定,并且在权利要求及它们的等同物的范围内的所有变化应被解释为被包括在公开中。
Claims (33)
1.一种由包括处理器的设备执行的方法,所述方法包括:
确定训练后的神经网络的权重重要性;
接收与操作资源相关的约束条件;以及
根据约束条件,确定用于使训练后的神经网络的权重重要性最大化的剪枝掩码。
2.根据权利要求1所述的方法,其中,确定剪枝掩码的步骤包括:
确定针对剪枝的输入通道的剪枝二进制向量;以及
确定针对所述剪枝的输出通道的空间剪枝二进制向量。
3.根据权利要求1所述的方法,还包括:
基于剪枝掩码来剪枝训练后的神经网络。
4.根据权利要求3所述的方法,还包括:
基于剪枝后的神经网络来生成推断结果。
5.根据权利要求3所述的方法,其中,剪枝训练后的神经网络的步骤包括:
基于确定的针对所述剪枝的输入通道的剪枝二进制向量来剪枝输入通道的权重;以及
基于确定的输出通道的空间剪枝二进制向量来剪枝输出通道的空间维度上的权重。
6.根据权利要求1至5中的任何一项所述的方法,其中,
确定权重重要性的步骤包括:
将权重重要性表示为针对剪枝的输入通道的剪枝二进制向量和针对所述剪枝的输出通道的空间剪枝二进制向量中的至少一个,并且
接收约束条件的步骤包括:
将约束条件表示为输入通道的剪枝二进制向量和输出通道的空间剪枝二进制向量中的至少一个。
7.根据权利要求6所述的方法,其中,确定剪枝掩码的步骤包括:根据约束条件,将用于使训练后的神经网络的权重重要性最大化的优化式表示为输入通道的剪枝二进制向量和输出通道的空间剪枝二进制向量中的至少一个。
8.根据权利要求7所述的方法,其中,确定剪枝掩码的步骤包括:基于二进制向量优化算法来确定与优化式对应的剪枝掩码。
9.根据权利要求1至5中的任何一项所述的方法,其中,确定权重重要性的步骤包括:基于神经网络的权重的绝对值和/或误差的梯度的绝对值来确定权重重要性。
10.根据权利要求1至5中的任何一项所述的方法,其中,与操作资源相关的约束条件是用于执行神经网络的推断的硬件资源的硬件性能约束。
11.根据权利要求1至5中的任何一项所述的方法,其中,与操作资源相关的约束条件基于以下项中的至少一个被确定:能够用于执行神经网络的推断的存储器的可用容量、用于执行神经网络的推断的硬件资源的每秒浮点运算、以及使用用于执行神经网络的推断的硬件资源的时间限制。
12.根据权利要求1至5中的任何一项所述的方法,还包括:
基于剪枝掩码来剪枝训练后的神经网络;
接收输入图像;以及
使用接收的输入图像基于剪枝后的神经网络来生成推断结果。
13.一种存储指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时使处理器执行根据权利要求1至12中的任何一项所述的方法。
14.一种电子设备,包括:
处理器;以及
存储器,存储能够由处理器执行的指令,
其中,处理器被配置为,响应于执行所述指令:
确定训练后的神经网络的权重重要性;
接收与操作资源相关的约束条件;以及
根据约束条件,确定用于最大化训练后的神经网络的权重重要性的剪枝掩码。
15.根据权利要求14所述的电子设备,其中,处理器还被配置为:
确定输入通道的剪枝二进制向量;以及
确定输出通道的空间剪枝二进制向量。
16.根据权利要求14所述的电子设备,其中,处理器还被配置为:基于剪枝掩码来剪枝训练后的神经网络。
17.根据权利要求16所述的电子设备,其中,处理器被配置为:基于剪枝后的神经网络来执行推断。
18.根据权利要求16所述的电子设备,其中,处理器还被配置为:
基于确定的输入通道的剪枝二进制向量来剪枝输入通道的权重;以及
基于确定的输出通道的空间剪枝二进制向量来剪枝输出通道的空间维度上的权重。
19.根据权利要求14至18中的任何一项所述的电子设备,其中,处理器被配置为:
将权重重要性表示为输入通道的剪枝二进制向量和输出通道的空间剪枝二进制向量中的至少一个;以及
将约束条件表示为输入通道的剪枝二进制向量和输出通道的空间剪枝二进制向量中的至少一个。
20.根据权利要求19所述的电子设备,其中,处理器还被配置为:根据约束条件,将用于使训练后的神经网络的权重重要性最大化的优化式表示为输入通道的剪枝二进制向量和输出通道的空间剪枝二进制向量中的至少一个。
21.根据权利要求20所述的电子设备,其中,处理器还被配置为:基于二进制向量优化算法来确定与优化式对应的剪枝掩码。
22.根据权利要求20所述的电子设备,其中,处理器还被配置为:基于神经网络的权重的绝对值和/或误差的梯度的绝对值的来确定权重重要性。
23.根据权利要求14至18中的任何一项所述的电子设备,其中,权重重要性包括:与训练后的神经网络中的一个或多个权重对应的值,并且其中,所述值对应于所述一个或多个权重对训练后的神经网络的准确性的影响。
24.根据权利要求14至18中的任何一项所述的电子设备,其中,与操作资源相关的约束条件是用于执行神经网络的推断的硬件资源的硬件性能约束。
25.根据权利要求14至18中的任何一项所述的电子设备,其中,与操作资源相关的约束条件基于以下项中的至少一个被确定:能够用于执行神经网络的推断的存储器的可用容量、用于执行神经网络的推断的硬件资源的每秒浮点运算、以及使用用于执行神经网络的推断的硬件资源的时间限制。
26.根据权利要求14至18中的任何一项所述的电子设备,其中,处理器还被配置为:
基于剪枝掩码来剪枝训练后的神经网络;
接收输入图像;以及
使用接收的输入图像基于剪枝后的神经网络来生成推断结果。
27.一种由处理器执行的方法,所述方法包括:
接收与操作资源相关的约束条件,约束条件指示当对应的训练后的神经网络执行推断时将被遵守的约束;
基于约束条件和训练后的神经网络,以训练后的神经网络的权重特征为基础来确定满足训练后的神经网络的约束条件的剪枝掩码;以及
使用剪枝掩码来剪枝训练后的神经网络的输出通道的权重。
28.根据权利要求27所述的方法,其中,剪枝掩码基于输入剪枝向量和输出剪枝向量被确定,输入剪枝向量对应于训练后的神经网络的层的针对所述剪枝的输入通道,输出剪枝向量对应于训练后的神经网络的层的输出通道。
29.根据权利要求28所述的方法,其中,权重特征基于训练后的神经网络的一个或多个权重。
30.根据权利要求27所述的方法,其中,权重特征对应于权重对训练后的神经网络的预测准确性的影响。
31.根据权利要求27至30中的任何一项所述的方法,其中,与操作资源相关的约束条件是用于执行神经网络的推断的硬件资源的硬件性能约束。
32.根据权利要求27至30中的任何一项所述的方法,其中,与操作资源相关的约束条件基于以下项中的至少一个被确定:能够用于执行神经网络的推断的存储器的可用容量、用于执行神经网络的推断的硬件资源的每秒浮点运算、以及使用用于执行神经网络的推断的硬件资源的时间限制。
33.根据权利要求27至30中的任何一项所述的方法,还包括:
基于剪枝掩码来剪枝训练后的神经网络;
接收输入图像;以及
使用接收的输入图像基于剪枝后的神经网络来生成推断结果。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220020308A KR20230123309A (ko) | 2022-02-16 | 2022-02-16 | 프루닝 방법 및 장치 |
KR10-2022-0020308 | 2022-02-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116663640A true CN116663640A (zh) | 2023-08-29 |
Family
ID=84829817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211375155.4A Pending CN116663640A (zh) | 2022-02-16 | 2022-11-04 | 用于剪枝的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230259775A1 (zh) |
EP (1) | EP4231203A1 (zh) |
KR (1) | KR20230123309A (zh) |
CN (1) | CN116663640A (zh) |
-
2022
- 2022-02-16 KR KR1020220020308A patent/KR20230123309A/ko unknown
- 2022-11-02 US US17/979,507 patent/US20230259775A1/en active Pending
- 2022-11-04 CN CN202211375155.4A patent/CN116663640A/zh active Pending
-
2023
- 2023-01-05 EP EP23150415.0A patent/EP4231203A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20230123309A (ko) | 2023-08-23 |
EP4231203A1 (en) | 2023-08-23 |
US20230259775A1 (en) | 2023-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11875268B2 (en) | Object recognition with reduced neural network weight precision | |
US10776668B2 (en) | Effective building block design for deep convolutional neural networks using search | |
US11250320B2 (en) | Neural network method and apparatus | |
CN108229655B (zh) | 卷积神经网络(cnn)处理方法和设备 | |
US20230214652A1 (en) | Method and apparatus with bit-serial data processing of a neural network | |
US20200151573A1 (en) | Dynamic precision scaling at epoch granularity in neural networks | |
CN112508186A (zh) | 训练用于图像识别的神经网络的方法和神经网络设备 | |
US20200226451A1 (en) | Method and apparatus with neural network layer contraction | |
US20210182670A1 (en) | Method and apparatus with training verification of neural network between different frameworks | |
CN113841159A (zh) | 由电子装置在神经网络中的特定层执行卷积运算的方法及其电子装置 | |
CN113033790A (zh) | 神经网络装置及其操作方法 | |
CN113947703A (zh) | 通过神经网络识别图像的方法和设备 | |
EP3843012A1 (en) | Method and apparatus with neural network data input and output control | |
KR20210045225A (ko) | 뉴럴 네트워크에서 연산을 수행하는 방법 및 장치 | |
CN112668689A (zh) | 进行多媒体数据处理的方法和设备 | |
CN114792387A (zh) | 图像恢复方法和设备 | |
CN114358274A (zh) | 训练用于图像识别的神经网络的方法和设备 | |
CN114154615A (zh) | 基于硬件性能的神经架构搜索方法和设备 | |
US20200074286A1 (en) | Neuromorphic method and apparatus with multi-bit neuromorphic operation | |
US20220188070A1 (en) | Method and apparatus with data processing | |
CN116663640A (zh) | 用于剪枝的方法和设备 | |
CN116795284A (zh) | 存储器的操作方法和电子装置 | |
US20230146493A1 (en) | Method and device with neural network model | |
US11681915B2 (en) | Neural network method and apparatus | |
US20240037377A1 (en) | Method and apparatus with weight compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240208 Address after: Gyeonggi Do Korea Suwon Applicant after: SAMSUNG ELECTRONICS Co.,Ltd. Country or region after: Republic of Korea Address before: Gyeonggi Do Korea Suwon Applicant before: SAMSUNG ELECTRONICS Co.,Ltd. Country or region before: Republic of Korea Applicant before: SNU R&DB FOUNDATION |