CN117669686A - 模型处理方法、装置和电子设备 - Google Patents
模型处理方法、装置和电子设备 Download PDFInfo
- Publication number
- CN117669686A CN117669686A CN202311557871.9A CN202311557871A CN117669686A CN 117669686 A CN117669686 A CN 117669686A CN 202311557871 A CN202311557871 A CN 202311557871A CN 117669686 A CN117669686 A CN 117669686A
- Authority
- CN
- China
- Prior art keywords
- network layer
- target
- target network
- model
- layer
- 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
- 238000003672 processing method Methods 0.000 title abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 52
- 239000011159 matrix material Substances 0.000 claims abstract description 34
- 230000004927 fusion Effects 0.000 claims abstract description 26
- 238000013138 pruning Methods 0.000 claims abstract description 26
- 230000008569 process Effects 0.000 claims abstract description 24
- 238000012545 processing Methods 0.000 claims abstract description 21
- 238000004590 computer program Methods 0.000 claims description 17
- 238000012216 screening Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 5
- 238000013473 artificial intelligence Methods 0.000 abstract description 9
- 238000013135 deep learning Methods 0.000 abstract description 4
- 238000003062 neural network model Methods 0.000 description 12
- 238000012546 transfer Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect 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
-
- 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/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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 Analysis (AREA)
Abstract
本公开提出了一种模型处理方法、装置和电子设备,涉及人工智能技术领域,具体为自动驾驶和深度学习等技术领域,包括:获取初始模型在模型推理过程中参与矩阵运算的第一目标网络层,并确定与第一目标网络层相邻的第二目标网络层;根据第一目标网络层和第二目标网络层,判断是否对第一目标网络层和第二目标网络层执行目标操作,其中,目标操作包括剪枝和融合中的至少一种;在确定对第一目标网络层和第二目标网络层执行目标操作后,对第一目标网络层和第二目标网络层执行目标操作,得到目标模型,由此,本公开可以自动地判断是否对第一目标网络层和第二目标网络层执行剪枝/融合操作,提高了对模型处理过程中的效率,进而提高了模型的推理速度。
Description
技术领域
本公开涉及人工智能技术领域,具体为自动驾驶和深度学习等技术领域,尤其涉及一种模型处理方法、装置和电子设备。
背景技术
随着人工智能技术的不断发展,神经网络模型也随之不断发展,神经网络模型可以运用在自动驾驶系统、增强现实系统中,但是神经网络模型的结构的庞大复杂,然而,相关技术中的对模型进行加速推理的方法,存在效率较低的问题。
发明内容
本公开提出了一种模型处理方法、装置、电子设备、存储介质和计算机程序产品。
根据本公开的第一方面,提出了一种模型处理方法,包括:获取初始模型在模型推理过程中参与矩阵运算的第一目标网络层,并确定与所述第一目标网络层相邻的第二目标网络层;根据所述第一目标网络层和所述第二目标网络层,判断是否对所述第一目标网络层和所述第二目标网络层执行目标操作,其中,所述目标操作包括剪枝和融合中的至少一种;在确定对所述第一目标网络层和所述第二目标网络层执行目标操作后,对所述第一目标网络层和所述第二目标网络层执行目标操作,得到目标模型。
根据本公开的第二方面,提出了一种模型处理装置,包括:获取模块,用于获取初始模型在模型推理过程中参与矩阵运算的第一目标网络层,并确定与所述第一目标网络层相邻的第二目标网络层;判断模块,用于根据所述第一目标网络层和所述第二目标网络层,判断是否对所述第一目标网络层和所述第二目标网络层执行目标操作,其中,所述目标操作包括剪枝和融合中的至少一种;执行模块,用于在确定对所述第一目标网络层和所述第二目标网络层执行目标操作后,对所述第一目标网络层和所述第二目标网络层执行目标操作,得到目标模型。
根据本公开的第三方面,提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面提出的模型处理方法。
根据本公开的第四方面,提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述第一方面提出的模型处理方法。
根据本公开的第五方面,提出了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述第一方面提出的模型处理方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1为本公开一实施例的模型处理方法的流程示意图;
图2为本公开另一实施例的模型处理方法的流程示意图;
图3为本公开另一实施例的模型处理方法的流程示意图;
图4为本公开一实施例的模型处理装置的结构示意图;
图5为本公开一实施例的电子设备的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
人工智能(Artificial Intelligence,简称AI)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。目前,AI技术具有自动化程度高、精确度高、成本低的优点,得到了广泛的应用。
自动驾驶是一种技术,使得车辆能够在不需要人类干预的情况下自主行驶。它利用各种传感器、计算机视觉、人工智能和机器学习等技术,对道路环境进行感知、分析和决策,从而实现车辆的自主导航和控制。
深度学习(Deep Learning,简称DL)是机器学习(Machine Learning,简称ML)领域中一个新的研究方向,是学习样本数据的内在规律和表示层次,使得机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据的一门科学,广泛应用于语音和图像识别。
图1为本公开一实施例的模型处理方法的流程示意图。如图1所示,该方法包括:
S101,获取初始模型在模型推理过程中参与矩阵运算的第一目标网络层,并确定与第一目标网络层相邻的第二目标网络层。
需要说明的是,本公开实施例的广告召回方法的执行主体可为具有数据信息处理能力的硬件设备和/或驱动该硬件设备工作所需必要的软件。可选地,执行主体可包括工作站、服务器,计算机、用户终端及其他智能设备。其中,用户终端包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等。
其中,初始模型为任一需要进行处理的模型。
需要说明的是,本公开对于初始模型的类型不作限定,可以根据实际情况进行选取。
可选地,初始模型可以为卷积神经网络模型(Convolutional Neural Networks,简称CNN);可选地,初始模型可以为循环神经网络模型(Recurrent Neural Networks,简称RNN)。
需要说明的是,在确定初始模型后,可以根据初始模型的配置文件,其中,初始模型的配置文件中包括初始模型的参数信息,可以根据参数信息,获取初始模型在模型推理过程中参与矩阵运算的第一目标网络层。
举例而言,参与矩阵运算的第一目标网络层可以为卷积层、MatMul矩阵乘法层等。
在本公开实施例中,在获取到初始模型在模型推理过程中参与矩阵运算的第一目标网络层后,可以根据初始模型的模型结构,确定与第一目标网络层相邻的第二目标网络层。
S102,根据第一目标网络层和第二目标网络层,判断是否对第一目标网络层和第二目标网络层执行目标操作,其中,目标操作包括剪枝和融合中的至少一种。
其中,剪枝Pruning,不同于模型量化对每一个权重参数进行压缩,剪枝是尝试直接“删除”部分权重参数,通过剔除模型中“不重要”的权重,使得模型减少参数量和计算量,同时尽量保证模型的精度不受影响。
其中,融合Fusion,将多个计算节点融合为一个节点,合并为一个单一的操作,减少了中间结果的存储和传输。
在本公开实施例中,在获取到第一目标网络层和第二目标网络层后,可以根据第一目标网络层和第二目标网络层,判断是否对第一目标网络层和第二目标网络层执行目标操作。
可选地,可以获取第一目标网络层和第二目标网络层构成的目标网络层组,对目标网路层组和预设规则库中所包括的网络层组进行匹配,响应于目标网络层组与预设规则库中所包括的至少一个网络层组匹配成功,确定对第一目标网络层和第二目标网络层执行目标操作。
举例而言,针对初始模型A,第一目标网络层为卷积层(Convolution,简称conv)、第二目标网络层为线性整流单元层(Rectified linear unit,简称Relu),则目标网络层组为conv层+Relu层,若预设规则库中所包括的网络层中包含conv层+Relu层,则确定对第一目标网络层和第二目标网络层执行目标操作,若预设规则库中所包括的网络层中未包含conv层+Relu层,则不对第一目标网络层和第二目标网络层执行目标操作。
S103,在确定对第一目标网络层和第二目标网络层执行目标操作后,对第一目标网络层和第二目标网络层执行目标操作,得到目标模型。
举例而言,针对初始模型A,第一目标网络层为卷积(Convolution,简称conv)层、第二目标网络层为线性整流单元(Rectified linear unit,简称Relu)层,若预设规则库中所包括的网络层中包含conv层+Relu层,则获取对conv层+Relu层的目标操作,若目标操作为融合层,则对conv层和Relu层进行融合,得到卷积激活层CR。
在本公开实施例中,可以对初始模型在模型推理过程中的网络层进行多次遍历,得到每一次遍历后的目标网络层,对目标网络层执行目标操作,得到目标模型i,直至目标模型i满足遍历结束条件,则结束遍历,得到最终的目标模型。
举例而言,针对初始模型A,第一次遍历后的目标网络层为第一目标网络层为conv层、第二目标网络层为Relu层,确定对conv层和Relu层执行融合操作,得到卷积激活层CR,并得到目标模型1,若目标模型1满足遍历结束条件,则结束遍历,将目标模型1作为最终的目标模型。
需要说明的是,本申请对于遍历结束条件的设置不作限定,可以根据实际情况进行设定。
举例而言,可以设置遍历结束条件为遍历次数达到遍历次数阈值;可选地,可以设置遍历结束条件为目标网络层与预设规则库中所包括的网络层匹配失败,即无法对每一次遍历后的目标网络层执行剪枝或融合操作。
本公开提出的模型处理方法,通过获取初始模型在模型推理过程中参与矩阵运算的第一目标网络层,并确定与第一目标网络层相邻的第二目标网络层,根据第一目标网络层和第二目标网络层,判断是否对第一目标网络层和第二目标网络层执行目标操作,其中,目标操作包括剪枝和融合中的至少一种;在确定对第一目标网络层和第二目标网络层执行目标操作后,对第一目标网络层和第二目标网络层执行目标操作,得到目标模型,由此,本公开可以自动地判断是否对第一目标网络层和第二目标网络层执行剪枝/融合操作,提高了对模型处理过程中的效率,进而提高了模型的推理速度。
图2是根据本公开第二实施例的模型处理方法的流程示意图。
如图2所示,在图1所示实施例的基础上,本公开实施例的模型处理方法具体可包括以下步骤:
上述实施例中的步骤S101“获取初始模型在模型推理过程中参与矩阵运算的第一目标网络层”具体可包括以下步骤S201和S202。
S201,获取初始模型所包括的网络层。
可选地,可以获取初始模型的模型文件,根据模型文件中包括的参数信息,获取初始模型所包括的网络层。
S202,从网络层中筛选出参与矩阵运算的第一目标网络层。
上述实施例中的步骤S202“从网络层中筛选出参与矩阵运算的第一目标网络层”具体可包括以下步骤S301和S302。
S301,根据模型文件,获取初始模型所包括的网络层的类型。
S302,针对每类网络层的类型,从网络层中筛选出参与矩阵运算的第一目标网络层。
在本公开实施例中,在获取到初始模型所包括的网络层的类型后,可以针对每类网络层的类型,从网络层中筛选出参与矩阵运算的第一目标网络层。
举例而言,参与矩阵运算的第一目标网络层可以为卷积层(Convolution Layer)、全连接层(Fully Connected Layer)、MatMul矩阵乘法层等。
进一步地,可以根据初始模型的网络输入,获取第一目标网络层(矩阵运算层)的输入输出维度,将第一目标网络层的输入输出维度进行存储,若输入输出维度是8的倍数,则有利于TensorCore计算,对有利于TensorCore计算的矩阵运算层数进行存储标记,若输入输出维度不是8的倍数,则有利于CudaCore计算,对有利于CudaCore计算的矩阵运算层数进行存储标记,可以根据有利于TensorCore计算的矩阵运算层数和有利于CudaCore计算的矩阵运算层数,获取有利于TensorCore计算的矩阵运算层数的占比,当有利于TensorCore计算的矩阵运算层数的占比越高时,有利于提高图形处理器(Graphics Processing Unit,简称GPU)中TensorCore的利用率,模型的推理速度越快,可以为用户设计模型结构时,提供参考。
S203,确定与第一目标网络层相邻的第二目标网络层。
关于步骤S203的相关内容,可参见上述实施例,具体不再赘述。
上述实施例中的步骤S102“根据第一目标网络层和第二目标网络层,判断是否对第一目标网络层和第二目标网络层执行目标操作”具体可包括以下步骤S204和S206。
S204,获取第一目标网络层和第二目标网络层构成的目标网络层组。
在本公开实施例中,在获取到第一目标网络层和第二目标网络层后,则目标网络层组为第一目标网络层+第二目标网络层。
S205,对目标网路层组和预设规则库中所包括的网络层组进行匹配。
在本申请实施例中,预设规则库中包括第一网络层组集合和第二网络层组集合,第一网络层组集合中包括多个可融合的第一网络层组,第二网络层组集合中包括多个可剪枝的第二网络层组。
需要说明的是,针对多个可融合的第一网络层组,可以对第一网络层组中包括的网络层执行融合操作;针对多个可剪枝的第二网络层组,可以对第二网络层组中包括的网络层执行剪枝操作。
需要说明的是,针对可融合的第一网路层组,可剪枝的第二网络层组,可以根据初始模型的实际情况进行设定。
例如:针对初始模型A,可以设置可融合的第一网络层组为:由卷积conv层和Relu层构成的第一网络层组,可以对conv层和Relu层进行融合,得到卷积激活层CR,即:Conv层+Relu层=CR层。
又例如:针对初始模型A,可以设置可融合的第一网络层组为:由卷积conv层、批处理归一化(Batch Normalization,简称BN)层和Relu层构成的第一网络层组,可以对conv层、BN层和Relu层进行融合,得到卷积归一激活层CBR,即:Conv层+BN层+Relu层=CBR层。
例如:针对初始模型A,可以设置可剪枝的第二网络层组为:由转置(Transpose)层和CBR层(conv层、BN层和Relu层)构成的第二网络层组,可以对Transpose层和CBR层进行剪枝,得到CBR层,即将Transpose层删除,即Transpose层+CBR层=CBR层。
又例如:针对初始模型A,可以设置可剪枝的第二网络层组为:由Transpose层、CBR层(conv层、BN层和Relu层)和Transpose层构成的第二网络层组,可以对Transpose层、CBR层和Transpose层进行剪枝,得到CBR层,即将两个Transpose层删除,即Transpose层+CBR层+Transpose层=CBR层。
S206,响应于目标网络层组与预设规则库中所包括的至少一个网络层组匹配成功,确定对第一目标网络层和第二目标网络层执行目标操作。
上述实施例中的步骤S103“在确定对第一目标网络层和第二目标网络层执行目标操作后,对第一目标网络层和第二目标网络层执行目标操作”具体可包括以下步骤S207和S208。
S207,若目标网络层组与第一网络层组集合中的任一个第一网络层组匹配成功,确定对第一目标网络层和第二目标网络层执行融合操作。
举例而言:针对初始模型A,由第一目标网络层(conv层)和第二目标网络层(Relu层)构成的目标网络层组,与第一网络层组集合中的第一网络层组匹配成功,确定对第一目标网络层conv层和第二目标网路层Relu层执行融合操作,得到卷积激活层CR。
S208,若目标网络层组与第二网络层集合中的任一个第二网络层组匹配成功,确定对第一目标网络层和第二目标网络层执行剪枝操作。
举例而言,针对初始模型A,由第一目标网络层Transpose层和第二目标网络层CBR层(由conv层、BN层和Relu层融合得到)构成的目标网络层组,与第二网络层组集合中的第二网络层组匹配成功,确定对第一目标网络层conv层和第二目标网路层CBR层执行剪枝操作,得到卷积归一激活层CBR。
S209,获取目标模型。
在本公开实施例中,可以对初始模型在模型推理过程中的网络层进行多次遍历,得到每一次遍历后的目标网络层,对目标网络层执行目标操作,得到目标模型i,直至目标模型i满足遍历结束条件,则结束遍历,得到最终的目标模型。
举例而言,针对自动驾驶的应用场景,初始模型为目标检测神经网络模型,其中,目标检测神经网络模型用于在车辆行驶过程中检测目标障碍物,通过本公开提出的模型处理方法,可以向计算图优化引擎中注册剪枝操作插件/融合操作插件,将目标检测神经网络模型的配置文件,可选地,配置文件可以为开放神经网络交换(Open Neural NetworkExchange,简称ONNX)格式,用于描述模型中网络层各个层的类型、权重、上游层、下游层信息的规范,可以将目标检测神经网络模型的配置文件输入到计算图优化引擎中,计算图优化引擎会逐层识别目标检测神经网络模型的网络层类型、上游层信息和下游层信息,如果符合剪枝操作插件/融合操作插件中定义的规则,即本公开提出的预设规则库中的规则,根据规则对相应的关联层执行剪枝/融合操作,输出的目标检测神经网络模型的模型层数更少以及计算密度更强的神经网络,同时,计算图优化引擎可以迭代式进行计算图优化,将上次迭代输出模型,继续作为输入,进行迭代优化,直到满足结束条件,例如:输出得到的模型的网络层数的位置不再变化,最终获取到一个网络层数更少,推理延迟更小的目标检测神经网络模型,提高了目标检测神经网络模型的推理速度。
综上,本公开提出的模型处理方法,通过构建预设规则库,可以对目标网路层组和预设规则库中所包括的网络层组进行匹配,以确定是否对第一目标网络层和第二目标网络层执行剪枝/融合操作,并且可以根据匹配结果,确定具体确定对第一目标网络层和第二目标网络层执行剪枝/融合操作,提高了对模型处理过程中的效率,进而提高了模型的推理速度。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种模型处理装置,用于实现上述的模型处理方法。
图4是根据本公开一实施例的模型处理装置的框图。
如图4所示,模型处理装置400,包括:获取模块401、判断模块402和执行模块403。
获取模块401,用于获取初始模型在模型推理过程中参与矩阵运算的第一目标网络层,并确定与所述第一目标网络层相邻的第二目标网络层;
判断模块402,用于根据所述第一目标网络层和所述第二目标网络层,判断是否对所述第一目标网络层和所述第二目标网络层执行目标操作,其中,所述目标操作包括剪枝和融合中的至少一种;
执行模块403,用于在确定对所述第一目标网络层和所述第二目标网络层执行目标操作后,对所述第一目标网络层和所述第二目标网络层执行目标操作,得到目标模型。
在本公开的一个实施例中,判断模块402,用于:获取所述第一目标网络层和所述第二目标网络层构成的目标网络层组;对所述目标网路层组和预设规则库中所包括的网络层组进行匹配;响应于所述目标网络层组与所述预设规则库中所包括的至少一个网络层组匹配成功,确定对所述第一目标网络层和所述第二目标网络层执行目标操作。
在本公开的一个实施例中,其中,所述预设规则库中包括第一网络层组集合和第二网络层组集合,所述第一网络层组集合中包括多个可融合的第一网络层组,所述第二网络层组集合中包括多个可剪枝的第二网络层组。
在本公开的一个实施例中,执行模块403,用于:若所述目标网络层组与所述第一网络层组集合中的任一个第一网络层组匹配成功,确定对所述第一目标网络层和所述第二目标网络层执行融合操作;若所述目标网络层组与所述第二网络层集合中的任一个第二网络层组匹配成功,确定对所述第一目标网络层和所述第二目标网络层执行剪枝操作。
在本公开的一个实施例中,执行模块403,用于:对所述初始模型在模型推理过程中的网络层进行多次遍历,得到每一次遍历后的目标网络层;对所述目标网络层执行目标操作,得到目标模型i,直至所述目标模型i满足遍历结束条件,则结束遍历,得到最终的目标模型。
在本公开的一个实施例中,获取模块401,还用于:获取所述初始模型所包括的网络层,从所述网络层中筛选出参与矩阵运算的第一目标网络层。
在本公开的一个实施例中,获取模块401,还用于:获取所述初始模型的模型文件;根据所述模型文件,获取所述初始模型所包括的网络层。
在本公开的一个实施例中,获取模块401,还用于:根据所述模型文件,获取所述初始模型所包括的网络层的类型;针对每类网络层的类型,从所述网络层中筛选出参与矩阵运算的第一目标网络层。
本公开提出的模型处理装置,通过获取初始模型在模型推理过程中参与矩阵运算的第一目标网络层,并确定与第一目标网络层相邻的第二目标网络层,根据第一目标网络层和第二目标网络层,判断是否对第一目标网络层和第二目标网络层执行目标操作,其中,目标操作包括剪枝和融合中的至少一种;在确定对第一目标网络层和第二目标网络层执行目标操作后,对第一目标网络层和第二目标网络层执行目标操作,得到目标模型,由此,本公开可以自动地判断是否对第一目标网络层和第二目标网络层执行剪枝/融合操作,提高了对模型处理过程中的效率,进而提高了模型的推理速度。
根据本公开的实施例,本公开还提出了一种电子设备、一种可读存储介质和一种计算机程序产品。
图5示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元506,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如模型处理方法。例如,在一些实施例中,模型处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由计算单元501执行时,可以执行上文描述的模型处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行模型处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提出给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提出与用户账号的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户账号显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户账号可以通过该键盘和该指向装置来将输入提出给计算机。其它种类的装置还可以用于提出与用户账号的交互;例如,提出给用户账号的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户账号的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户账号界面或者网络浏览器的用户账号计算机,用户账号可以通过该图形用户账号界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
根据本公开的实施例,本公开还提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现本公开上述实施例所述的模型处理方法的步骤。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (19)
1.一种模型处理方法,其中,所述方法,包括:
获取初始模型在模型推理过程中参与矩阵运算的第一目标网络层,并确定与所述第一目标网络层相邻的第二目标网络层;
根据所述第一目标网络层和所述第二目标网络层,判断是否对所述第一目标网络层和所述第二目标网络层执行目标操作,其中,所述目标操作包括剪枝和融合中的至少一种;
在确定对所述第一目标网络层和所述第二目标网络层执行目标操作后,对所述第一目标网络层和所述第二目标网络层执行目标操作,得到目标模型。
2.根据权利要求1所述的方法,其中,所述根据所述第一目标网络层和所述第二目标网络层,判断是否对所述第一目标网络层和所述第二目标网络层执行目标操作,包括:
获取所述第一目标网络层和所述第二目标网络层构成的目标网络层组;
对所述目标网路层组和预设规则库中所包括的网络层组进行匹配;
响应于所述目标网络层组与所述预设规则库中所包括的至少一个网络层组匹配成功,确定对所述第一目标网络层和所述第二目标网络层执行目标操作。
3.根据权利要求2所述的方法,其中,所述预设规则库中包括第一网络层组集合和第二网络层组集合,所述第一网络层组集合中包括多个可融合的第一网络层组,所述第二网络层组集合中包括多个可剪枝的第二网络层组。
4.根据权利要求3所述的方法,其中,所述在确定对所述第一目标网络层和所述第二目标网络层执行目标操作后,对所述第一目标网络层和所述第二目标网络层执行目标操作,包括:
若所述目标网络层组与所述第一网络层组集合中的任一个第一网络层组匹配成功,确定对所述第一目标网络层和所述第二目标网络层执行融合操作;
若所述目标网络层组与所述第二网络层集合中的任一个第二网络层组匹配成功,确定对所述第一目标网络层和所述第二目标网络层执行剪枝操作。
5.根据权利要求1-4中任一项所述的方法,其中,所述对所述第一目标网络层和所述第二目标网络层执行目标操作,得到目标模型,还包括:
对所述初始模型在模型推理过程中的网络层进行多次遍历,得到每一次遍历后的目标网络层;
对所述目标网络层执行目标操作,得到目标模型i,直至所述目标模型i满足遍历结束条件,则结束遍历,得到最终的目标模型。
6.根据权利要求1所述的方法,其中,所述获取初始模型在模型推理过程中参与矩阵运算的第一目标网络层,包括:
获取所述初始模型所包括的网络层,从所述网络层中筛选出参与矩阵运算的第一目标网络层。
7.根据权利要求6所述的方法,其中,所述获取所述初始模型所包括的网络层,包括:
获取所述初始模型的模型文件;
根据所述模型文件,获取所述初始模型所包括的网络层。
8.根据权利要求6所述的方法,其中,所述从所述网络层中筛选出参与矩阵运算的第一目标网络层,包括:
根据所述模型文件,获取所述初始模型所包括的网络层的类型;
针对每类网络层的类型,从所述网络层中筛选出参与矩阵运算的第一目标网络层。
9.一种模型处理装置,其中,所述装置,包括:
获取模块,用于获取初始模型在模型推理过程中参与矩阵运算的第一目标网络层,并确定与所述第一目标网络层相邻的第二目标网络层;
判断模块,用于根据所述第一目标网络层和所述第二目标网络层,判断是否对所述第一目标网络层和所述第二目标网络层执行目标操作,其中,所述目标操作包括剪枝和融合中的至少一种;
执行模块,用于在确定对所述第一目标网络层和所述第二目标网络层执行目标操作后,对所述第一目标网络层和所述第二目标网络层执行目标操作,得到目标模型。
10.根据权利要求9所述的装置,其中,所述判断模块,用于:
获取所述第一目标网络层和所述第二目标网络层构成的目标网络层组;
对所述目标网路层组和预设规则库中所包括的网络层组进行匹配;
响应于所述目标网络层组与所述预设规则库中所包括的至少一个网络层组匹配成功,确定对所述第一目标网络层和所述第二目标网络层执行目标操作。
11.根据权利要求10所述的装置,其中,所述预设规则库中包括第一网络层组集合和第二网络层组集合,所述第一网络层组集合中包括多个可融合的第一网络层组,所述第二网络层组集合中包括多个可剪枝的第二网络层组。
12.根据权利要求11所述的装置,其中,所述执行模块,用于:
若所述目标网络层组与所述第一网络层组集合中的任一个第一网络层组匹配成功,确定对所述第一目标网络层和所述第二目标网络层执行融合操作;
若所述目标网络层组与所述第二网络层集合中的任一个第二网络层组匹配成功,确定对所述第一目标网络层和所述第二目标网络层执行剪枝操作。
13.根据权利要求9-12中任一项所述的装置,其中,所述执行模块,还用于:
对所述初始模型在模型推理过程中的网络层进行多次遍历,得到每一次遍历后的目标网络层;
对所述目标网络层执行目标操作,得到目标模型i,直至所述目标模型i满足遍历结束条件,则结束遍历,得到最终的目标模型。
14.根据权利要求9所述的装置,其中,所述获取模块,还用于:
获取所述初始模型所包括的网络层,从所述网络层中筛选出参与矩阵运算的第一目标网络层。
15.根据权利要求14所述的装置,其中,所述获取模块,还用于:
获取所述初始模型的模型文件;
根据所述模型文件,获取所述初始模型所包括的网络层。
16.根据权利要求14所述的装置,其中,所述获取模块,还用于:
根据所述模型文件,获取所述初始模型所包括的网络层的类型;
针对每类网络层的类型,从所述网络层中筛选出参与矩阵运算的第一目标网络层。
17.一种电子设备,其特征在于,包括处理器和存储器;
其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如权利要求1-8中任一项所述的方法。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一项所述的方法。
19.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311557871.9A CN117669686A (zh) | 2023-11-21 | 2023-11-21 | 模型处理方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311557871.9A CN117669686A (zh) | 2023-11-21 | 2023-11-21 | 模型处理方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117669686A true CN117669686A (zh) | 2024-03-08 |
Family
ID=90074428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311557871.9A Pending CN117669686A (zh) | 2023-11-21 | 2023-11-21 | 模型处理方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117669686A (zh) |
-
2023
- 2023-11-21 CN CN202311557871.9A patent/CN117669686A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113264066B (zh) | 障碍物轨迹预测方法、装置、自动驾驶车辆及路侧设备 | |
CN113705515B (zh) | 语义分割模型的训练和高精地图车道线的生成方法和设备 | |
CN115471805B (zh) | 点云处理和深度学习模型训练方法、装置及自动驾驶车辆 | |
CN115456167B (zh) | 轻量级模型训练方法、图像处理方法、装置及电子设备 | |
CN113641829A (zh) | 图神经网络的训练与知识图谱的补全方法、装置 | |
CN114715145B (zh) | 一种轨迹预测方法、装置、设备及自动驾驶车辆 | |
CN113887615A (zh) | 图像处理方法、装置、设备和介质 | |
CN113904943B (zh) | 账号检测方法、装置、电子设备和存储介质 | |
CN114818913A (zh) | 决策生成方法和装置 | |
CN113657468A (zh) | 预训练模型的生成方法、装置、电子设备和存储介质 | |
CN115687764B (zh) | 车辆轨迹评估模型的训练方法、车辆轨迹评估方法和装置 | |
CN116152702A (zh) | 点云标签的获取方法、装置、电子设备和自动驾驶车辆 | |
CN113591709B (zh) | 动作识别方法、装置、设备、介质和产品 | |
CN117669686A (zh) | 模型处理方法、装置和电子设备 | |
CN114817476A (zh) | 语言模型的训练方法、装置、电子设备和存储介质 | |
CN113591567A (zh) | 目标检测方法、目标检测模型的训练方法及其装置 | |
CN116884215B (zh) | 交通状态的预测、模型的生成方法、装置、设备及介质 | |
CN116842392B (zh) | 轨迹预测方法及其模型的训练方法、装置、设备及介质 | |
CN116416500B (zh) | 图像识别模型训练方法、图像识别方法、装置及电子设备 | |
CN114596552B (zh) | 信息处理方法、训练方法、装置、设备、车辆及介质 | |
CN113572679B (zh) | 账户亲密度的生成方法、装置、电子设备和存储介质 | |
CN114495236B (zh) | 图像分割方法、装置、设备、介质及程序产品 | |
CN112683216B (zh) | 用于生成车辆长度信息的方法、装置、路侧设备和云控平台 | |
CN115031750B (zh) | 阻断路段的状态确定方法、装置及计算机程序产品 | |
CN114926447B (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 |