CN112183725A - 提供神经网络的方法、计算装置和计算机可读存储介质 - Google Patents
提供神经网络的方法、计算装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN112183725A CN112183725A CN202011035467.1A CN202011035467A CN112183725A CN 112183725 A CN112183725 A CN 112183725A CN 202011035467 A CN202011035467 A CN 202011035467A CN 112183725 A CN112183725 A CN 112183725A
- Authority
- CN
- China
- Prior art keywords
- pruning
- channel
- layer
- neural network
- alignment
- 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.)
- Granted
Links
Images
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7817—Specially adapted for signal processing, e.g. Harvard architectures
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Computer Hardware Design (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Neurology (AREA)
- Signal Processing (AREA)
- Image Analysis (AREA)
Abstract
本披露公开了一种提供神经网络的方法、计算装置和计算机可读存储介质。该计算装置可以包括在组合处理装置中,该组合处理装置还可以包括接口装置和其他处理装置。该计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于存储该计算装置和其他处理装置的数据。本披露的方案通过在对神经网络模型剪枝时增加通道对齐操作,解决了将剪枝压缩后的模型移植到专用硬件上可能存在的不匹配问题。
Description
技术领域
本披露一般地涉及人工智能领域。更具体地,本披露涉及一种提供神经网络的方法、计算装置和计算机可读存储介质。
背景技术
目前,深度学习(Deep Learning)已经成为机器学习中的重要分支,也大力助推着人工智能(AI)的发展。深度学习的核心技术——深度神经网络(DNN)已在诸多行业有着广泛的应用。
为了提高神经网络模型的表达能力,DNN不断向着更深或更宽的网络规模发展。但是复杂的模型也同时带来了参数量多、计算量大的问题,导致消耗过多的存储资源和计算资源,使得产品化困难。
为了应对上述技术问题,业内产生了许多解决方法。在硬件方面,研发专用的AI芯片进行加速;在软件方面,采用模型压缩技术,去除冗余计算。在后者的模型压缩技术中,网络剪枝(pruning)是一种常用且比较有效的模型压缩方法。而网络剪枝中,普遍被采用且性价比高的方法是结构化剪枝(structural pruning),包括滤波器剪枝(filter-wisepruning)和通道剪枝(channel-wise pruning)。
因此,在实际应用中,针对DNN模型优化的普遍方案是“软硬结合”、相互加持:先在软件层面,通过对网络的结构化剪枝进行模型压缩,再将剪枝压缩后的模型移植到AI芯片上进行推理应用。
然而,采取上述“软硬结合”方案,将剪枝压缩后的模型移植到专用AI芯片上可能存在不匹配的问题,使得难以发挥专用硬件的优势,例如专用硬件的并行计算效率、传输效率等得不到充分发挥,甚至专用硬件的运行结果可能与算法实验阶段的不一致。
发明内容
为了至少解决如上所提到的一个或多个技术问题,本披露在多个方面中提出了提供压缩神经网络的方案,该方案通过对神经网络的保留通道执行通道对齐,可以解决压缩神经网络与专用AI芯片的匹配问题,从而充分发挥专用AI芯片的各种优势。本披露提供的压缩神经网络可以应用于各种领域,诸如图像处理、语音处理、文本处理等等,这些处理例如可以包括但不限于识别和分类。
在第一方面中,本披露提供了一种用于提供神经网络的方法,其中所述神经网络包括多个层,至少一个层包括对应的通道,所述方法包括:接收所述神经网络的配置信息和通道对齐参数;基于所述配置信息和通道对齐参数,对需要执行通道对齐的层进行通道对齐,使得所述层的实际保留通道数是所述通道对齐参数的正整数倍;根据所述层的实际保留通道数,按照预定的剪枝策略对所述层进行剪枝;以及对剪枝后的所述神经网络进行压缩,以提供压缩后的神经网络。
在第二方面中,本披露提供了一种计算装置,包括:处理器,其配置用于执行程序指令;以及存储器,其配置用于存储所述程序指令,当所述程序指令由所述处理器加载并执行时,使得所述计算装置执行根据本披露第一方面任一实施例所述的方法。
在第三方面中,本披露提供了一种计算机可读存储介质,其中存储有程序指令,当所述程序指令由处理器加载并执行时,使得所述处理器执行本披露第一方面任一实施例所述的方法。
通过如上所提供的提供神经网络的方法、计算装置和计算机可读存储介质,本披露的方案通过在神经网络进行剪枝压缩时,对保留通道执行通道对齐操作,使得剪枝压缩后的神经网络可以匹配目标专用硬件(例如,专用AI芯片),从而充分发挥专用硬件的优势,例如提高专用硬件上的并行计算效率,减少由于模型不匹配而增加的额外处理,以及尽可能保证模型在算法实验阶段和专用硬件的应用阶段的结果一致性。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1示出了可以应用本披露实施例的一种神经网络的示例性结构图;
图2示出了根据本披露实施例的提供神经网络的方法200的示例性流程图;
图3示出了根据本披露一个实施例的通道对齐方法300的示例性流程图;
图4示出了根据本披露一个实施例的确定预备保留通道数的方法400的示例性流程图;
图5示出了根据本披露实施例的通道对齐方法500的示例性流程图;
图6示出了可以实施本披露实施例的提供神经网络方案的计算装置600的硬件配置框图;
图7示出了本披露实施例的用于提供神经网络的计算装置应用于人工智能处理器芯片的应用示意图;
图8是示出根据本披露实施例的一种组合处理装置800的结构图;以及
图9是示出根据本披露实施例的一种板卡900的结构示意图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中可能使用的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
首先给出本披露中可能用到的技术术语的解释。
滤波器:在神经网络的层中定义以用于提取特定特征,有时候也用核(kernel)来表示。每层的滤波器可以应用到整个数据上,也可以应用到一小部分数据上。通常每层可以有多个滤波器(一般每层的特征提取方式是相同的)。一个滤波器的维度可以表示为:Kw*Kh*Cin*Cout,其中Kw、Kh分别表示滤波器的宽和高,例如3*3;Cin和Cout分别表示滤波器的输入通道(in channel)和输出通道(out channel)。一般,每层中滤波器的个数可以用Cout来表示,它决定了输出或提取的特征图(Feature Map)的个数。在此情况下,1个滤波器就对应于Kw*Kh*Cin*1。
特征图:对图像应用一个滤波器之后得到的结果称为特征图。特征图的数目和滤波器的数目相等。在本文中,除非另有说明,否则特征图和滤波器可互换使用。
权值:用于表征滤波器的参数。
通道:数据在神经网络各层中以多维形式存在,比如四维。可以看成若干二维图片的堆叠多批量的数据。通道,一般用于在神经网络的层中定义输入和输出数据在第三维度上的大小,包括输入通道和输出通道。在输入层,如果输入数据是灰度图片,则输入通道数是1,如果输入数据是彩色图片,则输入通道数是3(RGB红绿蓝三个通道)。在其他层,输入通道数是前一层的输出通道数,输出通道数是后一层的输入通道数。在各层中对输入数据应用所定义的滤波器后得到输出数据。输出通道的数量与层中定义的滤波器的数量相对应。在本披露实施例中所使用的“通道”,包括但不限于权值参数的输入通道Cin、输出通道Cout,还可以包括更多维度的通道,比如卷积3D中的深度方向,也可以看作是一个通道。
滤波器剪枝:主要是指对输出通道进行剪枝,直接丢弃整个选定的滤波器,也即减少滤波器的个数或特征图的个数。
通道剪枝:主要是指对通道(包括输入通道和输出通道)进行剪枝,既可能会对输出通道(滤波器的个数)进行剪枝,也可能会对每个滤波器的输入通道进行剪枝。通道剪枝的剪枝粒度相比于滤波器剪枝会更细一点。
图1示出了可以应用本披露实施例的一种神经网络的示例性结构图。
如图1所示,神经网络100是一种卷积神经网络。卷积神经网络是一个多层的神经网络,每层由多个二维平面组成以便于并行计算,而每个二维平面由多个独立的神经元组成。
在图1所示的卷积神经网络100中,可以包括三层,分别为输入层、隐含层以及输出层,其中隐含层又包括5层。
输入层的神经元称为输入神经元。作为神经网络中的第一层,输入层的神经元接收需要输入的信号并将它们传递到下一层,如图中所示出的隐藏层中的第一层(以“C1”标识出)。输入层通常不对输入信号做操作,并且没有关联的权值和偏置。
处于神经网络中间位置的隐藏层,其根据应用场景的不同可以进一步细分为卷积层、池化层、批归一化层、激活层和全连接层等各类线性层和非线性层。卷积神经网络100的隐藏层主要包括卷积层(例如C1、C3)和子采样层(S2和S4)。
卷积层,其可以通过对输入数据应用若干滤波器来进行特征提取。例如,假设图1中第一卷积层(C1)使用4个6×6滤波器,则对输入图像应用这些滤波器后,输出4个特征图。每个卷积层可以包含多个滤波器(或卷积核),每个滤波器可以包括多个权值。例如图1中卷积层C3包括6个滤波器。卷积层参数包括滤波器尺寸、步长和填充尺寸,三者均会影响卷积层输出特征图的尺寸,是卷积神经网络的超参数。卷积层内每个神经元都与前一层中位置接近的区域的多个神经元相连,该区域的大小取决于滤波器的尺寸。
子采样层,也叫池化层,其主要用于缩减输入数据的规模,减小过拟合。例如,假设图1中子采样层S2输入一个12×12的图像,并通过一个6×6的子采样,那么可以得到一个2×2的输出图像,这意味着原图像上的36个像素合并成输出图像中的一个像素。实现子采样的方法有很多种,最常见的是最大值合并、平均值合并以及随机合并。
经过上述隐藏层(例如前面若干次卷积+子采样)的处理后,数据处理流程到达位于神经网络隐藏层最后部分的全连接层(F5)和整个神经网络的输出层。全连接层中的每个神经元与其前一层的所有神经元进行全连接,以整合卷积层或者子采样层中具有类别区分性的局部信息。在一些应用场景中,全连接层还可以进行局部归一化、数据增强等操作,以便增加神经网络的鲁棒性。
上面结合图1描述了可以实施本披露实施例的神经网络的示例结构图。可以理解的是,上文关于神经网络的介绍仅仅是示例性的,并且神经网络的结构并不受图中所示结构的限制,本领域技术人员根据需要可以对图中所示结构做出修改,例如在隐藏层中增加一个或多个新的层。
如前面所提到的,先对网络进行结构化剪枝和模型压缩,再将剪枝压缩后的模型移植到专用AI芯片上进行推理应用,可能会产生一些缺陷。
首先,结构化剪枝(无论是滤波器剪枝还是通道剪枝)有可能改变权值矩阵的形状,使得权值矩阵的通道大小不一,这就使得在硬件上执行计算时难以并行化,在一些情况下不能保证更快的运行速度。
其次,在结构化剪枝之后,权值矩阵的通道维度有时会出现一些非常规的值,比如17、19、7、57、153等。这些非常规值不但不是2的幂次(例如16、64、256等),还可能是奇数。然而通常情况下,底层硬件在搬运和存储数据时都会有“数据对齐”的要求,比如64对齐、32对齐等。这就使得在使用剪枝压缩后的模型时,专用硬件不能充分地利用其I/O带宽和存储资源,导致传输、存储、计算的效率折损。
再次,为了应对上述不规则的权值矩阵形状,一些专用硬件采取了一些策略:比如对权值矩阵进行补边到对齐,或者矩阵的多个维度折叠整合,以达到“数据对齐”或并行计算的条件。但是,这势必会增加硬件底层算子实现的复杂度,引入了一些额外的计算和维护。同时,还可能会因补边而造成一些结果偏差。
综上,这些缺陷会带来:专用硬件的并行计算效率得不到充分发挥,实际效率与设计的理论值有较大差异;专用硬件的传输效率得不到充分发挥;专用硬件的运行结果可能与算法实验阶段的不一致;专用硬件需要耗费额外的资源进行设计和执行数据对齐策略,以应对不规则形状的数据。
针对现有结构化剪枝后的模型移植到专用硬件上存在不匹配的技术问题,本披露实施例提供一种新的结构化剪枝方案,其在现有结构化剪枝方案中增加了通道对齐操作。本披露中使用的结构化剪枝方法包括但不限于通道剪枝、滤波器剪枝等各类改变权值矩阵通道的结构化剪枝方法。通过本披露的实施例,可以提高专用硬件上的并行计算效率,降低为数据对齐而进行额外计算的概率,同时尽可能保证模型在算法实验阶段和专用硬件的应用阶段的结果一致性。
图2示出了根据本披露实施例的提供神经网络的方法200的示例性流程图。方法200例如可以由处理器来执行以提供剪枝压缩的神经网络模型。该剪枝压缩的神经网络模型例如可以由人工智能处理器(例如,诸如专用AI芯片的专用硬件)运行,以实现各种任务,诸如图像分类、图像识别等等。
如图2所示,在步骤S210中,接收神经网络的配置信息和通道对齐参数。该神经网络可以是任何需要进行通道对齐的神经网络,包括但不限于已开源的神经网络、已经被剪枝后的神经网络、自行设计的神经网络、随机生成的神经网络等。这些神经网络可以包括多个层,至少一个层包括对应的通道。通道可以包括输入通道、输出通道、和/或其他维度上定义的通道。
本披露实施例的通道对齐操作可以灵活地设置在剪枝过程中,其启用时间点包括但不限于迭代剪枝训练的每轮迭代中、迭代剪枝训练的最后一轮迭代中、迭代剪枝训练的每K轮迭代中,其中K是小于剪枝总迭代次数的正整数、以及一次性的剪枝训练期间。
因此,取决于当前神经网络的状态(例如,已经剪枝或尚未剪枝),神经网络的配置信息可以包括不同类型的信息。
在一些实施例中,将要处理的神经网络可能尚未剪枝(例如,一次性剪枝训练前,迭代剪枝训练的首轮迭代等),则接收的配置信息可以包括用于实施剪枝所需的各种信息。如前面所提到的,本披露实施例的通道对齐方案适用于滤波器剪枝、通道剪枝等各种涉及到修剪通道的结构化剪枝方案。因此,配置信息例如可以包括但不限于神经网络中待剪枝层的滤波器参数(例如,各个滤波器的权值信息)和/或通道参数,以供后续执行结构化剪枝时使用。
在另一些实施例中,将要处理的神经网络可能已经进行了剪枝(例如,迭代剪枝训练的非首轮迭代),此时接收的配置信息可能除了包括实施当前剪枝所需的各种信息之外,还包括上轮剪枝的信息,例如各剪枝层的剪枝/保留通道信息,包括但不限于剪枝/保留通道数目,剪枝/保留通道索引等。
接收的通道对齐参数可以是基于该神经网络将要应用于的专用硬件的特性、算法的需要等等而进行设计取值的。通道对齐参数的数值可以包括但不限于2的幂次等的一系列有效的数值。在一些示例中,通道对齐参数的数值选自2的N次幂,其中N是自然数。例如,通道对齐参数的值可以是1,2,4,8……,当取值为1时,表示该层无需执行对齐,也即保持剪枝后的原数量。
接着,方法200前进到步骤S220,基于接收的配置信息和通道对齐参数,对神经网络中需要执行通道对齐的层进行通道对齐。通过通道对齐操作,可以使得该层的实际保留通道数是通道对齐参数的正整数倍,由此可以解决现有AI专用硬件上应用剪枝压缩模型时的数据不对齐的问题。
图3示出了根据本披露一个实施例的通道对齐方法300的示例性流程图。本领域技术人员可以理解,方法300可以应用于图2的步骤S220,以实现通道对齐操作。
如图3所示,方法300包括步骤S310,确定需要执行通道对齐的层的预备保留通道数。
取决于当前神经网络的状态(例如,已经剪枝或尚未剪枝),可以采取不同的方式来确定所处理层的预备保留通道数。
若神经网络已经进行过剪枝,则接收的配置信息中会包含剪枝信息,例如各层的预备剪枝/保留通道数和预备剪枝/保留通道索引。此时,可以直接从配置信息中获取所处理层的预备保留通道数。
若神经网络尚未剪枝,则可以基于配置信息,按照预定的剪枝策略来确定当前处理层的预备保留通道数。在此情况下,可以按照所使用的剪枝方法来确定保留通道数,以作为预备保留通道数。如前面所提到的,这些剪枝方法可以包括但不限于通道剪枝、滤波器剪枝等各类改变权值矩阵通道的结构化剪枝方法。
图4示出了根据本披露一个实施例的确定预备保留通道数的方法400的示例性流程图。本领域技术人员可以理解,方法400可以应用于图3的步骤S310,以确定需要执行通道对齐的层的预备保留通道数。
方法400可以包括步骤S410,基于接收的配置信息,确定当前处理层的各个通道的剪枝指标。
如前面所提到的,本披露实施例可以应用于滤波器剪枝、通道剪枝等各种涉及到修剪通道的结构化剪枝方案。因此,剪枝指标可以客观反映各个通道对于神经网络的贡献程度。剪枝指标可以包括滤波器重要性指标、通道重要性指标或两种指标的组合。可以构造各种滤波器重要性指标和/或通道重要性指标。在一些示例中,滤波器重要性指标可以包括以下任一:滤波器的L1范数、L2范数、或前述的任意组合。在另一些示例中,通道重要性指标可以包括以下任一:通道参数的幅值、L1范数、L2范数、梯度、参数相关性、参数冗余度、对通道损失的影响程度、对特征重建误差的贡献、或前述的任意组合。
接着,方法400可以前进到步骤S420,按照剪枝策略,基于所确定的剪枝指标,确定当前处理层的预备保留通道数。
本披露实施例可以应用于各种涉及到修剪通道的结构化剪枝方案。相应地,剪枝策略可以是各种现有的或未来开发的结构化剪枝策略,其用于限定筛选出需要被剪枝的通道的规则。例如,剪枝策略可以包括但不限于以下方面:全局剪枝、局部剪枝、逐层剪枝、剪枝阈值、剪枝比例和剪枝通道的处理方式等。全局剪枝是指对整个神经网络进行剪枝。与之相对地,局部剪枝是指对神经网络的局部进行剪枝。逐层剪枝是指逐层进行剪枝,而不是一次性完成剪枝。剪枝阈值可以限定将剪枝指标低于/高于剪枝阈值的通道剪除。剪枝阈值可以是绝对阈值,例如根据经验设置;也可以是相对阈值,例如被剪枝通道的占比。例如,剪枝比例设置为40%,则根据剪枝指标,将待剪枝层中剪枝指标低的40%个通道剪除。
剪枝通道的处理方式是指如何标记这些筛选出的剪枝通道。可以有多种处理方式。在一个示例中,可以将筛选出的剪枝通道所对应的滤波器的权值置零。在另一示例中,可以仅记录这些筛选出的剪枝通道的索引,以供随后的压缩步骤使用。在又一示例中,可以使用附加的掩码来标记筛选出的剪枝通道。例如,掩码可以是与剪枝层具有相同维度的标记,掩码中的元素取值为0或1表示该剪枝层对应的通道被剪枝或不被剪枝,反过来设置也可以。
由上,根据所设置的剪枝策略,基于对剪枝指标的评估比较,可以判断需要被剪除和被保留的通道,并统计出当前处理层预备剪除通道数量和预备保留通道数量。具体的剪枝策略/算法例如可以包括但不限于基于几何中位数的滤波器剪枝(FPGM)、泰勒剪枝(Taylor pruning)等等。
返回图3,在确定预备保留通道数之后,方法300前进到步骤S320,基于通道对齐参数,对预备保留通道数进行对齐处理,以确定该层的实际保留通道数。具体地,对齐处理可以包括根据对齐策略,按照通道对齐参数对预备保留通道数进行对齐修正。
图5示出了根据本披露实施例的通道对齐方法500的示例性流程图。本领域技术人员可以理解,方法500可以应用于图3的步骤S320,对步骤S310中确定的预备保留通道数进行对齐,确定实际保留通道数。
如图5所示,通道对齐方法500可以对神经网络各层逐层进行对齐处理,其开始于步骤S510,获取网络当前层的信息。这些信息例如可以包括当前层的预备保留通道数C′(512)、原始通道数C(514)和通道对齐参数A(516)。
接着,在步骤S520中,基于通道对齐参数A,对预备保留通道数C′进行对齐修正,得到实际保留通道数Ca。对齐修正所使用的对齐策略可以有多种形式。例如,根据算法效果和性能的需要,对齐策略可以包括以下任一:向上对齐、向下对齐和临近对齐。
在一些实施例中,通道对齐的计算公式可以表示如下:
其中Ca是对齐后的实际保留通道数,C′是预备保留通道数,A是对齐参数,F(x)是对齐函数。如公式(1)所示,对齐函数F(x)是灵活多样的。
例如,假设对齐参数A为16,若某一层的预备保留通道数C′为15,则可以采取向上对齐的策略,得到新的实际保留通道数Ca为16;若预备保留通道数C′为50,则可以采取向下对齐的策略,得到新的实际保留通道数Ca为48。
若神经网络中还存在其他层需要通道对齐处理,则方法500可以针对该层重复执行步骤S510-S520。由此,可以对整个神经网络完成通道对齐处理。
回到图2,在执行了通道对齐处理之后,方法200可以前进到步骤S230,根据前一步骤中确定的各层的实际保留通道数,按照预定的剪枝策略对相应的层进行剪枝。
在一些实施例中,可以首先根据当前处理层的原始通道数C和实际保留通道数Ca来确定该层的实际剪枝通道数Cp。具体地,可以按下式计算,也即用原始通道数C减去对齐后的实际保留通道数Ca:
Cp=C-Ca (2)
接着,可以基于前述配置信息,确定该层各个通道的剪枝指标。然后可以按照预定的剪枝策略,基于剪枝指标和该层的实际剪枝通道数,对该层执行剪枝。具体确定剪枝指标以及执行剪枝的方法可以参考前面针对图4的描述,此处不再赘述。
最后,在步骤S240中,对剪枝后的神经网络进行压缩,以提供压缩后的神经网络。
从前面对剪枝通道处理方式的描述可以看出,剪枝操作主要对剪枝层(例如,卷积层、归一化层等)中被剪除的滤波器的权值置零或者获取这些被剪除的滤波器或通道的索引,但实际上整个模型大小与计算量是不变的。因此,在步骤S240的压缩操作中,提取保留通道所对应的滤波器的权值,构成新的神经网络模型,从而缩小模型大小并减少模型计算量。压缩步骤需要保证压缩后的小模型与压缩前的大模型的模拟精度一致。可以采取各种方式来完成压缩步骤,本披露实施例在此方面没有限制。
以上参考图2-图5的示例性方法流程描述了本披露实施例的可能实现方式。从上述描述可以看出,通过在剪枝压缩时增加通道对齐操作,可以解决剪枝压缩后的神经网络移植到专用AI芯片上时的数据不对齐问题。
增加的通道对齐操作的启用时间是灵活的,可以设置在剪枝训练的各个阶段。启用时间点包括但不限于迭代剪枝训练的每轮迭代中、迭代剪枝训练的最后一轮迭代中、迭代剪枝训练的每K轮迭代中,其中K是小于剪枝总迭代次数的正整数、以及一次性的剪枝训练期间。
此外,通道对齐操作的频率也是灵活的,包括但不限于一次性、多次、或按K次剪枝迭代的间隔均匀进行,K是小于剪枝总迭代次数的正整数。
在一些实施例中,通道对齐参数可以根据神经网络中需要执行通道对齐的层而动态变化。具体地,通道对齐参数的数值可以在满足硬件需求的基础上,根据神经网络各层的需要而灵活地动态变化。这种变化可以包括但不限于固定值(例如,各层具有不同的固定值)或按某种规律动态变化的值,例如:初始对齐参数的整数倍。
在一些实施例中,通道对齐参数可以包括一个或多个数值。在一些示例中,数值的个数可以根据神经网络各层的需要而灵活设置,例如每个数值可以用于神经网络中一个或多个需要执行通道对齐的层。换言之,各层可以共用或多层分组共用一个通道对齐参数。
在另一些示例中,数值的个数可以根据该神经网络将要应用于的硬件数量和/或算法数量而设置,例如,每个数值分别对应于神经网络将要应用于的不同硬件和/或算法。例如,基于多个通道对齐参数,可以在一次性剪枝训练中同时生成适用于多个硬件的神经网络模型。
本披露实施例中的通道对齐操作可以解决硬件上应用神经网络时由于数据不对齐而带来的并行低效,以及计算、传输和存储等低效的问题。本披露的方案可以促进硬件充分发挥性能,是对硬件的友好加持。进一步地,本披露的方案可以根据硬件特性调整对齐参数,应用于多种不同特性的硬件上,提高神经网络的通用性。本披露的方案与剪枝方法结合,提高了剪枝后的网络模型在硬件上的可移植性,保证了压缩模型的有效使用。本披露的方案可以与各种剪枝方法、各种神经网络结合使用,具有很强的通用性。本披露的方案可以在软件算法层面提前实现,不需要涉及硬件层面的设计和修改,灵活易用,可扩展性强。
图6示出可以实施本披露实施例的提供神经网络方案的计算装置600的硬件配置的框图。如图6所示,计算装置600可以包括处理器610和存储器620。在图6的计算装置600中,仅示出了与本实施例有关的组成元素。因此,对于本领域普通技术人员而言显而易见的是:计算装置600还可以包括与图6中所示的组成元素不同的常见组成元素。比如:运算器。
计算装置600可以对应于具有各种处理功能的计算设备,例如,用于生成神经网络、训练或学习神经网络、将浮点型神经网络量化为定点型神经网络、或者重新训练神经网络的功能。例如,计算装置600可以被实现为各种类型的设备,例如个人计算机(PC)、服务器设备、移动设备等。
处理器610控制计算装置600的所有功能。例如,处理器610通过执行计算装置600上的存储器620中存储的程序,来控制计算装置600的所有功能。处理器610可以由计算装置600中提供的中央处理单元(CPU)、图形处理单元(GPU)、应用处理器(AP)、人工智能处理器芯片(IPU)等来实现。然而,本披露不限于此。
在一些实施例中,处理器610可以包括输入/输出(I/O)单元611和计算单元612。I/O单元611可以用于接收各种数据,例如神经网络的配置信息和通道对齐参数。计算单元612可以用于对经由I/O单元611接收的神经网络模型进行压缩处理。此压缩后的神经网络模型例如可以由I/O单元611输出。输出数据可以提供给存储器620以供其他设备(未示出)读取使用,也可以直接提供给其他设备使用。
存储器620是用于存储计算装置600中处理的各种数据的硬件。例如,存储器620可以存储计算装置600中的处理过的数据和待处理的数据。存储器620可存储处理器610已处理或要处理的神经网络运算过程中涉及的数据集,例如,未训练的初始神经网络的数据、在训练过程中生成的神经网络的中间数据、完成了所有训练的神经网络的数据、经压缩的神经网络的数据等。此外,存储器620可以存储要由计算装置600驱动的应用、驱动程序等。例如:存储器620可以存储与将由处理器610执行的神经网络的训练算法、剪枝算法、压缩算法等有关的各种程序。存储器620可以是DRAM,但是本披露不限于此。存储器620可以包括易失性存储器或非易失性存储器中的至少一种。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)、铁电RAM(FRAM)等。易失性存储器可以包括动态RAM(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)、PRAM、MRAM、RRAM、铁电RAM(FeRAM)等。在实施例中,存储器620可以包括硬盘驱动器(HDD)、固态驱动器(SSD)、高密度闪存(CF)、安全数字(SD)卡、微安全数字(Micro-SD)卡、迷你安全数字(Mini-SD)卡、极限数字(xD)卡、高速缓存(caches)或记忆棒中的至少一项。
综上,本说明书实施方式提供的计算装置600的存储器620和处理器610实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。
在本实施方式中,处理器610可以按任何适当的方式实现。例如,处理器610可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
图7示出了本披露实施例的用于提供神经网络的计算装置应用于人工智能处理器芯片的应用示意图。参考图7,如上所述,在诸如PC、服务器等的计算装置600中,处理器610执行剪枝压缩操作,将神经网络剪枝压缩成小模型网络。人工智能处理器芯片720是用于驱动神经网络的专用硬件。由于本披露实施例中增加的通道对齐操作可以解决硬件上应用神经网络时由于数据不对齐而带来的并行低效,以及计算、传输和存储等低效的问题,促进硬件充分发挥性能,这在硬件支持上是很友好的。
在本披露实施例中,人工智能处理器芯片可以对应于例如神经处理单元(NPU)、张量处理单元(TPU)、神经引擎等,它们是用于驱动神经网络的专用芯片,但是本披露不限于此。
在本披露实施例中,人工智能处理器芯片可以在独立于计算装置600的单独设备中实现,计算装置600也可以作为人工智能处理器芯片的一部分功能模块来实现。但是本披露不限于此。
在本披露实施例中,通用处理器(比如CPU)的操作系统基于本披露实施例生成指令,将生成的指令发送至人工智能处理器芯片(比如GPU)上,由人工智能处理器芯片去执行指令操作实现神经网络的剪枝压缩过程。还有一种应用情况,通用处理器基于本披露实施例直接对神经网络进行剪枝压缩,人工智能处理器芯片利用剪枝压缩后的神经网络模型执行运算操作。更甚者,通用处理器(比如CPU)和人工智能处理器芯片(比如GPU)流水化操作,通用处理器(比如CPU)的操作系统基于本披露实施例生成指令,且对目标数据进行拷贝的同时人工智能处理器芯片(比如GPU)进行神经网络运算操作,这样可以把某些时间消耗隐藏起来。但是本披露不限于此。
在本披露实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,当该计算机程序被处理器运行时,使得处理器执行上述提供剪枝压缩的神经网络的方法。
图8是示出根据本披露实施例的一种组合处理装置800的结构图。如图8中所示,该组合处理装置800包括计算处理装置802、接口装置804、其他处理装置806和存储装置808。根据不同的应用场景,计算处理装置中可以包括一个或多个计算装置810,该计算装置可以配置成图6所示的计算装置600,用于执行本文结合附图2-5所描述的操作。
在不同的实施例中,本披露的计算处理装置可以配置成执行用户指定的操作。在示例性的应用中,该计算处理装置可以实现为单核人工智能处理器或者多核人工智能处理器。类似地,包括在计算处理装置内的一个或多个计算装置可以实现为人工智能处理器核或者人工智能处理器核的部分硬件结构。当多个计算装置实现为人工智能处理器核或人工智能处理器核的部分硬件结构时,就本披露的计算处理装置而言,其可以视为具有单核结构或者同构多核结构。
在示例性的操作中,本披露的计算处理装置可以通过接口装置与其他处理装置进行交互,以共同完成用户指定的操作。根据实现方式的不同,本披露的其他处理装置可以包括中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics ProcessingUnit,GPU)、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器。这些处理器可以包括但不限于数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本披露的计算处理装置而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算处理装置和其他处理装置共同考虑时,二者可以视为形成异构多核结构。
在一个或多个实施例中,该其他处理装置可以作为本披露的计算处理装置(其可以具体化为人工智能例如神经网络运算的相关运算装置)与外部数据和控制的接口,执行包括但不限于数据搬运、对计算装置的开启和/或停止等基本控制。在另外的实施例中,其他处理装置也可以和该计算处理装置协作以共同完成运算任务。
在一个或多个实施例中,该接口装置可以用于在计算处理装置与其他处理装置间传输数据和控制指令。例如,该计算处理装置可以经由所述接口装置从其他处理装置中获取输入数据,写入该计算处理装置片上的存储装置(或称存储器)。进一步,该计算处理装置可以经由所述接口装置从其他处理装置中获取控制指令,写入计算处理装置片上的控制缓存中。替代地或可选地,接口装置也可以读取计算处理装置的存储装置中的数据并传输给其他处理装置。
附加地或可选地,本披露的组合处理装置还可以包括存储装置。如图中所示,该存储装置分别与所述计算处理装置和所述其他处理装置连接。在一个或多个实施例中,存储装置可以用于保存所述计算处理装置和/或所述其他处理装置的数据。例如,该数据可以是在计算处理装置或其他处理装置的内部或片上存储装置中无法全部保存的数据。
在一些实施例里,本披露还公开了一种芯片(例如图9中示出的芯片902)。在一种实现中,该芯片是一种系统级芯片(System on Chip,SoC),并且集成有一个或多个如图8中所示的组合处理装置。该芯片可以通过对外接口装置(如图9中示出的对外接口装置906)与其他相关部件相连接。该相关部件可以例如是摄像头、显示器、鼠标、键盘、网卡或wifi接口。在一些应用场景中,该芯片上可以集成有其他处理单元(例如视频编解码器)和/或接口模块(例如DRAM接口)等。在一些实施例中,本披露还公开了一种芯片封装结构,其包括了上述芯片。在一些实施例里,本披露还公开了一种板卡,其包括上述的芯片封装结构。下面将结合图9对该板卡进行详细地描述。
图9是示出根据本披露实施例的一种板卡900的结构示意图。如图9中所示,该板卡包括用于存储数据的存储器件904,其包括一个或多个存储单元910。该存储器件可以通过例如总线等方式与控制器件908和上文所述的芯片902进行连接和数据传输。进一步,该板卡还包括对外接口装置906,其配置用于芯片(或芯片封装结构中的芯片)与外部设备912(例如服务器或计算机等)之间的数据中继或转接功能。例如,待处理的数据可以由外部设备通过对外接口装置传递至芯片。又例如,所述芯片的计算结果可以经由所述对外接口装置传送回外部设备。根据不同的应用场景,所述对外接口装置可以具有不同的接口形式,例如其可以采用标准PCIE接口等。
在一个或多个实施例中,本披露板卡中的控制器件可以配置用于对所述芯片的状态进行调控。为此,在一个应用场景中,该控制器件可以包括单片机(Micro ControllerUnit,MCU),以用于对所述芯片的工作状态进行调控。
根据上述结合图8和图9的描述,本领域技术人员可以理解本披露也公开了一种电子设备或装置,其可以包括一个或多个上述板卡、一个或多个上述芯片和/或一个或多个上述组合处理装置。
根据不同的应用场景,本披露的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。本披露的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本披露的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本披露方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
需要说明的是,为了简明的目的,本披露将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本披露的方案并不受所描述的动作的顺序限制。因此,依据本披露的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本披露所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本披露某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本披露对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本披露某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本披露的公开和教导,本领域技术人员可以理解本披露所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行划分,而实际实现时也可以有另外的划分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
在本披露中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本披露实施例所述方案的目的。另外,在一些场景中,本披露实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
在一些实现场景中,上述集成的单元可以采用软件程序模块的形式来实现。如果以软件程序模块的形式实现并作为独立的产品销售或使用时,所述集成的单元可以存储在计算机可读取存储器中。基于此,当本披露的方案以软件产品(例如计算机可读存储介质)的形式体现时,该软件产品可以存储在存储器中,其可以包括若干指令用以使得计算机设备(例如个人计算机、服务器或者网络设备等)执行本披露实施例所述方法的部分或全部步骤。前述的存储器可以包括但不限于U盘、闪存盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如CPU、GPU、FPGA、DSP和ASIC等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(Resistive Random Access Memory,RRAM)、动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)、增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,EDRAM)、高带宽存储器(High Bandwidth Memory,HBM)、混合存储器立方体(Hybrid Memory Cube,HMC)、ROM和RAM等。
Claims (16)
1.一种用于提供神经网络的方法,其中所述神经网络包括多个层,至少一个层包括对应的通道,所述方法包括:
接收所述神经网络的配置信息和通道对齐参数;
基于所述配置信息和通道对齐参数,对需要执行通道对齐的层进行通道对齐,使得所述层的实际保留通道数是所述通道对齐参数的正整数倍;
根据所述层的实际保留通道数,按照预定的剪枝策略对所述层进行剪枝;以及
对剪枝后的所述神经网络进行压缩,以提供压缩后的神经网络。
2.根据权利要求1所述的方法,其中对需要执行通道对齐的层进行通道对齐包括:
确定所述层的预备保留通道数;以及
基于所述通道对齐参数,对所述预备保留通道数进行对齐处理,以确定所述层的实际保留通道数。
3.根据权利要求2所述的方法,其中对所述预备保留通道数进行对齐处理包括:
根据对齐策略,按照所述通道对齐参数对所述预备保留通道数进行对齐修正;
其中所述对齐策略包括以下任一:向上对齐、向下对齐和临近对齐。
4.根据权利要求2-3任一所述的方法,其中,确定所述层的预备保留通道数包括:
从所述配置信息中获取所述层的预备保留通道数;或者
基于所述配置信息,按照所述剪枝策略,确定所述层的预备保留通道数。
5.根据权利要求4所述的方法,其中基于所述配置信息,按照所述剪枝策略,确定所述层的预备保留通道数包括:
基于所述配置信息,确定所述层的各个通道的剪枝指标;以及
按照所述剪枝策略,基于所述剪枝指标,确定所述层的预备保留通道数。
6.根据权利要求5所述的方法,其中所述剪枝指标包括以下任一:滤波器重要性指标、通道重要性指标或前述的任意组合。
7.根据权利要求6所述的方法,其中:
所述滤波器重要性指标包括以下任一:滤波器的L1范数、滤波器的L2范数或前述的任意组合;和/或
所述通道重要性指标包括以下任一:通道参数的幅值、L1范数、L2范数、梯度、参数相关性、参数冗余度、对通道损失的影响程度、对特征重建误差的贡献、或前述的任意组合。
8.根据权利要求1-7任一所述的方法,其中所述剪枝策略包括以下至少一项:全局剪枝、局部剪枝、逐层剪枝、剪枝阈值、剪枝比例和剪枝通道的处理方式。
9.根据权利要求8所述的方法,其中所述剪枝通道的处理方式包括以下任一:剪枝通道参数置零、记录剪枝通道索引、以及掩码标记。
10.根据权利要求1-9任一所述的方法,其中根据所述层的实际保留通道数,按照预定的剪枝策略对相应的层进行剪枝包括:
根据所述层的原始通道数和实际保留通道数,确定所述层的实际剪枝通道数;
基于所述配置信息,确定所述层的各个通道的剪枝指标;以及
按照所述剪枝策略,基于所述剪枝指标和所述层的实际剪枝通道数,对所述层执行剪枝。
11.根据权利要求1-10任一所述的方法,其中所述通道对齐在所述神经网络的剪枝训练期间的以下任一时间点执行:
迭代剪枝训练的每轮迭代中;
迭代剪枝训练的最后一轮迭代中;
迭代剪枝训练的每K轮迭代中,其中K是小于剪枝总迭代次数的正整数;以及
一次性的剪枝训练期间。
12.根据权利要求1-11任一所述的方法,其中所述通道对齐参数具有以下至少一项特性:
所述通道对齐参数是基于所述神经网络将要应用于的硬件特性和/或算法需求而确定的;
所述通道对齐参数包括一个或多个数值,每个数值用于一个或多个需要执行通道对齐的层;
所述通道对齐参数包括一个或多个数值,每个数值分别对应于所述神经网络将要应用于的不同硬件和/或算法;
所述通道对齐参数根据需要执行通道对齐的层而动态变化;以及
所述通道对齐参数的数值选自2的N次幂,其中N是自然数。
13.根据权利要求1-12任一所述的方法,其中,所述神经网络的配置信息包括以下至少一项:各层的滤波器权值、通道参数、剪枝信息。
14.根据权利要求1-13任一所述的方法,其中,所述需要执行通道对齐的层包括以下至少一项:卷积层、归一化层。
15.一种计算装置,包括:
处理器,其配置用于执行程序指令;以及
存储器,其配置用于存储所述程序指令,当所述程序指令由所述处理器加载并执行时,使得所述计算装置执行根据权利要求1-14任一所述的方法。
16.一种计算机可读存储介质,其中存储有程序指令,当所述程序指令由处理器加载并执行时,使得所述处理器执行根据权利要求1-14任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011035467.1A CN112183725B (zh) | 2020-09-27 | 2020-09-27 | 提供神经网络的方法、计算装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011035467.1A CN112183725B (zh) | 2020-09-27 | 2020-09-27 | 提供神经网络的方法、计算装置和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112183725A true CN112183725A (zh) | 2021-01-05 |
CN112183725B CN112183725B (zh) | 2023-01-17 |
Family
ID=73944688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011035467.1A Active CN112183725B (zh) | 2020-09-27 | 2020-09-27 | 提供神经网络的方法、计算装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112183725B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115170917A (zh) * | 2022-06-20 | 2022-10-11 | 美的集团(上海)有限公司 | 图像处理方法、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008234657A (ja) * | 2007-03-19 | 2008-10-02 | Toshiba Corp | 言語モデルの枝刈り方法及び装置 |
JP2014089246A (ja) * | 2012-10-29 | 2014-05-15 | Kddi Corp | パターン認識方法および装置ならびにパターン認識プログラムおよびその記録媒体 |
US20190294929A1 (en) * | 2018-03-20 | 2019-09-26 | The Regents Of The University Of Michigan | Automatic Filter Pruning Technique For Convolutional Neural Networks |
CN110619385A (zh) * | 2019-08-31 | 2019-12-27 | 电子科技大学 | 基于多级剪枝的结构化网络模型压缩加速方法 |
CN111199282A (zh) * | 2019-12-31 | 2020-05-26 | 的卢技术有限公司 | 一种卷积神经网络模型的剪枝方法及装置 |
CN111652366A (zh) * | 2020-05-09 | 2020-09-11 | 哈尔滨工业大学 | 一种基于通道剪枝和量化训练的联合神经网络模型压缩方法 |
CN111695375A (zh) * | 2019-03-13 | 2020-09-22 | 上海云从企业发展有限公司 | 基于模型蒸馏的人脸识别模型压缩算法、介质及终端 |
-
2020
- 2020-09-27 CN CN202011035467.1A patent/CN112183725B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008234657A (ja) * | 2007-03-19 | 2008-10-02 | Toshiba Corp | 言語モデルの枝刈り方法及び装置 |
JP2014089246A (ja) * | 2012-10-29 | 2014-05-15 | Kddi Corp | パターン認識方法および装置ならびにパターン認識プログラムおよびその記録媒体 |
US20190294929A1 (en) * | 2018-03-20 | 2019-09-26 | The Regents Of The University Of Michigan | Automatic Filter Pruning Technique For Convolutional Neural Networks |
CN111695375A (zh) * | 2019-03-13 | 2020-09-22 | 上海云从企业发展有限公司 | 基于模型蒸馏的人脸识别模型压缩算法、介质及终端 |
CN110619385A (zh) * | 2019-08-31 | 2019-12-27 | 电子科技大学 | 基于多级剪枝的结构化网络模型压缩加速方法 |
CN111199282A (zh) * | 2019-12-31 | 2020-05-26 | 的卢技术有限公司 | 一种卷积神经网络模型的剪枝方法及装置 |
CN111652366A (zh) * | 2020-05-09 | 2020-09-11 | 哈尔滨工业大学 | 一种基于通道剪枝和量化训练的联合神经网络模型压缩方法 |
Non-Patent Citations (3)
Title |
---|
彭冬亮等: "基于GoogLeNet模型的剪枝算法", 《控制与决策》 * |
赖叶静等: "深度神经网络模型压缩方法与进展", 《华东师范大学学报(自然科学版)》 * |
靳丽蕾等: "一种用于卷积神经网络压缩的混合剪枝方法", 《小型微型计算机系统》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115170917A (zh) * | 2022-06-20 | 2022-10-11 | 美的集团(上海)有限公司 | 图像处理方法、电子设备及存储介质 |
CN115170917B (zh) * | 2022-06-20 | 2023-11-07 | 美的集团(上海)有限公司 | 图像处理方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112183725B (zh) | 2023-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10417555B2 (en) | Data-optimized neural network traversal | |
KR102545128B1 (ko) | 뉴럴 네트워크를 수반한 클라이언트 장치 및 그것을 포함하는 시스템 | |
US11144823B1 (en) | Method and system for hierarchical weight-sparse convolution processing | |
CN113822209B (zh) | 高光谱图像识别方法、装置、电子设备及可读存储介质 | |
CN111178507B (zh) | 图谱卷积神经网络数据处理方法及装置 | |
CN108510058B (zh) | 神经网络中的权重存储方法以及基于该方法的处理器 | |
US20220083857A1 (en) | Convolutional neural network operation method and device | |
CN113065997B (zh) | 一种图像处理方法、神经网络的训练方法以及相关设备 | |
CN112529165B (zh) | 深度神经网络剪枝方法、装置、终端及存储介质 | |
CN110956263A (zh) | 一种二值化神经网络的构建方法、存储介质及终端设备 | |
EP4401007A1 (en) | Neural network acquisition method, data processing method and related device | |
US20220147826A1 (en) | Method and system for convolution with workload-balanced activation sparsity | |
CN108171328A (zh) | 一种卷积运算方法和基于该方法的神经网络处理器 | |
CN112799599A (zh) | 一种数据存储方法、计算核、芯片和电子设备 | |
CN112529068A (zh) | 一种多视图图像分类方法、系统、计算机设备和存储介质 | |
JP2021039758A (ja) | 画像間の類似度を利用した類似領域強調方法およびシステム | |
CN112183724A (zh) | 提供神经网络的方法、计算装置和计算机可读存储介质 | |
CN112183725B (zh) | 提供神经网络的方法、计算装置和计算机可读存储介质 | |
CN117688984A (zh) | 神经网络结构搜索方法、装置及存储介质 | |
CN111353591B (zh) | 一种计算装置及相关产品 | |
CN111027669A (zh) | 在现场可编程门阵列上实现深度神经网络的方法及装置 | |
CN116362301A (zh) | 一种模型的量化方法以及相关设备 | |
CN115204380A (zh) | 存算一体卷积神经网络的数据存储及阵列映射方法与装置 | |
CN111291871B (zh) | 一种计算装置及相关产品 | |
CN116802646A (zh) | 数据处理的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |