CN116957041A - 压缩神经网络模型的方法、装置和计算设备 - Google Patents
压缩神经网络模型的方法、装置和计算设备 Download PDFInfo
- Publication number
- CN116957041A CN116957041A CN202310125220.6A CN202310125220A CN116957041A CN 116957041 A CN116957041 A CN 116957041A CN 202310125220 A CN202310125220 A CN 202310125220A CN 116957041 A CN116957041 A CN 116957041A
- Authority
- CN
- China
- Prior art keywords
- output channel
- target
- channel
- initial
- channel index
- 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
- 238000003062 neural network model Methods 0.000 title claims abstract description 139
- 238000000034 method Methods 0.000 title claims abstract description 97
- 239000011159 matrix material Substances 0.000 claims abstract description 55
- 238000013138 pruning Methods 0.000 claims abstract description 29
- 238000003860 storage Methods 0.000 claims description 30
- 230000003068 static effect Effects 0.000 claims description 22
- 238000012937 correction Methods 0.000 claims description 17
- 238000010586 diagram Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 7
- 238000013528 artificial neural network Methods 0.000 abstract description 11
- 238000012545 processing Methods 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 12
- 238000013473 artificial intelligence Methods 0.000 description 11
- 238000007906 compression Methods 0.000 description 10
- 230000011218 segmentation Effects 0.000 description 10
- 230000006835 compression Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000012549 training Methods 0.000 description 7
- 230000002829 reductive effect Effects 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 5
- 230000036961 partial effect Effects 0.000 description 5
- 210000002569 neuron Anatomy 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 2
- 101150041570 TOP1 gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003925 brain function Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010790 dilution Methods 0.000 description 1
- 239000012895 dilution Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000013137 model compression technique Methods 0.000 description 1
- 210000000653 nervous system Anatomy 0.000 description 1
- 210000003061 neural cell Anatomy 0.000 description 1
- 238000005312 nonlinear dynamic Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 230000007723 transport mechanism Effects 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Processing (AREA)
Abstract
提供了一种压缩神经网络模型的方法,神经网络模型包括多个卷积层,每个卷积层包括至少一个滤波器。该方法包括:至少根据针对各个卷积层的通道稀疏度生成初始掩码矩阵,通道稀疏度表征从每个卷积层预期剩余的滤波器的数量;从多个卷积层中确定彼此存在依赖性的多个目标卷积层,依赖性包括滤波器通道依赖性和滤波器维度依赖性中的至少一个,滤波器通道依赖性指示各个目标卷积层需要保留相同索引的滤波器,滤波器维度依赖性指示各个目标卷积层需要保留相同数量的滤波器;以及根据依赖性和所述初始掩码矩阵对多个目标卷积层进行滤波器剪枝以压缩神经网络模。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及一种压缩神经网络模型的方法、装置、计算设备和存储介质。
背景技术
神经网络模型已经成为解决计算机视觉、自然语言处理和模式识别推理任务的强大工具。为了提高精度,神经网络模型架构的设计趋势向着更深、更复杂的网络模型发展。这不可避免地增加了在推理任务期间执行的运算的数量,以至于在软件或硬件系统中实现神经网络系统的成本可能很高。深度神经网络系统所需的计算能力会增加计算设备的消耗,甚至对计算设备的硬件提出了更高的要求。因此,人们对神经网络模型压缩技术的兴趣与日俱增,这些技术可以减少推理任务所需的神经网络运算量,从而使得神经网络模型能够部署在计算受限的设备中,这些设备可以例如使用功能相对较小的处理单元和较小的内存。由此,可以实现这些设备以解决诸如机器人、自动驾驶、无人机和物联网等应用中的实际问题。
然而,常规的网络模型压缩技术对一些复杂的网络模型(例如,某些残差网络)缺乏处理能力,而且针对网络模型的压缩策略较为单一,影响了压缩后模型的性能。
发明内容
本申请实施例提供了一种压缩神经网络模型的方法,所述神经网络模型包括多个卷积层,每个卷积层包括至少一个滤波器,所述方法包括:至少根据针对所述多个卷积层中的各个卷积层的通道稀疏度生成初始掩码矩阵,所述通道稀疏度表征从所述多个卷积层中的每个卷积层预期剩余的滤波器的数量;从所述多个卷积层中确定彼此存在依赖性的多个目标卷积层,所述依赖性包括滤波器通道依赖性和滤波器维度依赖性中的至少一个,所述滤波器通道依赖性指示所述多个目标卷积层中各个目标卷积层需要保留相同索引的滤波器,所述滤波器维度依赖性指示所述各个目标卷积层需要保留相同数量的滤波器;以及根据所述依赖性和所述初始掩码矩阵对所述多个目标卷积层进行滤波器剪枝以压缩所述神经网络模型。
本申请另一实施例提供了一种压缩神经网络模型的装置,所述神经网络模型包括多个卷积层,每个卷积层包括至少一个滤波器,所述装置包括:初始掩码矩阵生成模块,其被配置成至少根据针对所述多个卷积层中的各个卷积层的通道稀疏度生成初始掩码矩阵,所述通道稀疏度表征从所述多个卷积层中的每个卷积层预期剩余的滤波器的数量;目标卷积层确定模块,其被配置成从所述多个卷积层中确定彼此存在依赖性的多个目标卷积层,所述依赖性包括滤波器通道依赖性和滤波器维度依赖性中的至少一个,所述滤波器通道依赖性指示所述多个目标卷积层中各个目标卷积层需要保留相同索引的滤波器,所述滤波器维度依赖性指示所述各个目标卷积层需要保留相同数量的滤波器;以及滤波器剪枝模块,其被配置成根据所述依赖性和所述初始掩码矩阵对所述多个目标卷积层进行滤波器剪枝以压缩所述神经网络模型。
本申请的另一实施例提供了一种计算设备,包括存储器,其被配置成存储计算机可执行指令;处理器,其被配置成当所述计算机可执行指令被处理器执行时执行如前述方法实施例中的任一实施例所述的方法。
本申请的另一实施例提供了一种计算机可读存储介质,其存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行如前述方法实施例中的任一实施例所述的方法。
本申请的另一实施例提供了一种计算机程序产品,包括计算机程序,其中所述计算机程序被处理器执行时实现如前述方法实施例中的任一实施例所述的方法。
本申请的实施例提出的压缩神经网络模型的方法充分地虑及了神经网络模型的多个卷积层中相互之间可能存在的滤波器通道依赖性和滤波器维度依赖性,并根据滤波器通道依赖性、滤波器维度依赖性和初始掩码矩阵对神经网络模型进行滤波器剪枝。该压缩神经网络模型的方法可以对较复杂网络模型的进行压缩处理,减少在应用神经网络模型时推理任务所需的神经网络运算量,降低对部署该神经网络模型的硬件的消耗或性能要求。而且,对神经网络模型的滤波器剪枝过程考虑了一部分卷积层相互之间存在的滤波器通道依赖性和滤波器维度依赖性,有利于提升经过压缩处理获得的压缩后的神经网络模型的性能表现。
根据下文描述的实施例,本申请的这些和其它优点将变得清楚,并且参考下文描述的实施例来阐明本申请的这些和其它优点。
附图说明
现在将更详细并且参考附图来描述本申请的实施例,其中:
图1图示了根据本申请一个实施例的压缩神经网络模型的方法的示例实施环境;
图2图示了根据本申请一个实施例的压缩神经网络模型的方法中的步骤;
图3示出了从神经网络模型的多个卷积层中确定彼此存在依赖性的多个目标卷积层的具体示例;
图4至图6图示了神经网络模型的局部静态图样式的示例;
图7图示根据本申请的一个实施例的压缩神经网络模型的方法中根据依赖性和初始掩码矩阵对多个目标卷积层进行滤波器剪枝的示例性步骤;
图8图示根据本申请的一个实施例的压缩神经网络模型的方法中根据依赖性修正初始通道索引列表以获得修正通道索引列表包括的示例性步骤;
图9图示根据本申请的另一实施例的压缩神经网络模型的方法中根据依赖性修正初始通道索引列表以获得修正通道索引列表包括的示例性步骤;
图10图示根据本申请的另一实施例的压缩神经网络模型的方法中根据依赖性修正初始通道索引列表以获得修正通道索引列表包括的示例性步骤;
图11图示根据本申请的又一实施例的压缩神经网络模型的方法中根据依赖性修正初始通道索引列表以获得修正通道索引列表包括的示例性步骤;
图12图示了根据本申请的实施例提出的压缩神经网络模型的方法所涉及的主要过程;
图13图示了根据本申请的实施例提出的压缩神经网络模型的方法的示例性应用场景;
图14示出了根据本申请实施例提供的压缩神经网络模型的装置的框图;以及
图15图示了一个示例系统,其包括代表可以实现本文描述的各种方法或装置的一个或多个系统和/或设备的示例计算设备。
具体实施方式
下面的描述提供了本申请的各种实施例的特定细节,以便本领域的技术人员能够充分理解和实施本申请的各种实施例。应当理解,本申请的技术方案可以在没有这些细节中的一些细节的情况下被实施。在某些情况下,本申请并没有示出或详细描述一些熟知的结构或功能,以避免这些不必要的描述使对本申请的实施例的描述模糊不清。在本申请中使用的术语应当以其最宽泛的合理方式来理解,即使其是结合本申请的特定实施例被使用的。
在本申请中使用的术语应当以其最宽泛的合理方式来理解,即使其是结合本申请的特定实施例被使用的。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习、自动驾驶、智慧交通、自动控制等几大方向。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
神经网络是由大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学习系统。神经网络具有大规模并行、分布式存储和处理、自组织、自适应和自学能力,特别适合处理需要同时考虑许多因素和条件的、不精确和模糊的信息处理问题。神经网络的基础在于神经元。神经元是以生物神经系统的神经细胞为基础的生物模型。神经网络模型是以神经元的数学模型为基础来描述的。神经网络模型通常包括多个卷积层,每个卷积层包括至少一个滤波器。滤波器的基本功能是利用卷积运算的原理进行特征提取,滤波器可以被理解为包括至少一个卷积核。例如,对于图像处理而言,单个的滤波器基于输入图像可生成单输出通道的图像。从提取特征的角度来看,一个滤波器只能提取一类特征,如要要输入图像提取多个特征,则需要多个滤波器。不同滤波器的参数可以不同,所以,不同滤波器可以从输入图像提取不同的特征。
本申请的实施例提供了一种压缩神经网络模型的方法。图1图示了根据本申请一些实施例的压缩神经网络模型的方法的示例性实施环境。如图1所示,各种类型的终端(例如,手机、台式电脑、平板电脑、笔记本电脑和掌上电脑)通过网络与服务器进行通信。服务器例如可以是独立的物理服务器,也可以是由多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络、以及大数据和人工智能平台等基础云计算服务的云服务器。各个终端和服务器可以通过有线或无线通信方式进行直接或间接地连接,服务器也可以是区块链网络中的节点设备。
下文实施例中描述的压缩神经网络模型的方法中的各个步骤可以全部在服务器中执行,也可以由终端执行。或者,压缩神经网络模型的方法中的一部分步骤由服务器执行,另一部分步骤由终端执行。即,本文对压缩神经网络模型的方法中的哪些步骤由服务器执行、哪些步骤由终端执行不作限制。为了简便起见,下面以压缩神经网络模型的方法由服务器执行为例进行详细说明。
图2图示了根据本申请的实施例的压缩神经网络模型的方法的流程图。如图2所示,根据本申请的一个实施例,压缩神经网络模型的方法包括:S210、至少根据针对所述多个卷积层中的各个卷积层的通道稀疏度生成初始掩码矩阵,所述通道稀疏度表征从所述多个卷积层中的每个卷积层预期剩余的滤波器的数量;S220、从所述多个卷积层中确定彼此存在依赖性的多个目标卷积层,所述依赖性包括滤波器通道依赖性和滤波器维度依赖性中的至少一个,所述滤波器通道依赖性指示所述多个目标卷积层中各个目标卷积层需要保留相同索引的滤波器,所述滤波器维度依赖性指示所述各个目标卷积层需要保留相同数量的滤波器;以及S230、据所述依赖性和所述初始掩码矩阵对所述多个目标卷积层进行滤波器剪枝以压缩所述神经网络模型。
能够理解到的是,神经网络模型包括多个卷积层,每个卷积层包括多个输入通道和多个输出通道,而且通常会存在多个卷积层堆叠的情形。此时,前一卷积层的输出通道对应于下一卷积层的输入通道。每个卷积层的输出通道对应于该卷积层的滤波器,即,每个卷积层包含的滤波器的数目对应于该卷积层的输出通道的数目。本文提到的“滤波器剪枝”指的是通过去除神经网络模型的卷积层中的一些滤波器而压缩神经网络模型,从而降低整个神经网络模型的参数的量。此外,如上文所述,“通道稀疏度”表征从所述多个卷积层中的每个卷积层预期剩余的滤波器的数量,由于滤波器与输出通道相对应,所以通道稀疏度也可以视为针对卷积层的输出通道稀疏度。例如,某一卷积层原有的滤波器的数量为100,期望通过滤波器剪枝而剩下的滤波器的数量为70,则通道稀疏度为0.7。在一些实施例中,可以针对神经网络模型中的各个卷积层设定相同的通道稀疏度,在另外的实施例中,可以针对不同的卷积层设定不同的通道稀疏度。
在上步骤S210中,可以根据针对所述多个卷积层中的各个卷积层的通道稀疏度生成初始掩码矩阵,所述通道稀疏度表征从所述多个卷积层中的每个卷积层预期剩余的滤波器的数量。在一些实施例中,还可以根据神经网络模型中各个滤波器的重要性和针对神经网络模型中的多个卷积层中的各个卷积层的通道稀疏度生成初始掩码矩阵。例如,可以基于L1范数裁剪法或滤波器距几何中心距离(FPGM)裁剪法等方法对神经网络模型中的滤波器的重要性进行评估,并依据各个滤波器的重要性对各滤波器进行排序,并根据期望的通道稀疏度生成初始掩码矩阵。例如,可以计算各个滤波器的L1范数,滤波器的L1范数越小,意味着滤波器在神经网络模型中的重要性越低,因为L1范数越小的滤波器对应的特征图接近于0。或者,对于每个卷积层的各个滤波器,可以计算每个滤波器与其他滤波器的平均几何距离,平均几何距离越小,意味着该滤波器的重要性越低。针对每个卷积层,初始掩码矩阵用“0”标注需要剪裁的参数,用“1”标注需要保留的参数。根据本申请的一个实施例中,对于任一滤波器,该滤波器参数对应的掩码矩阵中的数值要么全部为0,要么全部为1,即,该滤波器的参数或者全部被剪裁,或者全部被保留。因此,初始掩码矩阵可以被视为由0和1构成的张量,该张量的维度对应于卷积层的维度。在一些实施例中,初始掩码矩阵和卷积层均为4维张量。根据该初始掩码矩阵,可以初步确定神经网络模型中各个卷积层中的哪些滤波器(或输出通道)预期被保留,以及哪些滤波器(或输出通道)预期被去除。但是,根据本申请的实施例,并不直接依据该初始掩码矩阵完成对神经网络模型的参数的剪裁,而是进一步考虑相关卷积层之间可能存在的滤波器通道依赖性、滤波器维度依赖性对神经网络模型中的特定卷积层(如下文提到的目标卷积层)进行滤波器剪枝。如上述的步骤S220所述,模型中彼此存在滤波器通道依赖性或滤波器维度依赖性的卷积层被定义为目标卷积层,滤波器通道依赖性指示各个目标卷积层需要保留相同索引的滤波器,这里提到的“索引”包括用于标识目标卷积层所包括的滤波器的任何符号或数字,根据索引可以区分目标卷积层中的不同滤波器。而且,对于待压缩的神经网络模型,其中的任意卷积层所包括的滤波器均具有与该滤波器对应的索引,而且该滤波器的索引不会因为应用初始掩码矩阵而发生变化。另外,需要说明的是,在卷积层中,会根据滤波器的位置对滤波器进行标记,得到滤波器的索引;因此,在本申请实施例中,滤波器的索引可以理解为滤波器的位置,相应地,相同索引具体可以理解为相同位置,即在各个目标卷积层中具有相同索引的滤波器,在各自目标卷积层中的位置相同。。滤波器维度依赖性指示所述各个目标卷积层需要保留相同数量的滤波器,在各个目标卷积层原有的滤波器的数量相同的情况下,在基于滤波器维度依赖性对各个目标卷积进行滤波器剪枝的后,各个目标卷积层保留的滤波器的数量仍相同。
常规的神经网络模型压缩方法,例如微软推出的NNI(Neural NetworkIntelligence)可以实现对神经网络模型的自动压缩,但缺乏对较复杂网络模型(例如,一些残差网络模型)的处理能力,而且,在对神经网络模型进行压缩时并设有考虑一些卷积层之间存在的滤波器通道依赖性和滤波器维度依赖性,导致压缩后的网络模型的性能表现欠佳。本申请的实施例提出的压缩神经网络模型的方法充分地虑及了神经网络模型的多个卷积层中相互之间可能存在的滤波器通道依赖性和滤波器维度依赖性,综合考虑滤波器通道依赖性、滤波器维度依赖性和所述初始掩码矩阵对神经网络模型进行滤波器剪枝。本申请实施例提出的压缩神经网络模型的方法可以对较复杂网络模型的进行压缩处理,减少在应用神经网络模型时推理任务所需的神经网络运算量,降低对部署该神经网络模型的硬件的消耗或性能要求。而且,对神经网络模型的滤波器剪枝考虑了一部分卷积层相互之间存在的滤波器通道依赖性和滤波器维度依赖性,有利于提升经过压缩处理获得的压缩后的神经网络模型的性能表现。
图3示出了从神经网络模型的多个卷积层中确定彼此存在依赖性的多个目标卷积层的具体示例。如图3所示,确定目标卷积层的过程可包括:S310、根据所述神经网络模型的前向传播过程构建与所述神经网络模型对应的静态图,所述静态图包括多个运算节点;S320、从所述多个运算节点中确定目标运算节点,所述目标运算节点包括张量加法节点、张量分割节点和分组卷积节点中的至少一个;以及S330、将位于所述目标运算节点的各个输入路径上且卷积结果将由所述目标运算节点执行运算操作的各个卷积层、以及位于所述目标运算节点的各个输出路径上对输出路径上的数据进行运算操作的卷积层确定为所述目标卷积层。
在步骤S310中,可以利用已有的软件工具(例如,Pytorch库静态图工具)根据神经网络模型的前向传播过程构建与神经网络模型对应的静态图。PyTorch库静态图工具的计算是基于动态图机制的,其特点是向前传播时构建图,反向传播后节点被释放。Pytorch库静态图工具支持将原有的动态图转为静态图。这使得可以将神经网络模型的一次向前转播转化为静态图。静态图可包括多个运算节点和卷积层。这里的运算节点表示神经网络模型中除卷积运算之外的其它运算,包括但不限于ReLU(线性整流)函数、加法、拼接等。图4至图6图示了神经网络模型的局部静态图样式的示例。图4图示了残差网络ResNet的局部静态图样式的示例。如图4所示,残差网络ResNet的静态图包括张量加法节点,该张量加法节点将残差块前的卷积层的输出数据(例如,特征图)和残差块中的最后一个卷积层的输出数据(特征图)相加。图5示出了残差网络ResNet的变体Res2Net网络的局部静态图的示例。如图5所示,Res2Net网络的静态图包括张量加法节点、张量分割节点和张量拼接节点。张量分割节点将其输入路径上的输入特征图均分至四个输出路径,不同输出路径上的特征图再经过张量加法节点、张量拼接节点的相加或拼接运算。图6图示了残差网络ResNet的变体Res2Net网络的局部静态图的另一示例,其与图的区别在于Res2Net网络中的瓶颈结构有所不同。如图6所示,张量分割节点将其输入路径上的输入特征图均分至四个输出路径,每个输出路径上的特征图直接送入相应的卷积层或池化层进行卷积运算,之后将各个输出路径上的结果进行拼接。
在一些情形中,神经网络模型对应的静态图(例如,残差网络ResNet的另一变体ResNext的静态图)可包括分组卷积节点(Group Convlution)。分组卷积节点将接收到的特征图分为若干组,每组分别进行卷积操作,再将各组卷积后的结果拼接,形成一个和输入特征图尺寸相同的输出特征图。这种结构的优点是大大节省了所需的空间,例如,对于一个原尺寸为128*128*3*3的卷积层,当进行32组的分组卷积时,仅仅需要32个4*4*3*3的子卷积层,分组卷积所用的参数量相对于采用原卷积层减少了32倍。
根据本申请的一些实施例,将神经网络模型对应的静态图中的张量加法节点、张量分割节点或分组卷积节点定义为目标运算节点,将位于目标运算节点的各个输入路径上且卷积结果将由所述目标运算节点执行运算操作的各个卷积层、以及位于目标运算节点的各个输出路径上对输出路径上的数据进行运算操作的各个卷积层确定为目标卷积层。相应地,所述多个目标卷积层包括以下卷积层中的至少一种:位于所述张量加法节点的各个输入路径上其卷积结果将由张量加法节点执行加法运算的卷积层、位于所述张量分割节点的各个输出路径上对各输出路径上的数据进行卷积运算的卷积层、以及位于所述分组卷积节点的各个输出路径上对各输出路径上的数据进行分组卷积的卷积层。
张量加法节点对其各个输入路径上的特征图进行相加操作,特征图与输入路径上的卷积层的输出通道存在对应关系,上述相加操作要求各输入路径上的卷积层的输出通道的数目一致,因此,在对张量加法节点的各个输入路径上的各个卷积层进行滤波器剪枝时,期望滤波器剪枝后各输入路径上的卷积层保留的滤波器的数目仍然一致。此外,张量加法节点的各个输入路径上的特征图之间本就存在着通道对应关系,所以仅保持滤波器剪枝后的卷积层的维度相等不足以保证压缩后的网络模型的性能,因而还要求各个卷积层被裁剪的滤波器的索引是相同的。因此,位于张量加法节点的各个输入路径上其卷积结果将由张量加法节点执行加法运算的卷积层存在上述的滤波器通道依赖性。例如,图4中所示的卷积层a和卷积层b具备上述的滤波器通道依赖性,图6中所示的卷积层c和卷积层d具备上述的滤波器通道依赖性。
张量分割节点对其接收到的特征图进行均等分割运算,为了保持特征图和卷积层输出通道的对应性,在对张量分割节点的各输出路径上的卷积层进行滤波器剪枝后仍要保证各卷积层的输出通道的数量一致。因此,位于张量分割节点的各个输出路径上对各输出路径上的数据进行卷积运算的卷积层具备上述的滤波器维度依赖性。例如,图5和图6中所示的张量分割节点的各个输出路径上的卷积层(或池化层)具备上述的滤波器维度依赖性。对于分组卷积节点,为了保持分组卷积的特征,需要在进行滤波器剪枝后维持分组卷积节点各个输出路径上剩余的输出通道数相等,因此,通过分组卷积节点的分组产生而位于分组卷积节点的各个输出路径上的卷积层具有上述的滤波器维度依赖性。
初始掩码矩阵的维度通常对应于神经网络模型中的卷积层的维度,为了克服掩码处理涉及的空间时间复杂度问题,根据本申请的一些实施例,将多维的初始掩码转换为两个一维数列,这两个一维数列分别代表各卷积层需要保留的输入通道和输出通道的索引。这样,大大降低了对神经网络模型进行压缩处理中的时间复杂度和空间复杂度。因此,在一些实施例中,如图7所示,前述的步骤S230-根据所述依赖性和所述初始掩码矩阵对所述多个目标卷积层进行滤波器剪枝以压缩所述神经网络模型包括:S710、根据所述初始掩码矩阵获得针对每个目标卷积层的初始通道索引列表,所述初始通道索引列表包括初始输出通道索引,所述初始输出通道索引用于标记所述目标卷积层的各个输出通道中依据所述初始掩码矩阵确定被保留的输出通道;S720、根据所述依赖性修正所述初始通道索引列表以获得修正通道索引列表,所述修正通道索引列表包括修正输出通道索引,所述修正输出通道索引用于标记所述目标卷积层的各个输出通道中依据所述依赖性和所述初始掩码矩阵确定被保留的输出通道;以及S730、利用所述修正通道索引列表对所述多个目标卷积层进行滤波器剪枝以压缩所述神经网络模型。如前所述,神经网络模型通常包括多个堆叠的卷积层,前一卷积层的输出通道对应于下一卷积层的输入通道,神经网络模型的首个卷积层的输入通道取决于外部数据的通道数,其他卷积层的输入通道对应于前级卷积层的输出通道。因此,除了上述的初始输出通道索引,初始通道索引列表还可包括初始输入通道索引,初始输入通道索引用于标记目标卷积层的各个输入通道依据初始掩码矩阵确定被保留的输入通道,可以根据前一卷积层的输出通道索引获得下一卷积层的输入通道索引。修正通道索引列表还可包括修正输入通道索引,修正输入通道索引用于标记目标卷积层的各个输入通道中依据所述依赖性和所述初始掩码矩阵确定被保留的输入通道。这样,每个卷积层依据所述依赖性和所述初始掩码矩阵确定被保留的输入通道和输出通道均被转换为对应的索引。通过将初始掩码矩阵变换为对应的修正通道索引列表中的修正输入通道索引和修正输出通道索引,实际上将多维的掩码数据转换为两个一维数列,利用两个一维数列对神经网络模型进行压缩,这大大降低了对神经网络模型进行压缩处理的复杂度,提高了针对神经网络模型的压缩效率。而且,如之前所讨论的,每个卷积层的输出通道对应于该卷积层的滤波器,卷积层的输出通道也可以索引的方式被存储,因此,滤波器的索引可以对应于滤波器所在卷积层的输出通道的索引。掩码矩阵和通道索引列表之间可以互相转换,也就是说,基于初始掩码矩阵可以获得针对每个目标卷积层的初始通道索引列表,相应地,也可以基于各个目标卷积层的修正通道索引列表获得对应的修正掩码矩阵。在一些实施例中,也可以基于该修正掩码矩阵对所述多个目标卷积层进行滤波器剪枝以压缩神经网络模型。或者说,根据依赖性修正初始通道索引列表的过程可被视为根据依赖性修正初始掩码矩阵的过程。如前所述,依赖性包括滤波器通道依赖性和滤波器维度依赖性中的至少一个,下面通过示例的方式进一步说明根据依赖性修正初始通道索引列表获得修正通道索引列表。
在一些实施例中,上述依赖性指示滤波器通道依赖性,如图8所示,上述的步骤S720-根据所述依赖性修正所述初始通道索引列表以获得修正通道索引列表包括:S810、从初始通道索引列表中确定必要输出通道索引,所述必要输出通道索引表征所述各个目标卷积层的各个初始输出通道索引中索引相同的初始输出通道索引;S820、根据针对所述目标卷积层的通道稀疏度确定额外输出通道索引,所述额外输出通道索引包括所述目标卷积层的各个输出通道对应的输出通道索引中除所述必要输出通道索引之外的相同输出通道索引中的至少一部分;以及S830、将所述必要输出通道索引和所述额外输出通道索引组合为所述修正输出通道索引。该实施例所述的根据依赖性修正初始通道索引列表的方法可适用于上述的张量加法节点的各个输入路径上其卷积结果由张量加法节点执行加法运算的各个卷积层。必要输出通道索引表征各个目标卷积层的各个初始输出通道索引中索引相同的初始输出通道索引,因此,必要输出通道索引对应的输出通道对于各个目标卷积层均具有较高的重要性。在此基础上,可以根据针对目标卷积层的期望的通道稀疏度从目标卷积层原有的各个输出通道中适当地选择除所述必要输出通道索引对应的输出通道之外具有相同输出通道索引的输出通道,以满足目标卷积层的通道稀疏度的要求。例如,上文提到某一卷积层的通道稀疏度为0.7,则只要目标卷积层的通道稀释度大于等于0.7,即满足了目标卷积层的通道稀疏度的要求。因此,该实施例可以优先满足针对压缩神经网络模型而预先设定的通道稀疏度的要求,由此可以实现固定的参数裁剪率。
在一些实施例中,依赖性指示所述滤波器维度依赖性,上述的步骤S720-根据所述依赖性修正所述初始通道索引列表以获得修正通道索引列表包括:根据针对目标卷积层的通道稀疏度调节所述目标卷积层的初始通道索引列表中初始输出通道索引的数目,使得所述各个目标卷积层的初始输出通道索引的数目相同,以获得所述修正通道索引列表。滤波器维度依赖性仅要求各个目标卷积层保留的滤波器的数量相同。可以将目标卷积层根据初始掩码矩阵确定保留的输出通道的索引记录为初始输出通道索引,并统计初始输出通道索引的数量。接着,可以根据针对目标卷积层的通道稀疏度调节目标卷积层的初始通道索引列表中初始输出通道索引的数目,使得各个目标卷积层的初始输出通道索引的数目相同。例如,可以针对初始输出通道索引的数量不满足通道稀疏度的目标卷积层,随机增f加或删除输出通道索引,使得各个目标卷积层的初始输出通道索引的数目相同,由此获得修正通道索引列表。该实施例所述的根据依赖性修正初始通道索引列表的方法可适用于上述的张量分割节点的各输出路径上对张量分割节点执行分割运算而产生的张量进行卷积运算的各个卷积层。该实施例优先满足针对压缩神经网络模型而预先设定的通道稀疏度的要求,由此可以实现固定的参数裁剪率。
根据本申请的另一实施例,在根据依赖性修正初始通道索引列表以获得修正通道索引列表的过程中,考虑目标卷积层的各个滤波器的相对重要性。如图9所示,在该实施例中,上述的步骤S720-根据所述依赖性修正所述初始通道索引列表以获得修正通道索引列表包括:S910、从所述初始通道索引列表中确定必要输出通道索引,所述必要输出通道索引表征所述各个目标卷积层的各个初始输出通道索引中索引相同的初始输出通道索引;S920、根据输出通道索引对应的滤波器的重要性对所述目标卷积层的各输出通道对应的输出通道索引中除所述必要输出通道索引之外的输出通道索引进行排序,以获得第一重要性排序输出通道索引;S930、根据针对所述目标卷积层的通道稀疏度从各个目标卷积层的第一重要性排序输出通道索引中依据所述排序确定相同输出通道索引作为附加输出通道索引;以及S940、将所述必要输出通道索引和所述附加输出通道索引组合为所述修正输出通道索引。与图8所示的实施例类似,该实施例可适用于上述的张量加法节点的各个输入路径上由张量加法节点执行加法运算的各个卷积层,并可满足目标卷积层的通道稀疏度的要求。但是,该实施例考虑了目标卷积层的不同滤波器的相对重要性,优先将重要性更高的滤波器对应的输出通道的索引作为附加输出通道索引,即,使得各个目标卷积层的重要性较高的滤波器予以优先保留。这对于提升压缩处理后的神经网络模型的性能是有利的。
在一些情形中,通道稀疏度可能不是压缩神经网络模型优先考虑的因素,而需要更多考虑压缩后的神经网络模型的性能表现。因此,在一些实施例中,上述的步骤S720-根据所述依赖性修正所述初始通道索引列表以获得修正通道索引列表包括:根据各个目标卷积层的各个初始通道索引列表获得索引不同的初始输出通道索引;将所述索引不同的初始输出通道索引合并至每个目标卷积层的初始输出通道索引,以获得所述修正输出通道索引,并使得各个目标卷积层的修正输出通道索引所包括的输出通道的索引相同。例如,假设针对3个目标卷积层初始输出通道索引分别为(1,3,5)、(1,2,4)和(1,4,5),所获得的索引不同的初始输出通道索引即为(2,3,4,5),这样,将所述索引不同的初始输出通道索引合并至每个目标卷积层的初始输出通道索引而获得的修正输出通道索引均为(1,2,3,4,5)。也就是说,在该实施例中,只对根据初始掩码矩阵从各个目标卷积层均予以去除的滤波器对应的输出通道索引才不保留在修正输出通道索引中,而将根据初始掩码矩阵仅从一部分目标卷积层中予以去除的滤波器对应的输出通道索引恢复至修正输出通道索引。
图10示出了根据依赖性修正初始通道索引列表的另一示例,在该示例中,依赖性指示所述滤波器通道依赖性。如图10所示,根据依赖性修正所述初始通道索引列表包括:S1010、确定各个目标卷积层的交并比分值,所述交并比分值表征每个目标卷积层的初始输出通道索引和所述各个目标卷积层中其他目标卷积层的初始通道索引两两之间的交并比的平均值;S1020、根据目标卷积层的各个滤波器的重要性对所述目标卷积层的各输出通道对应的输出通道索引进行排序,以获得第二重要性排序输出通道索引;S1030、响应于所述交并比分值大于第一阈值,根据针对所述目标卷积层的通道稀疏度从所述第二重要性排序输出通道索引依据所述排序截取索引相同的输出通道索引作为所述修正输出通道索引;S1040、响应于所述交并比分值不大于所述第一阈值,从所述第二重要性排序输出通道索引依据所述排序截取索引相同的输出通道索引作为所述修正输出通道索引,且修正输出通道索引包含的输出通道索引的数目大于根据所述通道稀疏度从所述第二重要性排序输出通道索引截取的输出通道索引的数目。例如,对于k个目标卷积层中的任一目标卷积层,可以针对该任一目标卷积层和另外的(k-1)个目标卷积层中的每个目标卷积层分别计算初始输出通道索引的交并比,从而获得(k-1)个交并比,然后,获取上述(k-1)个交并比的平均值作为k个目标卷积层的交并比分值。在步骤S1020中,根据输出通道索引对应的滤波器的重要性对所述目标卷积层的各输出通道对应的输出通道索引进行排序,即,对目标卷积层原本的全部输出通道根据重要性进行排序,由此获得第二重要性排序输出通道索引。对上述的交并比分值大于第一阈值的情况下,这意味着根据初始掩码矩阵而针对各个目标卷积层保留的输出通道的索引之间的差异程度较小,此时,可以依据通道稀疏度从第二重要性排序输出通道索引依据重要性排序截取相应的输出通道索引作为所述修正输出通道索引,因此,可以较好地平衡通道稀疏度和滤波器重要性两方面对压缩后的模型的影响。在上述的并比分值不大于第一阈值的情况下,这意味着根据初始掩码矩阵而针对各个目标卷积层保留的输出通道的索引之间的差异程度较大,此时依然从上述的第二重要性排序输出通道索引依据上述重要性排序截取索引相同的输出通道索引作为所述修正输出通道索引,但是,需要使得修正输出通道索引包含的输出通道索引的数目大于仅根据通道稀疏度从所述第二重要性排序输出通道索引截取的输出通道索引的数目。例如,上述的第一阈值可以为0.5,在上述的交并比分值为0.8的情况下,可以依据通道稀疏度从第二重要性排序输出通道索引依据重要性排序截取相应的输出通道索引作为修正输出通道索引,修正输出通道索引包括的输出通道索引的数目例如为5。而在上述的并比分值为0.3的情况下,此时依然从上述的第二重要性排序输出通道索引依据上述重要性排序截取索引相同的输出通道索引作为所述修正输出通道索引,但是,修正输出通道索引包含的输出通道索引的数目例如为8。也就是说,在根据初始掩码矩阵而针对各个目标卷积层保留的输出通道的索引之间的差异程度较大的情况下,可以适当地减少各个目标卷积层被剪裁的滤波器的数目,让各个目标卷积层有更多的输出通道被保留,提升压缩后的神经网络模型的性能。
图11示出了根据依赖性修正初始通道索引列表的又一示例,在该示例中,依赖性指示所述滤波器维度依赖性。如图11所示,根据依赖性修正所述初始通道索引列表包括:S1110、确定各个目标卷积层的通道均衡性分值,所述通道均衡性分值表征所述各个目标卷积层对应的各个初始输出通道索引包含的输出通道索引的数目之间的差异;S1120、根据目标卷积层的各个滤波器的重要性对所述目标卷积层的各输出通道对应的输出通道索引进行排序,以获得第二重要性排序输出通道索引;S1130、响应于所述通道均衡性分值大于第二阈值,根据针对所述目标卷积层的通道稀疏度从所述第二重要性排序输出通道索引依据所述排序截取相同数量的输出通道索引作为所述修正输出通道索引;S1140、响应于所述通道均衡性分值不大于所述第二阈值,从所述第二重要性排序输出通道索引依据所述排序截取相同数量的输出通道索引作为所述修正输出通道索引,且修正输出通道索引包含的输出通道索引的数目大于根据所述通道稀疏度从所述第二重要性排序输出通道索引截取的输出通道索引的数目。该实施例中提到的通道均衡性分值表征所述各个目标卷积层对应的各个初始输出通道索引包含的输出通道索引的数目之间的差异程度,通道均衡性分值越大,意味着各个目标卷积层的各个初始输出通道索引包含的输出通道索引的数目之间的差异程度越小,或者说,各个目标卷积层的各个初始输出通道索引包含的输出通道索引的数目相对均衡,反之,则表明各个目标卷积层的各个初始输出通道索引包含的输出通道索引的数目方面的差异较大。与图10所示的实施例类似,可以根据目标卷积层的各个滤波器的重要性对所述目标卷积层的全部输出通道对应的输出通道索引进行排序,以获得第二重要性排序输出通道索引。在上述通道均衡性分值大于第二阈值的情况下,根据针对所述目标卷积层的通道稀疏度从所述第二重要性排序输出通道索引依据所述排序截取相同数量的输出通道索引作为所述修正输出通道索引。在通道均衡性分值不大于所述第二阈值的情况下,从第二重要性排序输出通道索引依据所述排序截取相同数量的输出通道索引作为所述修正输出通道索引,且修正输出通道索引包含的输出通道索引的数目大于根据所述通道稀疏度从所述第二重要性排序输出通道索引截取的输出通道索引的数目。换言之,当具备滤波器维度依赖性的各个卷积层对应的初始输出通道索引包含的输出通道索引的数目相差较大时,可以针对各个卷积层适当减少要裁剪的滤波器(输出通道)的数目,使更多的输出通道被保留,提升压缩后的神经网络模型的性能。
在获得了针对各个目标卷积层的修正通道索引列表的情况下,可以基于修正通道索引列表对所述多个目标卷积层剪裁对应的滤波器。不同于常规的滤波器剪枝方法,仅将被剪裁的滤波器的参数置零,根据本申请的一些实施例,基于修正通道索引列表针对输出通道索引发生变换的卷积层重新构建新的卷积层,并用新构建的卷积层替换上述的输出通道索引发生变换的卷积层,由此实现对卷积层的实质性滤波器剪枝。因此,前述的利用所述修正通道索引列表对所述多个目标卷积层进行滤波器剪枝以压缩所述神经网络模型这一步骤可包括以下步骤:根据所述修正通道索引列表从所述多个卷积层中确定其输出通道索引发生变化的卷积层作为标的卷积层;根据所述修正通道索引列表中针对所述标的卷积层的修正输出通道索引以及与修正输出通道索引对应的输出通道的参数创建更新卷积层;以及用所述更新卷积层替代所述多个卷积层中的标的卷积层,从而获得经压缩的神经网络模型。例如,神经网络模型中的某一标的卷积层最初的张量为128*64*3*3,根据修正通道索引列表对该卷积层进行滤波器剪枝,剪裁后的卷积层的张量变为64*32*3*3,即,剪裁后的卷积层的输入通道和输出通道的数目均减少了50%。可以根据该卷积层中保留下的滤波器的参数创建张量为64*32*3*3的更新卷积层,在神经网络模型中用该更新卷积层替代上述的标的卷积层,从而获得压缩后的神经网络模型。当然,在必要的情况下,还需要根据标的卷积层的替换对神经网络模型中的其它层结构做出相应的修正,这不是本申请的重点,在此不再赘述。
根据本申请的一些实施例,上述的神经网络模型为残差网络模型。图12图示了根据本申请实施例提出的压缩神经网络模型的方法所涉及的主要过程。如图12所示,根据神经网络模型中各个滤波器的重要性和针对各个卷积层的通道稀疏度生成初始掩码矩阵,并将初始掩码矩阵添加至神经网络模型。同时从神经网络模型中确定目标卷积层,具体地,可以先从神经网络模型对应的静态图中搜索特定的运算节点,例如,张量分割节点、张量加法节点、分组卷积节点等,然后基于这些特定的运算节点从神经网络模型的各卷积层中确定目标卷积层。在此基础上,可以根据目标卷积层之间的滤波器通道依赖性和滤波器维度依赖性修正目标卷积层的初始通道索引列表以获得修正通道索引列表。之后,可以根据修正通道索引列表确定目标卷积层中应当被剪裁或保留的滤波器或输出通道,并获得输出通道发生变化的标的卷积层。由此,可以根据标的卷积层中应保留的滤波器的参数构建更新卷积层,以该更新卷积层替换标的卷积层,实现对目标卷积层的实质性滤波器剪裁。
本申请实施例提出的压缩神经网络模型的方法可以应用于经训练的模型,也可以应用于未训练模型。当压缩神经网络模型的方法应用于未训练模型时,可以在对未训练模型压缩后进行模型训练的步骤,此时,压缩神经网络模型的方法可以视为模型训练过程中的一个前期环节。如图13所示,为了获得期望的网络模型,在载入神经网络模型后,先应用本申请实施例提出的压缩神经网络模型的方法对模型进行压缩,获得压缩后的神经网络模型。然后,利用训练样本对压缩后的神经网络模型进行训练,从而获得最终的神经网络模型。
下面的表格1示出了应用本申请实施例提出的压缩神经网络模型的方法应用于残差网络Res2Net、ResNext以及ResNet的实验结果。该实验是基于对压缩后的残差网络进行训练获得的最终残差网络模型进行的。表格1中的FLOPs表示模型由于压缩而减少的浮点运算量,“Top1”表示的最终的模型输出的排名第一的标签对应于真实标签的概率,“Top5”表示的最终的模型输出的排名前五的五个标签对应于真实标签的概率,“Top1↓”和“Top5↓”列所示的数据表示由于对模型进行压缩而导致的上述的两个指标“Top1”和“Top5”的下降程度。
表1
从上述的表1可以看出,应用本申请实施例提出的压缩神经网络模型的方法对残差网络进行压缩,导致了指标“Top1”和“Top5”轻微程度的降低,但是大幅度地减少了模型推理而需要的浮点运算量。
本申请的另一实施例提供了一种压缩神经网络模型的装置,如图14所示,该装置1400包括:初始掩码矩阵生成模块1400a,其被配置成至少根据针对所述多个卷积层中的各个卷积层的通道稀疏度生成初始掩码矩阵,所述通道稀疏度表征从所述多个卷积层中的每个卷积层预期剩余的滤波器的数量;目标卷积层确定模块1400b,其被配置成从所述多个卷积层中确定彼此存在依赖性的多个目标卷积层,所述依赖性包括滤波器通道依赖性和滤波器维度依赖性中的至少一个,所述滤波器通道依赖性指示所述多个目标卷积层中各个目标卷积层需要保留相同索引的滤波器,所述滤波器维度依赖性指示所述各个目标卷积层需要保留相同数量的滤波器;以及滤波器剪枝模块1400c,其被配置成根据所述依赖性和所述初始掩码矩阵对所述多个目标卷积层进行滤波器剪枝以压缩所述神经网络模型。
本申请的另外的实施例提供了一种计算设备,该计算设备包括:存储器,其被配置成存储计算机可执行指令;处理器,其被配置成当所述计算机可执行指令被处理器执行时执行如前述任一实施例所述的方法中的步骤。
特别地,上文参考流程图描述的方法中的方法可以被实现为计算机程序。例如,本申请的实施例提供一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行上述实施例所述的压缩神经网络模型的方法中的至少一个步骤的程序代码。
本申请的另一实施例提供了一种或多种计算机可读存储介质,其上存储有计算机可读指令,该计算机可读指令在被执行时实现根据本申请一些实施例的压缩神经网络模型的方法。压缩神经网络模型的方法的各个步骤可以通过程序设计被转化为计算机可读指令,从而存储在计算机可读存储介质中。当这样的计算机可读存储介质被计算设备或计算机读取或访问时,其中的计算机可读指令被计算设备或计算机上的处理器执行以实现压缩神经网络模型的方法。
图15图示了示例系统,其包括代表可以实现本文各实施例描述的技术方案的一个或多个系统和/或设备中的示例计算设备1510。计算设备1510可以是例如服务提供商的服务器、与服务器相关联的设备、片上系统、和/或任何其它合适的计算设备或计算系统。上面参照图12描述的压缩神经网络模型的装置1400可以采取计算设备1510的形式。替换地,伪造多媒体检测模型的训练装置1200可以以应用1516的形式被实现为计算机程序。
如图15图示的示例计算设备1510包括彼此通信耦合的处理系统1511、一个或多个计算机可读介质1512以及一个或多个I/O接口1513。尽管未示出,但是计算设备1510还可以包括系统总线或其他数据和命令传送系统,其将各种组件彼此耦合。系统总线可以包括不同总线结构的任何一个或组合,所述总线结构诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线架构中的任何一种的处理器或局部总线。
处理系统1511代表使用硬件执行一个或多个操作的功能。因此,处理系统1511被图示为包括可被配置为处理器、功能块等的硬件元件1514。这可以包括在硬件中实现为专用集成电路或使用一个或多个半导体形成的其它逻辑器件。硬件元件1514不受其形成的材料或其中采用的处理机构的限制。例如,处理器可以由(多个)半导体和/或晶体管(例如,电子集成电路(IC))组成。在这样的上下文中,处理器可执行指令可以是电子可执行指令。
计算机可读介质1512被图示为包括存储器/存储装置1515。存储器/存储装置1515表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储装置1515可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。存储器/存储装置1515可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等)。计算机可读介质1512可以以下面进一步描述的各种其他方式进行配置。一个或多个I/O接口1513代表允许用户使用各种输入设备向计算设备1510输入命令和信息并且可选地还允许使用各种输出设备将信息呈现给用户和/或其他组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,被配置为检测物理触摸的容性或其他传感器)、相机(例如,可以采用可见或不可见的波长(诸如红外频率)将不涉及触摸的运动检测为手势)等等。输出设备的示例包括显示设备(例如,显示器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备1510可以以下面进一步描述的各种方式进行配置以支持用户交互。
计算设备1510还包括应用1516。应用1516可以例如是参照图12描述的伪造多媒体检测模型的训练装置1200的软件实例,并且与计算设备1510中的其他元件相组合地实现本文描述的技术。
本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。一般地,这些模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、组件、数据结构等。本文所使用的术语“模块”,“功能”和“组件”一般表示软件、固件、硬件或其组合。本文描述的技术的特征是与平台无关的,意味着这些技术可以在具有各种处理器的各种计算平台上实现。
所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或者跨某种形式的计算机可读介质传输。计算机可读介质可以包括可由计算设备1510访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
与单纯的信号传输、载波或信号本身相反,“计算机可读存储介质”是指能够持久存储信息的介质和/或设备,和/或有形的存储装置。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括诸如易失性和非易失性、可移动和不可移动介质和/或以适用于存储信息(诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据)的方法或技术实现的存储设备之类的硬件。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字通用盘(DVD)或其他光学存储装置、硬盘、盒式磁带、磁带,磁盘存储装置或其他磁存储设备,或其他存储设备、有形介质或适于存储期望信息并可以由计算机访问的制品。
“计算机可读信号介质”是指被配置为诸如经由网络将指令发送到计算设备1510的硬件的信号承载介质。信号介质典型地可以将计算机可读指令、数据结构、程序模块或其他数据体现在诸如载波、数据信号或其它传输机制的调制数据信号中。信号介质还包括任何信息传递介质。术语“调制数据信号”是指这样的信号,该信号的特征中的一个或多个被设置或改变,从而将信息编码到该信号中。作为示例而非限制,通信介质包括诸如有线网络或直接连线的有线介质以及诸如声、RF、红外和其它无线介质的无线介质。
如前所述,硬件元件1514和计算机可读介质1512代表以硬件形式实现的指令、模块、可编程器件逻辑和/或固定器件逻辑,其在一些实施例中可以用于实现本文描述的技术的至少一些方面。硬件元件可以包括集成电路或片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅中的其它实现或其他硬件设备的组件。在这种上下文中,硬件元件可以作为执行由硬件元件所体现的指令、模块和/或逻辑所定义的程序任务的处理设备,以及用于存储用于执行的指令的硬件设备,例如,先前描述的计算机可读存储介质。
前述的组合也可以用于实现本文所述的各种技术和模块。因此,可以将软件、硬件或程序模块和其它程序模块实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件1514体现的一个或多个指令和/或逻辑。计算设备1510可以被配置为实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,例如通过使用处理系统的计算机可读存储介质和/或硬件元件1514,可以至少部分地以硬件来实现将模块实现为可由计算设备1510作为软件执行的模块。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备1510和/或处理系统1511)可执行/可操作以实现本文所述的技术、模块和示例。
各种实施方式中,计算设备1510可以采用各种不同的配置。例如,计算设备1510可以被实现为包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等的计算机类设备。计算设备1510还可以被实现为包括诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等移动设备的移动装置类设备。计算设备1510还可以实现为电视类设备,其包括具有或连接到休闲观看环境中的一般地较大屏幕的设备。这些设备包括电视、机顶盒、游戏机等。
本文描述的技术可以由计算设备1510的这些各种配置来支持,并且不限于本文所描述的技术的具体示例。功能还可以通过使用分布式系统、诸如通过如下所述的平台1522而在“云”1520上全部或部分地实现。云1520包括和/或代表用于资源1524的平台1522。平台1522抽象云1520的硬件(例如,服务器)和软件资源的底层功能。资源1524可以包括在远离计算设备1510的服务器上执行计算机处理时可以使用的其它应用和/或数据。资源1524还可以包括通过因特网和/或通过诸如蜂窝或Wi-Fi网络的订户网络提供的服务。
平台1522可以抽象资源和功能以将计算设备1510与其他计算设备连接。平台1522还可以用于抽象资源的分级以提供遇到的对于经由平台1522实现的资源1524的需求的相应水平的分级。因此,在互连设备实施例中,本文描述的功能的实现可以分布在整个系统1500内。例如,功能可以部分地在计算设备1510上以及通过抽象云1520的功能的平台1522来实现。
应当理解,为清楚起见,参考不同的功能单元对本申请的实施例进行了描述。然而,将明显的是,在不偏离本申请的情况下,每个功能单元的功能性可以被实施在单个单元中、实施在多个单元中或作为其它功能单元的一部分被实施。例如,被说明成由单个单元执行的功能性可以由多个不同的单元来执行。因此,对特定功能单元的参考仅被视为对用于提供所描述的功能性的适当单元的参考,而不是表明严格的逻辑或物理结构或组织。因此,本申请可以被实施在单个单元中,或者可以在物理上和功能上被分布在不同的单元和电路之间。
将理解的是,尽管第一、第二、第三等术语在本文中可以用来描述各种设备、元件、部件或部分,但是这些设备、元件、部件或部分不应当由这些术语限制。这些术语仅用来将一个设备、元件、部件或部分与另一个设备、元件、部件或部分相区分。
尽管已经结合一些实施例描述了本申请,但是其不旨在被限于在本文中所阐述的特定形式。相反,本申请的范围仅由所附权利要求来限制。附加地,尽管单独的特征可以被包括在不同的权利要求中,但是这些可以可能地被有利地组合,并且包括在不同权利要求中不暗示特征的组合不是可行的和/或有利的。特征在权利要求中的次序不暗示特征必须以其工作的任何特定次序。此外,在权利要求中,词“包括”不排除其它元件,并且术语“一”或“一个”不排除多个。
Claims (14)
1.一种压缩神经网络模型的方法,所述神经网络模型包括多个卷积层,每个卷积层包括至少一个滤波器,其特征在于,所述方法包括:
至少根据针对所述多个卷积层中的各个卷积层的通道稀疏度生成初始掩码矩阵,所述通道稀疏度表征从所述多个卷积层中的每个卷积层预期剩余的滤波器的数量;
从所述多个卷积层中确定彼此存在依赖性的多个目标卷积层,所述依赖性包括滤波器通道依赖性和滤波器维度依赖性中的至少一个,所述滤波器通道依赖性指示所述多个目标卷积层中各个目标卷积层需要保留相同索引的滤波器,所述滤波器维度依赖性指示所述各个目标卷积层需要保留相同数量的滤波器;以及
根据所述依赖性和所述初始掩码矩阵对所述多个目标卷积层进行滤波器剪枝以压缩所述神经网络模型。
2.根据权利要求1所述的方法,其特征在于,所述从所述多个卷积层中确定彼此存在依赖性的多个目标卷积层包括:
根据所述神经网络模型的前向传播过程构建与所述神经网络模型对应的静态图,所述静态图包括多个运算节点;
从所述多个运算节点中确定目标运算节点,所述目标运算节点包括张量加法节点、张量分割节点和分组卷积节点中的至少一个;以及
将位于所述目标运算节点的各个输入路径上且卷积结果将由所述目标运算节点执行运算操作的各个卷积层、以及位于所述目标运算节点的各个输出路径上对输出路径上的数据进行运算操作的卷积层确定为所述目标卷积层。
3.根据权利要求1所述的方法,其特征在于,根据所述依赖性和所述初始掩码矩对所述多个目标卷积层进行滤波器剪枝以压缩所述神经网络模型包括:
根据所述初始掩码矩阵获得针对每个目标卷积层的初始通道索引列表,所述初始通道索引列表包括初始输出通道索引,所述初始输出通道索引用于标记所述目标卷积层的各个输出通道中依据所述初始掩码矩阵确定被保留的输出通道;根据所述依赖性修正所述初始通道索引列表以获得修正通道索引列表,所述修正通道索引列表包括修正输出通道索引,所述修正输出通道索引用于标记所述目标卷积层的各个输出通道中依据所述依赖性和所述初始掩码矩阵确定被保留的输出通道;以及
利用所述修正通道索引列表对所述多个目标卷积层进行滤波器剪枝以压缩所述神经网络模型。
4.根据权利要求3所述的方法,其特征在于,所述依赖性指示所述滤波器通道依赖性,其中根据所述依赖性修正所述初始通道索引列表以获得修正通道索引列表包括:
从所述初始通道索引列表中确定必要输出通道索引,所述必要输出通道索引表征所述各个目标卷积层的各个初始输出通道索引中索引相同的初始输出通道索引;
根据针对所述目标卷积层的通道稀疏度确定额外输出通道索引,所述额外输出通道索引包括所述多个目标卷积层的各个输出通道对应的输出通道索引中除所述必要输出通道索引之外的相同输出通道索引中的至少一部分;以及
将所述必要输出通道索引和所述额外输出通道索引组合为所述修正输出通道索引。
5.根据权利要求3所述的方法,其特征在于,所述依赖性指示所述滤波器维度依赖性,其中根据所述依赖性修正所述初始通道索引列表以获得修正通道索引列表包括:
根据针对所述目标卷积层的通道稀疏度调节所述目标卷积层的初始通道索引列表中初始输出通道索引的数目,使得所述各个目标卷积层的初始输出通道索引的数目相同,以获得所述修正通道索引列表。
6.根据权利要求3所述的方法,其特征在于,所述依赖性指示所述滤波器通道依赖性,所述根据所述依赖性修正所述初始通道索引列表以获得修正通道索引列表包括:
从所述初始通道索引列表中确定必要输出通道索引,所述必要输出通道索引表征所述各个目标卷积层的各个初始输出通道索引中索引相同的初始输出通道索引;
根据输出通道索引对应的滤波器的重要性对所述目标卷积层的各输出通道对应的输出通道索引中除所述必要输出通道索引之外的输出通道索引进行排序,以获得第一重要性排序输出通道索引;
根据针对所述目标卷积层的通道稀疏度从各个目标卷积层的第一重要性排序输出通道索引中依据所述排序确定相同输出通道索引作为附加输出通道索引;以及
将所述必要输出通道索引和所述附加输出通道索引组合为所述修正输出通道索引。
7.根据权利要求3所述的方法,其特征在于,所述依赖性指示所述滤波器通道依赖性,其中根据所述依赖性修正所述初始通道索引列表以获得修正通道索引列表包括:
根据各个目标卷积层的各个初始通道索引列表获得索引不同的初始输出通道索引;
将所述索引不同的初始输出通道索引合并至每个目标卷积层的初始输出通道索引,以获得所述修正输出通道索引,并使得各个目标卷积层的修正输出通道索引所包括的输出通道的索引相同。
8.根据权利要求3所述的方法,其特征在于,所述依赖性指示所述滤波器通道依赖性,其中根据所述依赖性修正所述初始通道索引列表以获得修正通道索引列表包括:
确定各个目标卷积层的交并比分值,所述交并比分值表征每个目标卷积层的初始输出通道索引和所述各个目标卷积层中其他目标卷积层的初始通道索引两两之间的交并比的平均值;
根据目标卷积层的各个滤波器的重要性对所述目标卷积层的各输出通道对应的输出通道索引进行排序,以获得第二重要性排序输出通道索引;
响应于所述交并比分值大于第一阈值,根据针对所述目标卷积层的通道稀疏度从所述第二重要性排序输出通道索引依据所述排序截取索引相同的输出通道索引作为所述修正输出通道索引;以及
响应于所述交并比分值不大于所述第一阈值,从所述第二重要性排序输出通道索引依据所述排序截取索引相同的输出通道索引作为所述修正输出通道索引,且修正输出通道索引包含的输出通道索引的数目大于根据所述通道稀疏度从所述第二重要性排序输出通道索引截取的输出通道索引的数目。
9.根据权利要求3所述的方法,其特征在于,所述依赖性指示所述滤波器维度依赖性,其中根据所述依赖性修正所述初始通道索引列表以获得修正通道索引列表包括:
确定各个目标卷积层的通道均衡性分值,所述通道均衡性分值表征所述各个目标卷积层对应的各个初始输出通道索引包含的输出通道索引的数目之间的差异;
根据目标卷积层的各个滤波器的重要性对所述目标卷积层的各输出通道对应的输出通道索引进行排序,以获得第二重要性排序输出通道索引;
响应于所述通道均衡性分值大于第二阈值,根据针对所述目标卷积层的通道稀疏度从所述第二重要性排序输出通道索引依据所述排序截取相同数量的输出通道索引作为所述修正输出通道索引;
响应于所述通道均衡性分值不大于所述第二阈值,从所述第二重要性排序输出通道索引依据所述排序截取相同数量的输出通道索引作为所述修正输出通道索引,且修正输出通道索引包含的输出通道索引的数目大于根据所述通道稀疏度从所述第二重要性排序输出通道索引截取的输出通道索引的数目。
10.根据权利要求3所述的方法,其特征在于,利用所述修正通道索引列表对所述多个目标卷积层进行滤波器剪枝以压缩所述神经网络模型包括:
根据所述修正通道索引列表从所述多个卷积层中确定标的卷积层,所述标的卷积层的输出通道索引相对于应用所述初始掩膜矩阵之前该标的卷积层的原始输出通道索引发生变化;
根据所述修正通道索引列表中针对所述标的卷积层的修正输出通道索引以及与修正输出通道索引对应的输出通道的参数创建更新卷积层;以及
用所述更新卷积层替代所述多个卷积层中的标的卷积层,以获得经压缩的神经网络模型。
11.一种压缩神经网络模型的装置,所述神经网络模型包括多个卷积层,每个卷积层包括至少一个滤波器,其特征在于,所述装置包括:
初始掩码矩阵生成模块,其被配置成至少根据针对所述多个卷积层中的各个卷积层的通道稀疏度生成初始掩码矩阵,所述通道稀疏度表征从所述多个卷积层中的每个卷积层预期剩余的滤波器的数量;
目标卷积层确定模块,其被配置成从所述多个卷积层中确定彼此存在依赖性的多个目标卷积层,所述依赖性包括滤波器通道依赖性和滤波器维度依赖性中的至少一个,所述滤波器通道依赖性指示所述多个目标卷积层中各个目标卷积层需要保留相同索引的滤波器,所述滤波器维度依赖性指示所述各个目标卷积层需要保留相同数量的滤波器;以及滤波器剪枝模块,其被配置成根据所述依赖性和所述初始掩码矩阵对所述多个目标卷积层进行滤波器剪枝以压缩所述神经网络模型。
12.一种计算设备,其特征在于,所述计算设备包括:
存储器,其被配置成存储计算机可执行指令;
处理器,其被配置成当所述计算机可执行指令被处理器执行时执行如权利要求1-10中的任一项所述的方法。
13.一种计算机可读存储介质,其存储有计算机可执行指令,其特征在于,当所述计算机可执行指令被执行时,执行如权利要求1-10中的任一项所述的方法。
14.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310125220.6A CN116957041A (zh) | 2023-01-19 | 2023-01-19 | 压缩神经网络模型的方法、装置和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310125220.6A CN116957041A (zh) | 2023-01-19 | 2023-01-19 | 压缩神经网络模型的方法、装置和计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116957041A true CN116957041A (zh) | 2023-10-27 |
Family
ID=88448019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310125220.6A Pending CN116957041A (zh) | 2023-01-19 | 2023-01-19 | 压缩神经网络模型的方法、装置和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116957041A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117497194B (zh) * | 2023-12-28 | 2024-03-01 | 苏州元脑智能科技有限公司 | 一种生物信息处理方法、装置、电子设备和存储介质 |
-
2023
- 2023-01-19 CN CN202310125220.6A patent/CN116957041A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117497194B (zh) * | 2023-12-28 | 2024-03-01 | 苏州元脑智能科技有限公司 | 一种生物信息处理方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Middlehurst et al. | HIVE-COTE 2.0: a new meta ensemble for time series classification | |
KR101472452B1 (ko) | 멀티미디어 데이터 검색 방법, 장치 및 패턴인식 방법 | |
CN110909182B (zh) | 多媒体资源搜索方法、装置、计算机设备及存储介质 | |
US20170344822A1 (en) | Semantic representation of the content of an image | |
WO2023138188A1 (zh) | 特征融合模型训练及样本检索方法、装置和计算机设备 | |
WO2022140900A1 (zh) | 个人知识图谱构建方法、装置及相关设备 | |
CN111782826A (zh) | 知识图谱的信息处理方法、装置、设备及存储介质 | |
EP3766021A1 (en) | Cluster compression for compressing weights in neural networks | |
US10810458B2 (en) | Incremental automatic update of ranked neighbor lists based on k-th nearest neighbors | |
CN112070550A (zh) | 基于搜索平台的关键词确定方法、装置、设备及存储介质 | |
CN116957041A (zh) | 压缩神经网络模型的方法、装置和计算设备 | |
CN113821657A (zh) | 基于人工智能的图像处理模型训练方法及图像处理方法 | |
CN114547257B (zh) | 类案匹配方法、装置、计算机设备及存储介质 | |
US11709798B2 (en) | Hash suppression | |
CN115827864A (zh) | 一种公告自动化分类的处理方法 | |
CN115146103A (zh) | 图像检索方法、装置、计算机设备、存储介质和程序产品 | |
KR102372869B1 (ko) | 인공 신경망을 위한 행렬 연산기 및 행렬 연산 방법 | |
CN110245265B (zh) | 一种对象分类方法、装置、存储介质及计算机设备 | |
CN113821676A (zh) | 视频检索方法、装置、设备及存储介质 | |
Pisani et al. | Contextual Spaces Re‐Ranking: accelerating the Re‐sort Ranked Lists step on heterogeneous systems | |
CN113392124B (zh) | 一种基于结构化语言的数据查询方法及装置 | |
CN116955415B (zh) | 基于设计层级的数据搜索系统 | |
KR102588531B1 (ko) | 학습데이터 처리 장치 및 그 방법 | |
CN107451662A (zh) | 优化样本向量的方法及装置、计算机设备 | |
Lin et al. | Dynamic Network Pruning Based on Local Channel-Wise Relevance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |