CN114037063A - 网络模型处理方法、装置、设备、存储介质 - Google Patents
网络模型处理方法、装置、设备、存储介质 Download PDFInfo
- Publication number
- CN114037063A CN114037063A CN202111347772.9A CN202111347772A CN114037063A CN 114037063 A CN114037063 A CN 114037063A CN 202111347772 A CN202111347772 A CN 202111347772A CN 114037063 A CN114037063 A CN 114037063A
- Authority
- CN
- China
- Prior art keywords
- layer
- network model
- network
- transformation
- rule
- 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
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
- 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/048—Activation functions
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例公开了一种网络模型处理方法、装置、设备、存储介质,其中,所述方法包括:获取待处理的网络模型和所述网络模型的部署条件;基于所述部署条件,从设定的变换规则库中,确定对所述网络模型进行处理的目标变换规则;基于所述目标变换规则,对所述网络模型进行至少一次子结构的等价变换处理,得到变换后的目标网络模型。
Description
技术领域
本申请涉及但不限于人工智能领域,尤其涉及一种网络模型处理方法、装置、设备、存储介质。
背景技术
深度学习技术的应用为人们的生活提供了极大的便利,如拍照识物、刷脸支付、摄影增强等,无一不依赖相应的深度学习技术。随着深度学习应用领域的扩大,产业界也越来越多的使用边缘异构设备来提供人工智能能力,以降低成本、提高效率。然而,相关技术中的对同一网络模型在多种硬件平台上部署的过程中,存在网络模型跨硬件平台迁移困难,且同一模型在不同平台上的实际性能相比理论算力差异较大的问题。
发明内容
有鉴于此,本申请实施例提供一种网络模型处理方法、装置、设备、存储介质。
本申请实施例的技术方案是这样实现的:
一方面,本申请实施例提供一种网络模型处理方法,所述方法包括:
获取待处理的网络模型和所述网络模型的部署条件;
基于所述部署条件,从设定的变换规则库中,确定对所述网络模型进行处理的目标变换规则;
基于所述目标变换规则,对所述网络模型进行至少一次子结构的等价变换处理,得到变换后的目标网络模型。
另一方面,本申请实施例提供一种网络模型处理装置,所述装置包括:
获取模块,用于获取待处理的网络模型和所述网络模型的部署条件;
第一确定模块,用于基于所述部署条件,从设定的变换规则库中,确定对所述网络模型进行处理的目标变换规则;
变换模块,用于基于所述目标变换规则,对所述网络模型进行至少一次子结构的等价变换处理,得到变换后的目标网络模型。
再一方面,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
又一方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。
又一方面,本申请实施例提供一种计算机程序,包括计算机可读代码,当所述计算机可读代码在计算机设备中运行时,所述展示设备中的处理器执行用于实现上述方法中的部分或全部步骤。
又一方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。
本申请实施例中,通过获取待处理的网络模型和所述网络模型的部署条件;基于所述部署条件,从设定的变换规则库中,确定对所述网络模型进行处理的目标变换规则;基于所述目标变换规则,对所述网络模型进行至少一次子结构的等价变换处理,得到变换后的目标网络模型。这样,可以根据不同的部署条件,对网络模型采用合适的变换规则进行子结构的等价变换处理,从而可以为同一网络模型在不同硬件平台上进行部署提供扩展支持,以便于网络模型跨硬件平台迁移,并能较好地对齐同一网络模型在不同硬件平台上的计算能力。
附图说明
图1为本申请实施例提供的一种网络模型处理方法的实现流程示意图;
图2为本申请实施例提供的一种网络模型处理方法的实现流程示意图;
图3为本申请实施例提供的一种网络模型处理方法的实现流程示意图;
图4为本申请实施例提供的一种网络模型处理方法的实现流程示意图;
图5为本申请实施例提供的一种网络模型处理方法的实现流程示意图;
图6A为本申请实施例提供的一种网络模型处理方法的实现流程示意图;
图6B为本申请实施例提供的一种对网络模型的网络结构进行优化的实现流程示意图;
图6C为本申请实施例提供的一种线性计算层合并的实现示意图;
图6D为本申请实施例提供的一种激活层内联优化的实现示意图;
图6E为本申请实施例提供的一种数据操作重排的实现示意图;
图7为本申请实施例提供的一种网络模型处理装置的组成结构示意图;
图8为本申请实施例提供的一种计算机设备的硬件实体示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图和实施例对本申请的技术方案进一步详细阐述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。如果申请文件中出现“第一/第二”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请的目的,不是旨在限制本申请。
在相关技术中,深度学习网络模型的部署从运行在通用的中央处理器(CentralProcessing Unit,CPU)以及通用图形处理器(General-Purpose computing on GraphicsProcessing Units,GPGPU)上,逐渐扩展为运行到移动端图形处理器(GraphicsProcessing Unit,GPU)、数字信号处理器(Digital Signal Processor,DSP)、神经网络处理器(Neural-network Processing Unit,NPU)乃至各式各样的AI处理器中。在针对多硬件平台做部署的过程中,一方面,不同硬件厂商设计的硬件及提供的开发软件差异极大,同一个网络模型很难在不同的硬件上都顺利地部署成功;另一方面,硬件厂商软件层面所做的优化措施通常也比较有限,不能很好地覆盖算法所需的必要支持,导致同一模型在不同平台上的实际性能相比理论算力差异较大。此外,在硬件设计的过程中,通常的性能衡量指标为能耗比,其中性能部分可以综合理论性能指标和实际业务流性能指标来评估。为了尽可能提高能耗比,硬件厂商通常会做深度的定制化,降低硬件的灵活性,提高硬件在专用领域的计算效率,这也间接导致了跨硬件平台进行算法迁移比较困难的问题。
本申请实施例提供一种网络模型处理方法,该方法可以由计算机设备的处理器执行。其中,计算机设备指的可以是服务器、笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、移动设备(例如移动电话、便携式视频播放器、个人数字助理、专用消息设备、便携式游戏设备)等具备数据处理能力的设备。图1为本申请实施例提供的一种网络模型处理方法的实现流程示意图,如图1所示,该方法包括如下步骤S101至步骤S103:
步骤S101,获取待处理的网络模型和所述网络模型的部署条件。
这里,待处理的网络模型可以是任意合适的待进行网络结构变换处理的深度学习网络模型,可以包括但不限于卷积神经网络模型、深度信任网络模型、堆栈自编码网络模型等中的一种或多种。在实施时,可以直接获取原始的网络模型的数据,也可以基于网络模型所采用的模型框架,例如快速特征嵌入的卷积结构(Convolutional Architecture forFast Feature Embedding,Caffe)模型框架等,对待处理的网络模型进行解析,得到表征该网络模型的内部数据结构,内部数据的结构可以是预先根据实际情况确定的。
网络模型的部署条件为部署该网络模型需要满足的条件,可以包括但不限于待部署该网络模型的硬件平台支持运行的网络结构、不支持运行的网络结构、计算能力等中的一种或多种。在实施时,网络模型的部署条件可以是根据实际待部署该网络模型的硬件平台的硬件配置参数确定的,也可以是用户预先根据实际采用的硬件平台确定的,这里并不限定。
步骤S102,基于所述部署条件,从设定的变换规则库中,确定对所述网络模型进行处理的目标变换规则。
这里,设定的变换规则库可以包括至少一种预设的用于进行网络结构变换的变换规则,每一种变换规则可以表征对一种设定的网络结构进行设定的变换处理。在实施时,变换规则库中包括的变换规则可以根据实际应用场景确定,这里并不限定。例如,变换规则库中可以包括但不限于将相邻的卷积层与批量归一化层合并,将相邻的全连接层与归一化处理层合并,将相邻的卷积层与缩放平移层合并,将相邻的网络输入层与预处理均值化层合并,将激活层的计算过程移至该激活层的前驱层中,将相邻的数据分割层与数据连接层合并,将批量归一化层拆分为归一化处理层和缩放平移层,将参数校正线性单元层拆分为修正线性单元和按元素操作层等。
基于部署条件,可以确定对待处理的网络模型进行处理的需求,进而可以从设定的变换规则库中确定对该网络模型进行处理的目标变换规则。在实施时,可以基于预设的部署条件与变换规则之间的对应关系,将变换规则库中与该部署条件对应的至少一种变换规则确定为目标变换规则;也可以根据部署条件对应的模型处理需求,将变换规则库中与该模型处理需求匹配的至少一种变换规则确定为目标变换规则。
步骤S103,基于所述目标变换规则,对所述网络模型进行至少一次子结构的等价变换处理,得到变换后的目标网络模型。
这里,目标变换规则可以表征对目标网络结构进行目标变换处理。基于目标变换规则,可以对网络模型中的目标网络结构进行匹配,得到至少一个待变换的子结构,并对该网络模型中的每一子结构进行相应的目标变换处理,得到变换后的目标网络模型。例如,在目标变换规则为将相邻的卷积层与批量归一化层合并的情况下,可以对网络模型中相邻的卷积层与批量归一化层进行匹配,得到至少一组相邻的卷积层与批量归一化层,并对该网络模型中的每一组相邻的卷积层与批量归一化层进行合并处理,得到变换后的目标网络模型。又如,在目标变换规则为将激活层的计算过程移至该激活层的前驱层中的情况下,可以对网络模型中的激活层进行匹配,得到至少一组激活层和该激活层的前驱层,并对该网络模型中的每一组激活层的计算过程移至该激活层的前驱层中,得到变换后的目标网络模型。
在一些实施例中,可以基于目标变换规则,对网络模型进行至少一次子结构的等价变换处理,直至变换后的目标网络模型中不存在与目标变换规则匹配的待变换的子结构。
本申请实施例中,通过获取待处理的网络模型和所述网络模型的部署条件;基于所述部署条件,从设定的变换规则库中,确定对所述网络模型进行处理的目标变换规则;基于所述目标变换规则,对所述网络模型进行至少一次子结构的等价变换处理,得到变换后的目标网络模型。这样,可以根据不同的部署条件,对网络模型采用合适的变换规则进行子结构的等价变换处理,从而可以为同一网络模型在不同硬件平台上进行部署提供扩展支持,以便于网络模型跨硬件平台迁移,并能较好地对齐同一网络模型在不同硬件平台上的计算能力。
在一些实施例中,所述变换规则库中每一变换规则的类型包括以下之一:线性计算层合并规则,激活层内联优化规则,数据操作层合并规则,批量归一化拆分规则,参数校正线性单元拆分规则,数据操作重排规则。
这里,线性计算层合并规则是指表征将相邻的多个线性计算层合并为一个线性计算层的规则。线性计算层是指进行线性计算的网络层,可以包括但不限于卷积层、全连接层、归一化处理层、缩放平移层、批量归一化层等中的一种或多种。由于多次线性计算合并后还是线性计算,因此,可以将多个线性计算层合并为一个线性计算层。例如,第一线性计算层和第二线性计算层分别进行如下公式1-1和公式1-2所示的线性计算:
y=a*x+b (1-1);
z=c*y+d (1-2);
其中,a、b为第一线性计算层的计算参数,x、y分别为第一线性计算层的输入和输出,c、d为第二线性计算层的计算参数,y、z分别为第一线性计算层的输入和输出。在第一线性计算层的输出为第二线性计算层的输出的情况下,第一线性计算层和第二线性计算层合并后的线性计算如下公式1-3:
z=(c*a)*x+(c*b+d) (1-3);
其中,c*a、c*b+d分别为合并后的第三线性计算层的计算参数。在实施时,可以使用合并后的第三线性计算层替换网络模型中的第一线性计算层和第二线性计算层,达到消除一层线性计算层的目的。
激活层内联优化规则是指表征将激活层的计算过程移至该激活层的前驱层的规则。激活层可以包括但不限于Sigmoid层、修正线性单元(Rectified Linear Unit,ReLU)层等中的一种或多种,激活层的前驱层可以是任意合适的为激活层提供输入的网络层,如输入层、卷积层、全连接层等。由于激活层的计算是逐元素且仅依赖输入数据的,可以将激活层的计算过程移至该激活层的前驱层,从而激活层不用占据额外的存储空间。
数据操作层合并规则是指表征将相邻的多个数据操作层合并为一个数据操作层的规则。数据操作层是指例如数据分割层(Slice)、数据连接层(Concat)等用于对数据进行拆分、组合或连接等非计算操作的网络层。通过将多个数据操作层合并,可以降低数据读写次数,提高读写效率。
批量归一化拆分规则是指表征对批量归一化层进行拆分的规则。例如,可以将批量归一化层拆分为归一化处理层和缩放平移层。
参数校正线性单元拆分规则是指表征对参数校正线性单元(ParametricRectified Linear Unit,PReLU)层进行拆分的规则。例如,可以将参数校正线性单元层拆分为修正线性单元和按元素操作层。
数据操作重排规则是指表征对数据操作层与数据计算层之间的顺序进行重排的规则。数据计算层可以是任意合适的对数据进行逐元素计算或者卷积计算的网络层。通过重新排布数据操作层与数据计算层之间的顺序,可以在更少的数据上进行逐元素计算或者卷积计算,同时可以提高数据计算层中计算的数据的连续性以及计算效率。例如,可以将依次连接的数据计算层、数据分割层和数据连接层中数据计算层与数据分割层和数据连接层之间的顺序进行重排,重排后各网络层之间的顺序可以为数据分割层、数据连接层和数据计算层。又如,可以将依次连接的数据分割层与数据计算层之间的顺序进行重排,重排后各网络层之间的顺序可以为数据连接层、数据分割层。
本申请实施例中,变换规则库中每一变换规则的类型包括以下之一:线性计算层合并规则,激活层内联优化规则,数据操作层合并规则,批量归一化拆分规则,参数校正线性单元拆分规则,数据操作重排规则。这样,变换规则库中可以包括线性计算层合并规则、激活层内联优化规则、数据操作层合并规则、批量归一化拆分规则、参数校正线性单元拆分规则、数据操作重排规则中至少一种类型的变换规则,从而可以进一步提高变换后的目标网络模型跨硬件平台迁移的能力,为网络模型跨硬件平台迁移提供更完整的支持,并能进一步提高网络模型在不同硬件平台上的计算能力。
本申请实施例提供一种网络模型处理方法,该方法可以由计算机设备的处理器执行。如图2所示,该方法包括如下步骤S201至步骤S206:
步骤S201,获取待处理的网络模型和所述网络模型的部署条件。
步骤S202,基于所述部署条件,从设定的变换规则库中,确定对所述网络模型进行处理的目标变换规则。
这里,上述步骤S201至步骤S202分别对应于前述步骤S101至步骤S102,在实施时可以参照前述步骤S101至步骤S102的具体实施方式。
步骤S203,基于所述目标变换规则,确定至少一个待变换的结构类型以及与每一所述结构类型对应的变换操作。
这里,目标变换规则可以表征对目标网络结构进行目标变换处理,其中,目标网络结构即为待变换的结构类型,相应的目标变换处理即为与该结构类型对应的变换操作。在实施时,可以通过对目标变换规则进行解析,得到待变换的结构类型以及与每一所述结构类型对应的变换操作;也可以基于目标变换规则,对预设的目标变换规则与待变换的结构类型以及变换操作之间的对应关系,确定该目标变换规则对应的待变换的结构类型以及与每一所述结构类型对应的变换操作。目标变换规则的数量可以是一个或者多个,每一目标变换规则可以对应一个待变换的结构类型。
步骤S204,基于至少一个所述结构类型,对所述网络模型的网络结构进行匹配。
这里,可以利用每一待变换的结构类型对网络模型的网络结构进行匹配,以确定网络模型的网络结构中与该结构类型匹配的子网络。
步骤S205,在所述网络模型的网络结构中存在与任一所述结构类型匹配的子结构的情况下,基于与所述结构类型对应的变换操作,对所述子结构进行等价变换处理,得到候选网络模型。
这里,对于任一结构类型,可以在网络模型的网络结构中存在与该结构类型匹配的子结构的情况下,通过对匹配的子结构执行与该结构类型对应的变换操作,实现子结构的等价变换处理,得到的变换后的网络模型可以作为候选网络模型。
步骤S206,在所述候选网络模型的网络结构中的每一子结构与每一所述结构类型均不匹配的情况下,将所述候选网络模型确定为目标网络模型。
这里,对于每一结构类型,可以利用该结构类型对候选网络模型的网络结构进行匹配,以确定网络模型的网络结构中的每一子结构与该结构类型是否匹配。在该候选网络模型的网络结构中的每一子结构与每一结构类型均不匹配的情况下,可以将该候选网络模型确定为目标网络模型。
在一些实施例中,所述待变换的结构类型包括第一网络层和依赖所述第一网络层的第二网络层。上述步骤S204可以包括:
步骤S211,对所述网络模型的网络结构中的每一网络层进行遍历,在当前网络层与所述第一网络层匹配,且所述当前网络层的依赖层与所述第二网络层匹配的情况下,将所述当前网络层和所述依赖层组成的结构确定为与所述第一网络层和第二网络层匹配的子结构。
这里,待变换的结构类型中可以包括第一网络层和第二网络层,并且第一网络层与第二网络层之间存在依赖关系。例如,第一网络层的输入可以是第二网络层的输出、第一网络层的输出可以是第二网络层的输入、第一网络层与第二网络层共同完成特定的计算任务等。在实施时,第一网络层和第二网络层的数量可以分别是一个或多个,本申请实施例对此并不限定。
在对网络模型的网络结构中的每一网络层进行遍历的过程中,当前网络层为当前遍历访问的网络层,当前网络层的依赖层为与当前网络层之间存在依赖关系的网络层,可以是网络模型中当前网络层的前一层或多层,也可以是当前网络层的后一层或多层,这里并不限定。在实施时,可以根据待变换的网络结构中第一网络层与第二网络层之间存在依赖关系,确定当前网络层的依赖层。例如,在第一网络层的输入为第二网络层的输出的情况下,可以将当前网络层的前一层确定为当前网络层的依赖层;在第一网络层的输出为第二网络层的输入的情况下,可以将当前网络层的后一层确定为当前网络层的依赖层。
本申请实施例中,基于目标变换规则,确定至少一个待变换的结构类型以及与每一结构类型对应的变换操作;基于至少一个结构类型,对网络模型的网络结构进行匹配;在网络模型的网络结构中存在与任一结构类型匹配的子结构的情况下,基于与该结构类型对应的变换操作,对该子结构进行等价变换处理,得到候选网络模型;在该候选网络模型的网络结构中的每一子结构与每一结构类型均不匹配的情况下,将该候选网络模型确定为目标网络模型。这样,可以简单快速地基于目标变换规则对网络模型进行子结构的等价变换处理,从而可以提高网络模型处理的效率。
本申请实施例提供一种网络模型处理方法,该方法可以由计算机设备的处理器执行。如图3所示,该方法包括如下步骤S301至步骤S308:
步骤S301,获取待处理的网络模型和所述网络模型的部署条件。
步骤S302,基于所述部署条件,从设定的变换规则库中,确定对所述网络模型进行处理的目标变换规则。
步骤S303,基于所述目标变换规则,确定至少一个待变换的结构类型以及与每一所述结构类型对应的变换操作。
步骤S304,基于至少一个所述结构类型,对所述网络模型的网络结构进行匹配。
步骤S305,在所述网络模型的网络结构中存在与任一所述结构类型匹配的子结构的情况下,基于与所述结构类型对应的变换操作,对所述子结构进行等价变换处理,得到候选网络模型。
这里,上述步骤S301至步骤S305分别对应于前述步骤S201至步骤S205,在实施时可以参照前述步骤S201至步骤S205的具体实施方式。
步骤S306,基于至少一个所述结构类型,对所述候选网络模型的网络结构进行匹配。
步骤S307,在所述候选网络模型的网络结构中存在与任一所述结构类型匹配的子结构的情况下,基于与所述结构类型对应的变换操作,对所述候选网络模型的所述子结构进行等价变换处理,得到变换后的候选网络模型。
步骤S308,在所述候选网络模型的网络结构中的每一子结构与每一所述结构类型均不匹配的情况下,将所述候选网络模型确定为目标网络模型。
这里,上述步骤S306至步骤S308分别对应于前述步骤S204至步骤S206,在实施时可以参照前述步骤S204至步骤S206的具体实施方式。
本申请实施例中,可以基于至少一个结构类型,对候选网络模型的网络结构进行匹配,并在候选网络模型的网络结构中存在与任一结构类型匹配的子结构的情况下,基于与该结构类型对应的变换操作,对该子结构进行等价变换处理,得到变换后的候选网络模型。这样,可以在候选网络模型中进一步进行子结构的等价变换处理,从而可以进一步提高变换后的目标网络模型跨硬件平台迁移的能力,并能进一步提高网络模型在不同硬件平台上的计算能力。
本申请实施例提供一种网络模型处理方法,该方法可以由计算机设备的处理器执行。如图4所示,该方法包括如下步骤S401至步骤S406:
步骤S401,获取待处理的网络模型和所述网络模型的部署条件。
步骤S402,基于所述部署条件,从设定的变换规则库中,确定对所述网络模型进行处理的目标变换规则;其中,所述目标变换规则的数量为一个或多个。
这里,上述步骤S401至步骤S402分别对应于前述步骤S101至步骤S102,在实施时可以参照前述步骤S101至步骤S102的具体实施方式。
步骤S403,针对每一所述目标变换规则,基于所述目标变换规则的类型,确定至少一个待变换的结构类型以及与每一所述结构类型对应的变换操作。
这里,每一目标变换规则的类型可以包括但不限于线性计算层合并规则、激活层内联优化规则、数据操作层合并规则、批量归一化拆分规则、参数校正线性单元拆分规则或数据操作重排规则等。基于目标变换规则的类型,可以确定至少一个待变换的结构类型以及与每一结构类型对应的变换操作。
步骤S404,基于至少一个所述结构类型,对所述网络模型的网络结构进行匹配。
步骤S405,在所述网络模型的网络结构中存在与任一所述结构类型匹配的子结构的情况下,基于与所述结构类型对应的变换操作,对所述子结构进行等价变换处理,得到候选网络模型。
步骤S406,在所述候选网络模型的网络结构中的每一子结构与每一所述结构类型均不匹配的情况下,将所述候选网络模型确定为目标网络模型。
这里,上述步骤S404至步骤S406对应于前述步骤S204至步骤S206,在实施时可以参照前述步骤S204至步骤S206的具体实施方式。
本申请实施例中,目标变换规则的数量为一个或多个,针对每一目标变换规则,基于该目标变换规则的类型,确定至少一个待变换的结构类型以及与每一结构类型对应的变换操作。这样,通过根据实际的部署条件确定一个或多个目标变换规则的数量,从而可以进一步提高变换后的目标网络模型跨硬件平台迁移的能力,为网络模型跨硬件平台迁移提供更完整的支持,并能进一步提高网络模型在不同硬件平台上的计算能力。
在一些实施例中,上述步骤S403可以包括:步骤S411,在所述目标变换规则包括线性计算层合并规则的情况下,确定所述至少一个待变换的结构类型包括相邻的第一线性计算层和第二线性计算层,且每一组相邻的第一线性计算层和第二线性计算层对应的变换操作包括将所述第一线性计算层和第二线性计算层合并为第三线性计算层。在一些实施方式中,所述第一线性计算层可以包括以下至少之一:卷积层,归一化处理层,全连接层,网络输入层。所述第二线性计算层可以包括以下至少之一:批量归一化层,归一化处理层,缩放平移层,预处理均值化层。
在一些实施例中,上述步骤S403可以包括:步骤S412,在所述目标变换规则包括激活层内联优化规则的情况下,确定所述至少一个待变换的结构类型包括激活层和所述激活层的前驱层,且每一组激活层和所述激活层的前驱层对应的变换操作包括将所述激活层的计算过程移至所述前驱层中。在一些实施方式中,所述激活层可以包括修正线性单元层。
在一些实施例中,上述步骤S403可以包括:步骤S413,在所述目标变换规则包括数据操作层合并规则的情况下,确定所述至少一个待变换的结构类型包括相邻的第一数据操作层和第二数据操作层,且每一组相邻的第一数据操作层和第二数据操作层对应的变换操作包括将所述第一数据操作层和第二数据操作层合并为第三数据操作层。在一些实施方式中,所述第一数据操作层可以包括以下至少之一:数据分割层,数据连接层,批量归一化层;所述第二数据操作层可以包括以下至少之一:数据分割层,数据连接层,批量归一化层。
在一些实施例中,上述步骤S403可以包括:步骤S421,在所述目标变换规则包括批量归一化拆分规则的情况下,确定所述至少一个待变换的结构类型包括批量归一化层,且每一批量归一化层对应的变换操作包括将所述批量归一化层拆分为归一化处理层和缩放平移层。
在一些实施例中,上述步骤S403可以包括:步骤S422,在所述目标变换规则包括参数校正线性单元拆分规则的情况下,确定所述至少一个待变换的结构类型包括参数校正线性单元层,且每一参数校正线性单元层对应的变换操作包括将所述参数校正线性单元层拆分为修正线性单元和按元素操作层。
在一些实施例中,上述步骤S403可以包括:步骤S423,在所述目标变换规则包括数据操作重排规则的情况下,确定所述至少一个待变换的结构类型包括相邻的第四数据操作层和数据计算层,且每一组相邻的第四数据操作层和数据计算层对应的变换操作包括将所述第四数据操作层和所述数据计算层的顺序进行重排。
在上述实施例中,每一目标变换规则的类型包括以下之一:批量归一化拆分规则,参数校正线性单元拆分规则,数据操作重排规则。这样,可以进一步提高变换后的网络模型跨硬件平台迁移的能力,为网络模型跨硬件平台迁移提供更完整的支持,并能进一步提高网络模型在不同硬件平台上的计算能力。
本申请实施例提供一种网络模型处理方法,该方法可以由计算机设备的处理器执行。如图5所示,该方法包括如下步骤S501至步骤S505:
步骤S501,获取待处理的网络模型和所述网络模型的部署条件。
步骤S502,基于所述部署条件,从设定的变换规则库中,确定对所述网络模型进行处理的目标变换规则。
步骤S503,基于所述目标变换规则,对所述网络模型进行至少一次子结构的等价变换处理,得到变换后的目标网络模型。
这里,上述步骤S501至步骤S503分别对应于前述步骤S101至步骤S103,在实施时可以参照前述步骤S101至步骤S103的具体实施方式。
步骤S504,基于所述变换后的目标网络模型,确定所述目标网络模型的模型文件。
这里,基于变换后的目标网络模型,可以生成用于基于该目标网络模型进行推理的模型文件。在实施时,可以根据目标网络模型实际采用的模型框架,采用合适的方式确定该目标网络模型的模型文件。例如,在目标网络模型为基于Caffe框架的模型的情况下,可以基于变换后的目标网络模型,生成该目标网络模型的caffemode文件。
步骤S505,基于设定的模型文件裁剪规则,对所述模型文件中的无效数据进行删除,得到裁剪后的模型文件。
这里,模型文件裁剪规则可以为表征对目标网络模型的模型文件进行精简的规则。在实施时,本领域技术人员可以根据实际情况设置合适的模型文件裁剪规则。
在一些实施例中,所述模型文件裁剪规则包括以下至少之一:删除模型推理过程中未使用的训练信息;删除网络模型中的冗余节点。这里,删除网络模型中的冗余节点可以例如死码消除(Dead Code Elimination,DCE)。网络模型中的冗余节点可以是网络模型中无用的节点,也可以是网络模型中无实际含义的计算节点,如单输入的Concat、单输入的按元素操作层(Eltwise)等。
本申请实施例中,通过基于设定的模型文件裁剪规则,对模型文件中的无效数据进行删除,得到裁剪后的模型文件。这样,可以对网络模型的模型文件进行精简,从而可以减少模型推理过程中的冗余计算,进而进一步提高网络模型在不同硬件平台上的计算能力。
下面说明本申请实施例提供的网络模型处理方法在实际场景中的应用,以基于Caffe模型框架的卷积神经网络模型的转换及优化场景为例进行说明。
本申请实施例提供一种网络模型处理方法,通过进行网络模型匹配与变换,可以在不依赖硬件支持的情况下对多种算法的网络模型在不同硬件平台之间的迁移进行扩展支持;通过进行层合并和内联,可以显著降低网络模型的运行时间消耗与存储空间消耗,降低硬件使用成本;通过进行操作层合并与替换,能够在部分场景下降低内存操作的耗时,扩展硬件对网络模型的支持能力。
相关技术中对网络模型的网络结构的优化大多集成在硬件平台的编译器内部,外部很难进行干预,本申请实施例提供的网络模型处理方法在基于Caffe模型框架的网络模型上进行优化,能够较好地对齐不同硬件平台的网络结构优化水平。例如,在用户把自研的多种网络模型部署到同一硬件平台上的情况下,遇到实际性能与预期不符的问题,可以通过本申请实施例提供的网络模型处理方法对网络模型的网络结构中多个线性计算层进行合并,以及对激活层进行内联优化,以大幅提升网络模型的运行性能。
此外,本申请实施例提供的网络模型处理方法通过对原有基于Caffe模型框架的网络模型进行等价变换处理,可以达到扩展硬件平台支持网络模型的能力的效果。例如,在用户把自研的人脸识别模型部署到服务器端的GPGPU上的情况下,遇到某个子结构(如Concat+Slice结构)不支持的问题,可以通过本申请实施例提供的网络模型处理方法对网络模型的网络结构中多个数据操作层进行合并与变换,以实现网络模型的部署,进而实现网络模型的业务价值。
图6A为本申请实施例提供的一种网络模型处理方法,如图6A所示,该方法可以包括如下步骤S601至步骤S607:
步骤S601,获取待处理的网络模型;这里,网络模型为任意合适的基于Caffe模型框架的卷积神经网络模型。
步骤S602,将该网络模型解析为内部数据结构;在实施时,可以调用预先开发的Caffe模型加载模块对网络模型进行加载和解析,得到等价变换处理中用于表征该网络模型的内部数据结构。
步骤S603,确定用于对该网络模型进行处理的目标变换规则;其中,目标变换规则至少包括线性计算层合并规则、激活层内联优化规则和数据操作层合并规则。
这里,用于对该网络模型进行处理的目标变换规则可以是从预先设定的变换规则库中确定的。变换规则库中可以包括用于支持不同的模型优化场景的多种变换规则。在实施时,可以默认将变换规则库中全部的变换规则确定为目标变换规则;也可以根据网络模型的部署条件确定不同的目标变换规则,例如,针对不同的模型优化场景或硬件平台提供相应的预设方案;还可以由用户根据当前使用的硬件平台进行从变换规则库中选取合适的目标变换规则。
步骤S604,基于目标变换规则,对网络模型的网络结构进行优化。
图6B为本申请实施例提供的一种对网络模型的网络结构进行优化的实现流程示意图,如图6B所示,该流程包括如下步骤S611至步骤S616:
步骤S611,将待处理的网络模型的网络结构中第一个网络层确定为当前网络层。
步骤S612,判断当前网络层是否满足目标变换规则;若是,进入步骤S613;若否,进入步骤S615;这里,目标变换规则中可以包括待变换的结构类型以及与该结构类型对应的变换操作,待变换的结构类型可以包括第一网络层和依赖该第一网络层的第二网络层。在当前网络层与该第一网络层匹配的情况下,可以确定当前网络层满足目标变换规则。
步骤S613,判断当前网络层的依赖层是否满足目标变换规则;若是,进入步骤S614;若否,进入步骤S615;这里,在当前网络层的依赖层与该第二网络层匹配的情况下,可以确定当前网络层的依赖层满足目标变换规则。
步骤S614,基于目标变换规则中的变换操作,对该当前网络层和该依赖层组成的子结构进行等价变换处理。
步骤S615,判断该网络结构中是否存在下一网络层;若是,进入步骤S616;若否,结束。
步骤S616,将该下一网络层确定为当前网络层;进入步骤S612。
在实施时,可以调用预先开发的模型等价变换模块,在网络模型的网络结构上进行子结构匹配和等价变换处理。
步骤S605,检测网络模型的网络结构是否被修改;若是,进入步骤S604;若否,进入步骤S606。
步骤S606,对网络模型的模型文件中的无效数据进行裁剪。
步骤S607,输出无效数据裁剪后的网络模型的模型文件。
在一些实施例中,变换规则库中可以包括如下类型的变换规则:线性计算层合并规则,激活层内联优化规则,数据操作层合并规则,批量归一化拆分规则,参数校正线性单元拆分规则,数据操作重排规则,模型文件精简规则。下面对每一类型的变换规则进行说明。
1)线性计算层合并规则:可以包括卷积层(Conv)与归一化处理层(BatchNormalization,BatchNorm)合并、Conv与批量归一化处理层(BN)合并、Conv与缩放平移层(Scale)合并、BatchNorm与Scale合并、全连接层(Fully connected layer,FC)与BatchNorm合并、FC与BN合并、FC与Scale合并、网络输入层与预处理均值化层合并。需要说明的是,在Caffe模型框架中BN层包括BatchNorm层和Scale层。
图6C为本申请实施例提供的一种线性计算层合并的实现示意图,如图6C所示,原始的网络模型10经过线性计算层合并后得到变换后的网络模型20,其中,原始的网络模型10中,输入数据11依次经过第一线性计算层12和第二线性计算层13处理后得到输出数据15,变换后的网络模型20中,将第一线性计算层12和第二线性计算层13合并为第三线性计算层14。
2)激活层内联优化规则:可以包括ReLU层与该ReLU层的前驱层合并。
激活层作用于整个特征,用于改变特征整体性质。由于激活层是逐元素且仅依赖输入数据,因此,可以在提供激活层输入的前驱层的存储空间上直接进行激活层的计算。这样,激活层的计算过程可以与前驱层共用一份存储空间,而不用占据额外的存储空间。
图6D为本申请实施例提供的一种激活层内联优化的实现示意图,如图6D所示,原始的网络模型30经过激活层内联优化后得到变换后的网络模型40,其中,原始的网络模型30中,输入数据31依次经过前驱层32和激活层33处理后得到输出数据35,变换后的网络模型40中,将激活层33的计算过程移至前驱层32中,得到用于进行前驱层计算和激活层计算的新的网络层34。
3)数据操作层合并规则:可以包括Slice与Slice合并、Concat与Slice合并、Concat与BN合并。
4)批量归一化拆分规则:可以包括BN拆分为BatchNorm和Scale。
5)参数校正线性单元拆分规则:可以包括PReLU拆分为ReLU和Eltwise。
6)数据操作重排规则:可以包括将依次连接的数据计算层、数据分割层和数据连接层重排为数据分割层、数据连接层和数据计算层,将依次连接的数据分割层与数据计算层重排为数据连接层、数据分割层。
图6E为本申请实施例提供的一种数据操作重排的实现示意图,如图6E所示,原始的网络模型50经过数据操作重排后得到变换后的网络模型60,其中,原始的网络模型50中,输入数据51和输入数据52分别经过数据计算层53和数据分割层54后得到相应的中间数据,输入数据51对应的中间数据和输入数据52对应的中间数据一起经过数据连接层55处理后得到输出数据56,变换后的网络模型60中,将数据计算层53、数据分割层54和数据连接层55重排为数据分割层54、数据连接层55和数据计算层53。这样,可以在数据连接层55处理后的数据上进行数据计算层53的计算,可以减少计算的数据量,提升计算效率,并且可以提高数据计算层中计算的数据的连续性。
数据计算层可以是任意合适的对数据进行逐元素计算或者卷积计算的网络层。通过重新排布数据操作层与数据计算层之间的顺序,可以在更少的数据上进行逐元素计算或者卷积计算,同时可以提高数据计算层中计算的数据的连续性以及计算效率。例如,可以将依次连接的数据计算层、数据分割层和数据连接层中数据计算层与数据分割层和数据连接层之间的顺序进行重排,重排后各网络层之间的顺序可以为数据分割层、数据连接层和数据计算层。又如,可以将依次连接的数据分割层与数据计算层之间的顺序进行重排,重排后各网络层之间的顺序可以为数据连接层、数据分割层。
7)模型文件精简规则:可以包括删除模型推理过程中未使用的训练信息,删除网络模型中的冗余节点。
在一些实施例中,目标变换规则可以默认包括模型文件精简规则。
图7为本申请实施例提供的一种网络模型处理装置的组成结构示意图,如图7所示,网络模型处理装置700包括:获取模块710、第一确定模块720和变换模块730,其中:
获取模块710,用于获取待处理的网络模型和所述网络模型的部署条件;
第一确定模块720,用于基于所述部署条件,从设定的变换规则库中,确定对所述网络模型进行处理的目标变换规则;
变换模块730,用于基于所述目标变换规则,对所述网络模型进行至少一次子结构的等价变换处理,得到变换后的目标网络模型。
在一些实施例中,所述变换规则库中每一变换规则的类型包括以下之一:线性计算层合并规则,激活层内联优化规则,数据操作层合并规则,批量归一化拆分规则,参数校正线性单元拆分规则,数据操作重排规则。
在一些实施例中,所述变换模块还用于:基于所述目标变换规则,确定至少一个待变换的结构类型以及与每一所述结构类型对应的变换操作;基于至少一个所述结构类型,对所述网络模型的网络结构进行匹配;在所述网络模型的网络结构中存在与任一所述结构类型匹配的子结构的情况下,基于与所述结构类型对应的变换操作,对所述子结构进行等价变换处理,得到候选网络模型;在所述候选网络模型的网络结构中的每一子结构与每一所述结构类型均不匹配的情况下,将所述候选网络模型确定为目标网络模型。
在一些实施例中,所述变换模块还用于:基于至少一个所述结构类型,对所述候选网络模型的网络结构进行匹配;在所述候选网络模型的网络结构中存在与任一所述结构类型匹配的子结构的情况下,基于与所述结构类型对应的变换操作,对所述候选网络模型的所述子结构进行等价变换处理,得到变换后的候选网络模型。
在一些实施例中,所述待变换的结构类型包括第一网络层和依赖所述第一网络层的第二网络层;所述变换模块还用于:对所述网络模型的网络结构中的每一网络层进行遍历,在当前网络层与所述第一网络层匹配,且所述当前网络层的依赖层与所述第二网络层匹配的情况下,将所述当前网络层和所述依赖层组成的结构确定为与所述第一网络层和第二网络层匹配的子结构。
在一些实施例中,所述目标变换规则的数量为一个或多个;所述变换模块还用于:针对每一所述目标变换规则,基于所述目标变换规则的类型,确定至少一个待变换的结构类型以及与每一所述结构类型对应的变换操作。
在一些实施例中,所述变换模块还用于:在所述目标变换规则包括线性计算层合并规则的情况下,确定所述至少一个待变换的结构类型包括相邻的第一线性计算层和第二线性计算层,且每一组相邻的第一线性计算层和第二线性计算层对应的变换操作包括将所述第一线性计算层和第二线性计算层合并为第三线性计算层;其中,所述第一线性计算层包括以下至少之一:卷积层,归一化处理层,全连接层,网络输入层;所述第二线性计算层包括以下至少之一:批量归一化层,归一化处理层,缩放平移层,预处理均值化层。
在一些实施例中,所述变换模块还用于:在所述目标变换规则包括激活层内联优化规则的情况下,确定所述至少一个待变换的结构类型包括激活层和所述激活层的前驱层,且每一组激活层和所述激活层的前驱层对应的变换操作包括将所述激活层的计算过程移至所述前驱层中;所述激活层包括修正线性单元层。
在一些实施例中,所述变换模块还用于:在所述目标变换规则包括数据操作层合并规则的情况下,确定所述至少一个待变换的结构类型包括相邻的第一数据操作层和第二数据操作层,且每一组相邻的第一数据操作层和第二数据操作层对应的变换操作包括将所述第一数据操作层和第二数据操作层合并为第三数据操作层;其中,所述第一数据操作层包括以下至少之一:数据分割层,数据连接层,批量归一化层;所述第二数据操作层包括以下至少之一:数据分割层,数据连接层,批量归一化层。
在一些实施例中,所述变换模块还用于:在所述目标变换规则包括批量归一化拆分规则的情况下,确定所述至少一个待变换的结构类型包括批量归一化层,且每一批量归一化层对应的变换操作包括将所述批量归一化层拆分为归一化处理层和缩放平移层。
在一些实施例中,所述变换模块还用于:在所述目标变换规则包括参数校正线性单元拆分规则的情况下,确定所述至少一个待变换的结构类型包括参数校正线性单元层,且每一参数校正线性单元层对应的变换操作包括将所述参数校正线性单元层拆分为修正线性单元和按元素操作层。
在一些实施例中,所述变换模块还用于:在所述目标变换规则包括数据操作重排规则的情况下,确定所述至少一个待变换的结构类型包括相邻的第四数据操作层和数据计算层,且每一组相邻的第四数据操作层和数据计算层对应的变换操作包括将所述第四数据操作层和所述数据计算层的顺序进行重排。
在一些实施例中,所述装置还包括:第二确定模块,用于基于所述变换后的目标网络模型,确定所述目标网络模型的模型文件;删除模块,用于基于设定的模型文件裁剪规则,对所述模型文件中的无效数据进行删除,得到裁剪后的模型文件。
在一些实施例中,所述模型文件裁剪规则包括以下至少之一:删除模型推理过程中未使用的训练信息;删除网络模型中的冗余节点。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的网络模型处理方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
对应地,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的步骤。
对应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
对应地,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(SoftwareDevelopment Kit,SDK)等等。
这里需要指出的是:以上存储介质、计算机程序产品和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质、计算机程序产品和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,图8为本申请实施例中计算机设备的一种硬件实体示意图,如图8所示,该计算机设备800的硬件实体包括:处理器801、通信接口802和存储器803,其中:
处理器801通常控制计算机设备800的总体操作。
通信接口802可以使计算机设备通过网络与其他终端或服务器通信。
存储器803配置为存储由处理器801可执行的指令和应用,还可以缓存待处理器801以及计算机设备800中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。处理器801、通信接口802和存储器803之间可以通过总线804进行数据传输。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (15)
1.一种网络模型处理方法,其特征在于,所述方法包括:
获取待处理的网络模型和所述网络模型的部署条件;
基于所述部署条件,从设定的变换规则库中,确定对所述网络模型进行处理的目标变换规则;
基于所述目标变换规则,对所述网络模型进行至少一次子结构的等价变换处理,得到变换后的目标网络模型。
2.根据权利要求1所述的方法,其特征在于,所述变换规则库中每一变换规则的类型包括以下之一:线性计算层合并规则,激活层内联优化规则,数据操作层合并规则,批量归一化拆分规则,参数校正线性单元拆分规则,数据操作重排规则。
3.根据权利要求1或2所述的方法,其特征在于,所述基于所述目标变换规则,对所述网络模型进行至少一次子结构的等价变换处理,得到变换后的目标网络模型,包括:
基于所述目标变换规则,确定至少一个待变换的结构类型以及与每一所述结构类型对应的变换操作;
基于至少一个所述结构类型,对所述网络模型的网络结构进行匹配;
在所述网络模型的网络结构中存在与任一所述结构类型匹配的子结构的情况下,基于与所述结构类型对应的变换操作,对所述子结构进行等价变换处理,得到候选网络模型;
在所述候选网络模型的网络结构中的每一子结构与每一所述结构类型均不匹配的情况下,将所述候选网络模型确定为目标网络模型。
4.根据权利要求3所述的方法,其特征在于,所述基于所述目标变换规则,对所述网络模型进行至少一次子结构的等价变换处理,得到变换后的目标网络模型,还包括:
基于至少一个所述结构类型,对所述候选网络模型的网络结构进行匹配;
在所述候选网络模型的网络结构中存在与任一所述结构类型匹配的子结构的情况下,基于与所述结构类型对应的变换操作,对所述候选网络模型的所述子结构进行等价变换处理,得到变换后的候选网络模型。
5.根据权利要求3或4所述的方法,其特征在于,所述待变换的结构类型包括第一网络层和依赖所述第一网络层的第二网络层;
所述基于至少一个所述结构类型,对所述网络模型的网络结构进行匹配,包括:
对所述网络模型的网络结构中的每一网络层进行遍历,在当前网络层与所述第一网络层匹配,且所述当前网络层的依赖层与所述第二网络层匹配的情况下,将所述当前网络层和所述依赖层组成的结构确定为与所述第一网络层和第二网络层匹配的子结构。
6.根据权利要求3至5中任一项所述的方法,其特征在于,所述目标变换规则的数量为一个或多个;
所述基于所述目标变换规则,确定至少一个待变换的结构类型以及与每一所述结构类型对应的变换操作,包括:
针对每一所述目标变换规则,基于所述目标变换规则的类型,确定至少一个待变换的结构类型以及与每一所述结构类型对应的变换操作。
7.根据权利要求6所述的方法,其特征在于,所述基于所述目标变换规则的类型,确定至少一个待变换的结构类型以及与每一所述结构类型对应的变换操作,包括:
在所述目标变换规则包括线性计算层合并规则的情况下,确定所述至少一个待变换的结构类型包括相邻的第一线性计算层和第二线性计算层,且每一组相邻的第一线性计算层和第二线性计算层对应的变换操作包括将所述第一线性计算层和第二线性计算层合并为第三线性计算层;
其中,所述第一线性计算层包括以下至少之一:卷积层,归一化处理层,全连接层,网络输入层;所述第二线性计算层包括以下至少之一:批量归一化层,归一化处理层,缩放平移层,预处理均值化层。
8.根据权利要求6或7所述的方法,其特征在于,所述基于所述目标变换规则的类型,确定至少一个待变换的结构类型以及与每一所述结构类型对应的变换操作,包括:
在所述目标变换规则包括激活层内联优化规则的情况下,确定所述至少一个待变换的结构类型包括激活层和所述激活层的前驱层,且每一组激活层和所述激活层的前驱层对应的变换操作包括将所述激活层的计算过程移至所述前驱层中;所述激活层包括修正线性单元层。
9.根据权利要求6至8中任一项所述的方法,其特征在于,所述基于所述目标变换规则的类型,确定至少一个待变换的结构类型以及与每一所述结构类型对应的变换操作,包括:
在所述目标变换规则包括数据操作层合并规则的情况下,确定所述至少一个待变换的结构类型包括相邻的第一数据操作层和第二数据操作层,且每一组相邻的第一数据操作层和第二数据操作层对应的变换操作包括将所述第一数据操作层和第二数据操作层合并为第三数据操作层;
其中,所述第一数据操作层包括以下至少之一:数据分割层,数据连接层,批量归一化层;所述第二数据操作层包括以下至少之一:数据分割层,数据连接层,批量归一化层。
10.根据权利要求6至9中任一项所述的方法,其特征在于,所述基于所述目标变换规则的类型,确定至少一个待变换的结构类型以及与每一所述结构类型对应的变换操作,包括以下至少之一:
在所述目标变换规则包括批量归一化拆分规则的情况下,确定所述至少一个待变换的结构类型包括批量归一化层,且每一批量归一化层对应的变换操作包括将所述批量归一化层拆分为归一化处理层和缩放平移层;
在所述目标变换规则包括参数校正线性单元拆分规则的情况下,确定所述至少一个待变换的结构类型包括参数校正线性单元层,且每一参数校正线性单元层对应的变换操作包括将所述参数校正线性单元层拆分为修正线性单元和按元素操作层;
在所述目标变换规则包括数据操作重排规则的情况下,确定所述至少一个待变换的结构类型包括相邻的第四数据操作层和数据计算层,且每一组相邻的第四数据操作层和数据计算层对应的变换操作包括将所述第四数据操作层和所述数据计算层的顺序进行重排。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述方法还包括:
基于所述变换后的目标网络模型,确定所述目标网络模型的模型文件;
基于设定的模型文件裁剪规则,对所述模型文件中的无效数据进行删除,得到裁剪后的模型文件。
12.根据权利要求11所述的方法,其特征在于,所述模型文件裁剪规则包括以下至少之一:
删除模型推理过程中未使用的训练信息;
删除网络模型中的冗余节点。
13.一种网络模型处理装置,其特征在于,包括:
获取模块,用于获取待处理的网络模型和所述网络模型的部署条件;
第一确定模块,用于基于所述部署条件,从设定的变换规则库中,确定对所述网络模型进行处理的目标变换规则;
变换模块,用于基于所述目标变换规则,对所述网络模型进行至少一次子结构的等价变换处理,得到变换后的目标网络模型。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至12任一项所述方法中的步骤。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至12任一项所述方法中的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111347772.9A CN114037063A (zh) | 2021-11-15 | 2021-11-15 | 网络模型处理方法、装置、设备、存储介质 |
PCT/CN2022/100491 WO2023082644A1 (zh) | 2021-11-15 | 2022-06-22 | 网络模型处理方法、装置、设备、存储介质及计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111347772.9A CN114037063A (zh) | 2021-11-15 | 2021-11-15 | 网络模型处理方法、装置、设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114037063A true CN114037063A (zh) | 2022-02-11 |
Family
ID=80144376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111347772.9A Pending CN114037063A (zh) | 2021-11-15 | 2021-11-15 | 网络模型处理方法、装置、设备、存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114037063A (zh) |
WO (1) | WO2023082644A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115081628A (zh) * | 2022-08-15 | 2022-09-20 | 浙江大华技术股份有限公司 | 一种深度学习模型适配度的确定方法及装置 |
WO2023082644A1 (zh) * | 2021-11-15 | 2023-05-19 | 上海商汤智能科技有限公司 | 网络模型处理方法、装置、设备、存储介质及计算机程序产品 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117521737B (zh) * | 2024-01-04 | 2024-04-19 | 浙江大华技术股份有限公司 | 网络模型的转换方法、装置、终端及计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11704555B2 (en) * | 2019-06-24 | 2023-07-18 | Baidu Usa Llc | Batch normalization layer fusion and quantization method for model inference in AI neural network engine |
CN112101529B (zh) * | 2020-10-14 | 2024-06-21 | 杭州海康威视数字技术股份有限公司 | 一种用于神经网络模型推理跨平台的部署方法及架构 |
CN113469345A (zh) * | 2021-07-28 | 2021-10-01 | 浙江大华技术股份有限公司 | 量化模型的优化方法和装置、存储介质及电子装置 |
CN114037063A (zh) * | 2021-11-15 | 2022-02-11 | 北京市商汤科技开发有限公司 | 网络模型处理方法、装置、设备、存储介质 |
-
2021
- 2021-11-15 CN CN202111347772.9A patent/CN114037063A/zh active Pending
-
2022
- 2022-06-22 WO PCT/CN2022/100491 patent/WO2023082644A1/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023082644A1 (zh) * | 2021-11-15 | 2023-05-19 | 上海商汤智能科技有限公司 | 网络模型处理方法、装置、设备、存储介质及计算机程序产品 |
CN115081628A (zh) * | 2022-08-15 | 2022-09-20 | 浙江大华技术股份有限公司 | 一种深度学习模型适配度的确定方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2023082644A1 (zh) | 2023-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10909418B2 (en) | Neural network method and apparatus | |
CN114037063A (zh) | 网络模型处理方法、装置、设备、存储介质 | |
US11790212B2 (en) | Quantization-aware neural architecture search | |
CN111352656B (zh) | 使用按位运算的神经网络设备和方法 | |
CN114026569A (zh) | 使用脉动阵列的扩张卷积 | |
CN114503125A (zh) | 结构化剪枝方法、系统和计算机可读介质 | |
CN113112509B (zh) | 图像分割模型训练方法、装置、计算机设备和存储介质 | |
CN111401510A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN111401538A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN114968612B (zh) | 一种数据处理方法、系统及相关设备 | |
EP3979132A1 (en) | Dual encoder attention u-net | |
CN111369430A (zh) | 基于移动深度学习引擎的移动端人像智能背景替换方法 | |
US20210304010A1 (en) | Neural network training under memory restraint | |
CN113674374A (zh) | 基于生成式对抗网络的中文文本生成图像方法及装置 | |
US20220188382A1 (en) | Information processing apparatus, information processing method, and computer-readable recording medium | |
CN115019054A (zh) | 数据处理方法、装置、芯片、电子设备和介质 | |
EP4322064A1 (en) | Method and system for jointly pruning and hardware acceleration of pre-trained deep learning models | |
CN116261734A (zh) | 硬件加速器的神经架构缩放 | |
CN117370488A (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN111860824A (zh) | 一种数据处理方法及相关产品 | |
CN113159297A (zh) | 一种神经网络压缩方法、装置、计算机设备及存储介质 | |
CN115699022A (zh) | 结构化卷积和相关联加速 | |
CN112668659A (zh) | 模型训练方法、平台和电子设备 | |
Phillips et al. | Performance analysis of the high-performance conjugate gradient benchmark on GPUs | |
US20230196129A1 (en) | Non-transitory computer-readable storage medium for storing data generation program, data generation method, and data generation device |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40068037 Country of ref document: HK |