CN116665020A - 基于算子融合的图像识别方法、装置、设备及存储介质 - Google Patents
基于算子融合的图像识别方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116665020A CN116665020A CN202310943802.5A CN202310943802A CN116665020A CN 116665020 A CN116665020 A CN 116665020A CN 202310943802 A CN202310943802 A CN 202310943802A CN 116665020 A CN116665020 A CN 116665020A
- Authority
- CN
- China
- Prior art keywords
- operator
- fusion
- fused
- operators
- visual model
- 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
- 230000004927 fusion Effects 0.000 title claims abstract description 230
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000000007 visual effect Effects 0.000 claims abstract description 103
- 238000010586 diagram Methods 0.000 claims abstract description 29
- 238000005457 optimization Methods 0.000 claims abstract description 29
- 238000012216 screening Methods 0.000 claims abstract description 21
- 238000011156 evaluation Methods 0.000 claims description 60
- 238000004364 calculation method Methods 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 20
- 238000001514 detection method Methods 0.000 claims description 10
- 230000011218 segmentation Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000001914 filtration Methods 0.000 claims description 3
- 230000006872 improvement Effects 0.000 abstract description 5
- 238000013528 artificial neural network Methods 0.000 description 7
- 238000013135 deep learning Methods 0.000 description 7
- 238000012549 training Methods 0.000 description 6
- 238000013136 deep learning model Methods 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007500 overflow downdraw method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 101150041570 TOP1 gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/86—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using syntactic or structural representations of the image or video pattern, e.g. symbolic string recognition; using graph matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- 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
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Image Analysis (AREA)
- Lining Or Joining Of Plastics Or The Like (AREA)
- Mechanical Coupling Of Light Guides (AREA)
Abstract
本发明提供了一种基于算子融合的图像识别方法、装置、电子设备及存储介质,通过获取用户输入的模型参数,建立视觉模型,并对视觉模型进行解析,获取算子连接图;根据预设的融合规则和算子连接图,获取全部可能的算子融合策略;再根据预设的优化目标函数,对算子融合策略进行筛选;根据筛选后的算子融合策略执行算子融合操作,获取融合后的视觉模型;再获取待识别图像,并将待识别图像输入所述融合后的视觉模型,通过融合后的视觉模型,输出图像识别结果。本发明通过对算子融合策略的计算复杂度进行筛选,以快速且高效的方法确定全局最优的算子融合策略,避免了陷入局部最优解的同时,实现了视觉模型计算效率的提升。
Description
技术领域
本申请实施例涉及深度学习技术领域,特别是涉及一种基于算子融合的图像识别方法、装置、设备及存储介质。
背景技术
深度神经网络(Deep Neural Networks,DNNs)已经成为移动设备上许多主要应用的核心推动力。为了达到高精确度,DNN模型变得越来越复杂,有数百甚至数千的算子层,导致推理需要的内存和计算要求越来越高。基于此,算子融合(或内核/层融合)是许多先进DNN模型执行框架的关键优化,旨在提高DNN模型的图像识别的效率。
因此,算子融合技术的发展尤为关键。深度学习模型尤其是视觉模型中的算子数目多样,且结构各异。为了提升图像识别效率,常常需要进行算子融合操作。然而,传统的算子融合方法通常需要人工进行,使得融合效率低下;且算子融合的策略多种多样,最终进行算子融合后的视觉模型是否能提高图像识别效率,或者说,是否能最大限度的提高模型的图像识别效率,其完全依赖于进行算子融合操作人员的经验判断,这就使得对于算子融合后的实际视觉模型所能提升的图像识别效率存在一定的局限性和不确定性。
发明内容
本发明提供了一种基于算子融合的图像识别方法、装置、电子设备及存储介质,通过筛选计算复杂度较低的算子融合策略,使得进行算子融合后的模型实现了图像识别效率的提升。
第一方面,本发明提供了一种基于算子融合的图像识别方法,包括如下步骤:
获取用户输入的模型参数,并根据所述模型参数,建立视觉模型,并对所述视觉模型进行解析,获取算子连接图;
根据预设的融合规则和所述算子连接图,获取全部可能的算子融合策略;
根据预设的优化目标函数,对所述算子融合策略进行筛选,其中,筛选后的算子融合策略指示当前算子融合策略的计算复杂度最低;
根据所述筛选后的算子融合策略执行算子融合操作,获取融合后的视觉模型;
获取待识别图像,并将所述待识别图像输入所述融合后的视觉模型,通过所述融合后的视觉模型,输出图像识别结果。
进一步地,所述获取全部可能的算子融合策略,还包括:
根据所述算子融合规则,获取全部可能融合的算子连接组;
对所述视觉模型中的全部算子进行遍历,若所述算子存在于所述可能融合的算子连接组,则进行融合选择判断,若选择根据所述算子连接组进行该算子的融合,则记录融合后的算子,若选择不融合该算子,则记录该算子;
当所述全部算子遍历结束后,生成融合算子连接图,其中,所述融合算子连接图包括全部可能的算子融合策略。
进一步地,所述对所述算子融合策略进行筛选,还包括:
根据所述融合算子连接图,通过所述优化目标函数公式,获取所述融合算子连接图的计算复杂度,其中,所述优化目标函数公式为:
其中,op(i) fused为融合后的算子,op(i) org为无法融合的算子,n为所有算子的数量,TC(.)为时间复杂度,SC(.)为空间复杂度;
获取计算复杂度最小的融合算子连接图,并确认该融合算子连接图所对应的算子融合策略为筛选后的算子融合策略。
进一步地,获取融合后的视觉模型后,还包括:
根据预设的视觉任务与评价指标的对应关系,获取所述视觉模型的评价指标,其中所述视觉任务包括目标分类任务、目标检测任务、目标分割任务以及目标跟踪任务,所述评价指标包括精度评价和速度评价;
根据所述评价指标,对所述融合后的视觉模型进行评价,并根据评价后的评价结果与预设目标评价结果之间的对比,通过模型微调方法,对所述融合后的视觉模型参数进行优化。
第二方面,本发明还提供了一种基于算子融合的图像识别装置,包括:
算子连接图获取模块,用于获取用户输入的模型参数,并根据所述模型参数,建立视觉模型,并对所述视觉模型进行解析,获取算子连接图;
算子融合策略获取模块,用于根据预设的融合规则和所述算子连接图,获取全部可能的算子融合策略;
融合策略筛选模块,用于根据预设的优化目标函数,对所述算子融合策略进行筛选,其中,筛选后的算子融合策略指示当前算子融合策略的计算复杂度最低;
算子融合模块,用于根据所述筛选后的算子融合策略执行算子融合操作,获取融合后的视觉模型;
图像识别模块,用于获取待识别图像,并将所述待识别图像输入所述融合后的视觉模型,通过所述融合后的视觉模型,输出图像识别结果。
进一步地,所述算子融合策略获取模块,还包括:
算子链接组获取单元,用于根据所述算子融合规则,获取全部可能融合的算子连接组;
融合选择判断单元,用于对所述视觉模型中的全部算子进行遍历,若所述算子存在于所述可能融合的算子连接组,则进行融合选择判断,若选择根据所述算子连接组进行该算子的融合,则记录融合后的算子,若选择不融合该算子,则记录该算子;
融合算子连接图生成单元,用于当所述全部算子遍历结束后,生成融合算子连接图,其中,所述融合算子连接图包括全部可能的算子融合选择。
进一步地,所述融合策略筛选模块,还包括:
计算复杂度获取单元,用于根据所述融合算子连接图,通过所述优化目标函数公式,获取所述融合算子连接图的计算复杂度,其中,所述优化目标函数公式为:
其中,op(i) fused为融合后的算子,op(i) org为无法融合的算子,n为所有算子的数量,TC(.)为时间复杂度,SC(.)为空间复杂度;
筛选后的算子融合策略获取单元,用于获取计算复杂度最小的融合算子连接图,并确认该融合算子连接图所对应的算子融合策略为筛选后的算子融合策略。
进一步地,还包括:
评价指标获取单元,用于根据预设的视觉任务与评价指标的对应关系,获取所述视觉模型的评价指标,其中所述视觉任务包括目标分类任务、目标检测任务、目标分割任务以及目标跟踪任务,所述评价指标包括精度评价和速度评价;
参数优化单元,用于根据所述评价指标,对所述融合后的视觉模型进行评价,并根据评价后的评价结果与预设目标评价结果之间的对比,通过模型微调方法,对所述融合后的视觉模型参数进行优化。
第三方面,本申请实施例提供一种电子设备,包括:
至少一个存储器以及至少一个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如第一方面所述的一种基于算子融合的图像识别方法的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的一种基于算子融合的图像识别方法的步骤。
本发明通过获取用户输入的模型参数,建立视觉模型,并对视觉模型进行解析,获取算子连接图;根据预设的融合规则和算子连接图,获取全部可能的算子融合策略;再根据预设的优化目标函数,对算子融合策略进行筛选;根据筛选后的算子融合策略执行算子融合操作,获取融合后的视觉模型;再获取待识别图像,并将待识别图像输入所述融合后的视觉模型,通过融合后的视觉模型,输出图像识别结果。本发明通过对算子融合策略的计算复杂度进行筛选,将计算复杂度最低的算子融合策略为确定全局最优的算子融合策略,保证了据此融合后的视觉模型的空间复杂度和时间复杂度最低,因而在避免陷入局部最优解的同时,实现了视觉模型计算效率的提升,进而实现图像识别速度的提升。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图说明
图1为在一个示例性的实施例中提供的一种基于算子融合的图像识别方法的步骤流程图;
图2为在一个示例性的实施例中提供的一种基于视觉模型的图像识别方法的算子连接图和可能的融合策略示意图;
图3为在一个示例性的实施例中提供的一种基于视觉模型的图像识别方法的算子之间的依赖关系示意图;
图4为在一个示例性的实施例中提供的一种基于算子融合的图像识别装置的模块示意图;
图5为在一个示例性的实施例中提供的一种电子设备的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
应当明确,所描述的实施例仅仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请实施例保护的范围。
在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
正如背景技术中所言,深度神经网络(DNN),如卷积神经网络(CNN)和递归神经网络(RNN)已经成为最先进技术的基础和许多应用的核心推动者。深度学习成功的背后是越来越大的模型规模和复杂的模型结构,需要巨大的计算和内存资源。也因此,在DNN在为提高精度而不断增加复杂性和为扩大范围所需而在资源有限的移动设备上部署这些DNN之间,存在着权衡的困难。
深度学习算法由一个个计算单元组成,这些计算单元即为算子(Operator,OP)。在网络模型中,算子对应层中的计算逻辑,例如:卷积层(Convolution Layer)是一个算子;全连接层(Fully-connected Layer, FC layer)中的权值求和过程,也是一个算子。通过算子融合(或内核/层融合)作为提高DNN执行效率的方法,可以消除不必要的中间结果实例化,减少不必要的输入扫描,同时也能够实现其他优化机会。
传统的端到端框架,例如TensorFlow Lite、TVM、MNN和Pytorch-Mobile都有算子融合优化,但这些优化大致是基于识别某些融合模式。而深度学习模型中,尤其是是视觉模型中的算子数目多样,且结构各异,对于基于视觉模型的深度学习为提升计算效率一样需要进行算子融合操作,但显然传动的端到端框架中所应用的算子融合方法无法满足深度学习模型的需要。因此,现有的基于视觉模型的深度学习模型中的算子融合往往需要人工来进行识别和操作,人工操作不仅效率地下而且容易失误,探索一种自动进行算子融合的方法具有重要意义。
基于上述思考及背景技术中的内容,如图1所示,本申请实施例提供了一种基于算子融合的图像识别方法,包括如下方法步骤:
S201:获取用户输入的模型参数,并根据所述模型参数,建立视觉模型,并对所述视觉模型进行解析,获取算子连接图。
算子即是视觉模型中的计算单元,每一个算子都对应一种计算逻辑,因此对于该视觉模型的解析可以基于在搭建该视觉模型时的构建逻辑,并根据构建逻辑生成算子连接图;也可以基于对视觉模型整体模型架构的识别,将深度神经网络的架构到处,精细到每一个网络层。
具体的,如图2所示,图2为在一个示例性的例子中示出的视觉模型算子连接图,其中包含不同的算子和表示算子间数据传输与先后关系的有向边。从图2中可以清晰得知,对于解析后的该视觉模型,Conv1算子连接了BN1算子和Pool1算子;Pool1算子连接了Conv2算子;BN1算子连接了Act1算子,Act1算子连接了Conv3算子;数据Data从Conv1算子输入,所有算子及其之间的有向边形成了一个有向无环图。
S202:根据预设的融合规则和所述算子连接图,获取全部可能的算子融合策略。
具体的,预设的融合规则基于算子类型、算子连接方式以及算子的计算复杂度。算子类型包括但不限于ReLU、LeakyReLU、ReLU6、Tanh、sigmoid、PReLU、Tensor之间的计算(加、减、乘、除,bias相加、矩阵乘等)、归一化(BatchNorm、LRN(Local ResponseNormalization)、卷积、全连接、池化层等。算子连接方式包括单入单出,多入单出,单入多出,多入多出。算子的计算复杂度主要通过计算算子的时间复杂度(计算量/FLOPs)和空间复杂度(访存量/Bytes)。计算量即算子内部浮点运算的计算次数,访存量即算子的参数数量。
对于可能融合的算子,存在融合与不融合两种选择,将每一种算子可能的融合选择进行排列组合,即获取全部可能的算子融合策略。
在本申请实施例中,算子融合规则为根据各算子之间的依赖关系确定的融合规则。如图3所示,图3为部分算子之间的依赖关系示意图,其中,在该关系表中,同一行中带有圆圈标识的算子是可以融合的,否则是不能融合的。根据算子之间的依赖关系,可以把相邻的存在数据依赖的算子进行循环空间深度融合,使得中间数据访问退化为局部变量、甚至寄存器变量,从而大幅减少访存开销。在一些其他的例子中,相邻算子节点是否可融合受限于待融合算子的循环是否可以进行有效的循环合并,因而也可以将相互依赖的算子通过层次化的存储媒介进一步“缝合”在一起,而不再依赖融合算子循环空间的深度合并。
在一个优选的例子中,通过遍历算子的方式生成全部可能的算子融合策略。具体的,根据所述算子融合规则,获取全部可能融合的算子连接组;对所述视觉模型中的全部算子进行遍历,若所述算子存在于所述可能融合的算子连接组,则进行融合选择判断,若选择根据所述算子连接组进行该算子的融合,则记录融合后的算子,若选择不融合该算子,则记录该算子;当所述全部算子遍历结束后,生成融合算子连接图,其中,所述融合算子连接图包括全部可能的算子融合策略。这个遍历过程保证所有的可融合算子均被尝试,并且保证各种可能的融合算子不会冲突。
如图2所示,图2在一个示例性的例子中可能的算子融合策略示意图。在第一种融合策略中,Conv1算子与BN1算子融合,生成Conv-BN算子,因而第一种融合策略中算子之间的连接关系变为Conv-BN算子与Act1算子和Pool1算子连接,Pool1算子与Conv2算子连接,Act1算子与Conv3算子连接。在第二种融合策略中,Conv1算子与Pool1算子融合生成Conv-Pool算子,因而第二种融合策略中算子之间的连接关系变为Conv-Pool算子与BN1算子和Conv2算子连接,BN1算子连接了Act1算子,Act1算子连接了Conv3算子。
S203:根据预设的优化目标函数,对所述算子融合策略进行筛选,其中,筛选后的算子融合策略指示当前算子融合策略的计算复杂度最低。
在一个优选的实施例中,通过计算算子融合策略的空间复杂度和时间复杂度,来筛选使得视觉模型整体复杂度最低、计算量最低的算子融合策略。具体的,根据所述融合算子连接图,通过所述优化目标函数公式,获取所述融合算子连接图的计算复杂度,其中,所述优化目标函数公式为:
其中,op(i) fused为融合后的算子,op(i) org为无法融合的算子,n为所有算子的数量,TC(.)为时间复杂度,SC(.)为空间复杂度;
获取计算复杂度最小的融合算子连接图,并确认该融合算子连接图所对应的算子融合策略为筛选后的算子融合策略。
S204:根据所述筛选后的算子融合策略执行算子融合操作,获取融合后的视觉模型。
在具体的应用场景中,执行融合操作可以使用特定的优化库或工具,例如TensorRT、ONNX等,其中,TensorRT是一款高性能深度学习推理SDK,包含深度学习推理优化器和运行环境,可为深度学习推理应用提供低延迟和高吞吐量;ONNX(Open NeuralNetwork Exchange),即开放神经网络交换,是一种表示深度学习模型的开放格式,其定义了一组和环境、平台均无关的标准格式,来增强各种AI模型的可交互性,无论使用何种训练框架训练模型,在训练完毕后都可以将这些框架的模型统一转换为ONNX这种统一的格式进行存储。
S205:获取待识别图像,并将所述待识别图像输入所述融合后的视觉模型,通过所述融合后的视觉模型,输出图像识别结果。
具体的,不同的视觉任务包括但不限于:目标分类任务、目标检测任务、目标分割任务以及目标跟踪任务等。不同的任务的精度评价方式不一样,例如目标分类任务使用的精度评价指标为Top1 Score或分类准确率,目标检测任务使用的精度评价指标不仅需要判断目标是否检测正确,还需要考虑预测框与ground-truth之间的误差。对于不同的视觉任务,评价的速度的方式相同,即计算一秒内能够识别多少张图片(FPS)。
在一个具体的例子中,以目标检测模型为例,评价其精度所用的计算公式如下:
其中AP表示单个类别的检测精度,Num_classes代表类别数。
评价其速度的计算公式如下:
其中N代表执行了N张的目标检测任务,T代表检测N张图片所用的时间。
根据上述评价结果,对视觉模型进行微调。具体的,微调的方法可以是先对模型进行大学习率的训练,随后进行小学习率的训练;也可以是加载预训练模型,并冻结网络模型的前N层,仅训练后几层,以达到微调的目的。
本申请实施例通过获取用户输入的模型参数,建立视觉模型,并对视觉模型进行解析,获取算子连接图;根据预设的融合规则和算子连接图,获取全部可能的算子融合策略;再根据预设的优化目标函数,对算子融合策略进行筛选;根据筛选后的算子融合策略执行算子融合操作,获取融合后的视觉模型;再获取待识别图像,并将待识别图像输入所述融合后的视觉模型,通过融合后的视觉模型,输出图像识别结果。本申请实施例通过对算子融合策略的计算复杂度进行筛选,将计算复杂度最低的算子融合策略为确定全局最优的算子融合策略,保证了据此融合后的视觉模型的空间复杂度和时间复杂度最低,因而在避免陷入局部最优解的同时,实现了视觉模型计算效率的提升,进而实现图像识别速度的提升。
本申请实施例还提供了一种基于算子融合的图像识别装置300,如图4所示,包括:
算子连接图获取模块301,用于获取用户输入的模型参数,并根据所述模型参数,建立视觉模型,并对所述视觉模型进行解析,获取算子连接图;
算子融合策略获取模块302,用于根据预设的融合规则和所述算子连接图,获取全部可能的算子融合策略;
融合策略筛选模块303,用于根据预设的优化目标函数,对所述算子融合策略进行筛选,其中,筛选后的算子融合策略指示当前算子融合策略的计算复杂度最低;
算子融合模块304,用于根据所述筛选后的算子融合策略执行算子融合操作,获取融合后的视觉模型;
图像识别模块305,用于获取待识别图像,并将所述待识别图像输入所述融合后的视觉模型,通过所述融合后的视觉模型,输出图像识别结果。
在一个示例性的例子中,算子融合策略获取模块302,还包括:
算子链接组获取单元,用于根据所述算子融合规则,获取全部可能融合的算子连接组;
融合选择判断单元,用于对所述视觉模型中的全部算子进行遍历,若所述算子存在于所述可能融合的算子连接组,则进行融合选择判断,若选择根据所述算子连接组进行该算子的融合,则记录融合后的算子,若选择不融合该算子,则记录该算子;
融合算子连接图生成单元,用于当所述全部算子遍历结束后,生成融合算子连接图,其中,所述融合算子连接图包括全部可能的算子融合选择。
在一个示例性的例子中,融合策略筛选模块303,还包括:
计算复杂度获取单元,用于根据所述融合算子连接图,通过所述优化目标函数公式,获取所述融合算子连接图的计算复杂度,其中,所述优化目标函数公式为:
其中,op(i) fused为融合后的算子,op(i) org为无法融合的算子,n为所有算子的数量,TC(.)为时间复杂度,SC(.)为空间复杂度;
筛选后的算子融合策略获取单元,用于获取计算复杂度最小的融合算子连接图,并确认该融合算子连接图所对应的算子融合策略为筛选后的算子融合策略。
在一个示例性的例子中,一种基于算子融合的图像识别装置300,还包括:
评价指标获取单元,用于根据预设的视觉任务与评价指标的对应关系,获取所述视觉模型的评价指标,其中所述视觉任务包括目标分类任务、目标检测任务、目标分割任务以及目标跟踪任务,所述评价指标包括精度评价和速度评价;
参数优化单元,用于根据所述评价指标,对所述融合后的视觉模型进行评价,并根据评价后的评价结果与预设目标评价结果之间的对比,通过模型微调方法,对所述融合后的视觉模型参数进行优化。
如图5所示,图5是本申请实施例根据一示例性实施例示出的一种电子设备的结构框图。
所述电子设备包括处理器910和存储器920。该主控芯片中处理器910的数量可以是一个或者多个,图5中以一个处理器910为例。该主控芯片中存储器920的数量可以是一个或者多个,图5中以一个存储器920为例。
存储器920作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例任意实施例所述的一种基于算子融合的图像识别方法程序,以及本申请实施例任意实施例所述的一种基于算子融合的图像识别方法对应的程序指令/模块。存储器920可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器920可进一步包括相对于处理器910远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器910通过运行存储在存储器920中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述任一实施例所记载的一种基于算子融合的图像识别方法。
本申请实施例还提供了一种计算机可读存储介质,其上储存有计算机程序,该计算机程序被处理器执行时实现上述任意一个实施例所述的一种基于算子融合的图像识别方法。
本发明可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可读储存介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其它数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其它类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其它内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其它光学存储、磁盒式磁带,磁带磁磁盘存储或其它磁性存储设备或任何其它非传输介质,可用于存储可以被计算设备访问的信息。
应当理解的是,本申请实施例并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请实施例的范围仅由所附的权利要求来限制。
以上所述实施例仅表达了本申请实施例的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请实施例构思的前提下,还可以做出若干变形和改进,这些都属于本申请实施例的保护范围。
Claims (10)
1.一种基于算子融合的图像识别方法,其特征在于,包括如下步骤:
获取用户输入的模型参数,并根据所述模型参数,建立视觉模型,并对所述视觉模型进行解析,获取算子连接图;
根据预设的融合规则和所述算子连接图,获取全部可能的算子融合策略;
根据预设的优化目标函数,对所述算子融合策略进行筛选,其中,筛选后的算子融合策略指示当前算子融合策略的计算复杂度最低;
根据所述筛选后的算子融合策略执行算子融合操作,获取融合后的视觉模型;
获取待识别图像,并将所述待识别图像输入所述融合后的视觉模型,通过所述融合后的视觉模型,输出图像识别结果。
2.根据权利要求1所述的一种基于算子融合的图像识别方法,其特征在于,所述获取全部可能的算子融合策略,还包括:
根据所述算子融合规则,获取全部可能融合的算子连接组;
对所述视觉模型中的全部算子进行遍历,若所述算子存在于所述可能融合的算子连接组,则进行融合选择判断,若选择根据所述算子连接组进行该算子的融合,则记录融合后的算子,若选择不融合该算子,则记录该算子;
当所述全部算子遍历结束后,生成融合算子连接图,其中,所述融合算子连接图包括全部可能的算子融合策略。
3.根据权利要求2所述的一种基于算子融合的图像识别方法,其特征在于,所述对所述算子融合策略进行筛选,还包括:
根据所述融合算子连接图,通过所述优化目标函数公式,获取所述融合算子连接图的计算复杂度,其中,所述优化目标函数公式为:
其中,op(i) fused 为融合后的算子,op(i) org为无法融合的算子,n为所有算子的数量,TC(.)为时间复杂度,SC(.)为空间复杂度;
获取计算复杂度最小的融合算子连接图,并确认该融合算子连接图所对应的算子融合策略为筛选后的算子融合策略。
4.根据权利要求1所述的一种基于算子融合的图像识别方法,其特征在于,获取融合后的视觉模型后,还包括:
根据预设的视觉任务与评价指标的对应关系,获取所述视觉模型的评价指标,其中所述视觉任务包括目标分类任务、目标检测任务、目标分割任务以及目标跟踪任务,所述评价指标包括精度评价和速度评价;
根据所述评价指标,对所述融合后的视觉模型进行评价,并根据评价后的评价结果与预设目标评价结果之间的对比,通过模型微调方法,对所述融合后的视觉模型参数进行优化。
5.一种基于算子融合的图像识别装置,其特征在于,包括:
算子连接图获取模块,用于获取用户输入的模型参数,并根据所述模型参数,建立视觉模型,并对所述视觉模型进行解析,获取算子连接图;
算子融合策略获取模块,用于根据预设的融合规则和所述算子连接图,获取全部可能的算子融合策略;
融合策略筛选模块,用于根据预设的优化目标函数,对所述算子融合策略进行筛选,其中,筛选后的算子融合策略指示当前算子融合策略的计算复杂度最低;
算子融合模块,用于根据所述筛选后的算子融合策略执行算子融合操作,获取融合后的视觉模型;
图像识别模块,用于获取待识别图像,并将所述待识别图像输入所述融合后的视觉模型,通过所述融合后的视觉模型,输出图像识别结果。
6.根据权利要求5所述的一种基于算子融合的图像识别装置,其特征在于,所述算子融合策略获取模块,还包括:
算子链接组获取单元,用于根据所述算子融合规则,获取全部可能融合的算子连接组;
融合选择判断单元,用于对所述视觉模型中的全部算子进行遍历,若所述算子存在于所述可能融合的算子连接组,则进行融合选择判断,若选择根据所述算子连接组进行该算子的融合,则记录融合后的算子,若选择不融合该算子,则记录该算子;
融合算子连接图生成单元,用于当所述全部算子遍历结束后,生成融合算子连接图,其中,所述融合算子连接图包括全部可能的算子融合选择。
7.根据权利要求6所述的一种基于算子融合的图像识别装置,其特征在于,所述融合策略筛选模块,还包括:
计算复杂度获取单元,用于根据所述融合算子连接图,通过所述优化目标函数公式,获取所述融合算子连接图的计算复杂度,其中,所述优化目标函数公式为:
其中,op(i) fused 为融合后的算子,op(i) org为无法融合的算子,n为所有算子的数量,TC(.)为时间复杂度,SC(.)为空间复杂度;
筛选后的算子融合策略获取单元,用于获取计算复杂度最小的融合算子连接图,并确认该融合算子连接图所对应的算子融合策略为筛选后的算子融合策略。
8.根据权利要求5所述的一种基于算子融合的图像识别装置,其特征在于,还包括:
评价指标获取单元,用于根据预设的视觉任务与评价指标的对应关系,获取所述视觉模型的评价指标,其中所述视觉任务包括目标分类任务、目标检测任务、目标分割任务以及目标跟踪任务,所述评价指标包括精度评价和速度评价;
参数优化单元,用于根据所述评价指标,对所述融合后的视觉模型进行评价,并根据评价后的评价结果与预设目标评价结果之间的对比,通过模型微调方法,对所述融合后的视觉模型参数进行优化。
9.一种电子设备,其特征在于,包括:
至少一个存储器以及至少一个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1至4任一项所述的一种基于算子融合的图像识别方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的一种基于算子融合的图像识别方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310943802.5A CN116665020B (zh) | 2023-07-31 | 2023-07-31 | 基于算子融合的图像识别方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310943802.5A CN116665020B (zh) | 2023-07-31 | 2023-07-31 | 基于算子融合的图像识别方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116665020A true CN116665020A (zh) | 2023-08-29 |
CN116665020B CN116665020B (zh) | 2024-04-12 |
Family
ID=87722793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310943802.5A Active CN116665020B (zh) | 2023-07-31 | 2023-07-31 | 基于算子融合的图像识别方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116665020B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324602A (zh) * | 2020-02-21 | 2020-06-23 | 上海软中信息技术有限公司 | 一种实现面向金融大数据分析可视化方法 |
CN112711422A (zh) * | 2020-12-31 | 2021-04-27 | 北京清微智能科技有限公司 | 一种神经网络编译的优化方法及系统 |
CN113420865A (zh) * | 2021-06-15 | 2021-09-21 | 之江实验室 | 一种基于多算子融合的深度神经网络推理加速方法和系统 |
CN114581710A (zh) * | 2022-03-04 | 2022-06-03 | 腾讯科技(深圳)有限公司 | 图像识别方法、装置、设备、可读存储介质及程序产品 |
CN115170638A (zh) * | 2022-07-13 | 2022-10-11 | 东北林业大学 | 一种双目视觉立体匹配网络系统及其构建方法 |
CN115240048A (zh) * | 2022-09-21 | 2022-10-25 | 之江实验室 | 面向图像分类的深度学习的算子定位融合方法及装置 |
CN115423082A (zh) * | 2022-09-26 | 2022-12-02 | 北京航空航天大学 | 一种硬件特性相关的深度模型计算图自动优化方法 |
EP4109240A1 (en) * | 2021-06-25 | 2022-12-28 | Intel Corporation | Fused instruction to accelerate performance of secure hash algorithm 2 (sha-2) workloads in a graphics environment |
CN115659281A (zh) * | 2022-11-16 | 2023-01-31 | 之江实验室 | 一种自适应加速算子融合的方法及装置 |
CN115756478A (zh) * | 2022-11-02 | 2023-03-07 | 中科寒武纪科技股份有限公司 | 计算图的算子自动融合方法及相关产品 |
CN115794874A (zh) * | 2022-11-16 | 2023-03-14 | 华东师范大学 | 一种异构数据库系统中加速gpu算子执行的方法及应用 |
US20230176550A1 (en) * | 2021-05-06 | 2023-06-08 | Strong Force Iot Portfolio 2016, Llc | Quantum, biological, computer vision, and neural network systems for industrial internet of things |
CN116258165A (zh) * | 2023-02-14 | 2023-06-13 | 河北工业大学 | 一种融合卷积及自注意力的多目标神经架构搜索方法 |
-
2023
- 2023-07-31 CN CN202310943802.5A patent/CN116665020B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324602A (zh) * | 2020-02-21 | 2020-06-23 | 上海软中信息技术有限公司 | 一种实现面向金融大数据分析可视化方法 |
CN112711422A (zh) * | 2020-12-31 | 2021-04-27 | 北京清微智能科技有限公司 | 一种神经网络编译的优化方法及系统 |
US20230176550A1 (en) * | 2021-05-06 | 2023-06-08 | Strong Force Iot Portfolio 2016, Llc | Quantum, biological, computer vision, and neural network systems for industrial internet of things |
CN113420865A (zh) * | 2021-06-15 | 2021-09-21 | 之江实验室 | 一种基于多算子融合的深度神经网络推理加速方法和系统 |
EP4109240A1 (en) * | 2021-06-25 | 2022-12-28 | Intel Corporation | Fused instruction to accelerate performance of secure hash algorithm 2 (sha-2) workloads in a graphics environment |
CN114581710A (zh) * | 2022-03-04 | 2022-06-03 | 腾讯科技(深圳)有限公司 | 图像识别方法、装置、设备、可读存储介质及程序产品 |
CN115170638A (zh) * | 2022-07-13 | 2022-10-11 | 东北林业大学 | 一种双目视觉立体匹配网络系统及其构建方法 |
CN115240048A (zh) * | 2022-09-21 | 2022-10-25 | 之江实验室 | 面向图像分类的深度学习的算子定位融合方法及装置 |
CN115423082A (zh) * | 2022-09-26 | 2022-12-02 | 北京航空航天大学 | 一种硬件特性相关的深度模型计算图自动优化方法 |
CN115756478A (zh) * | 2022-11-02 | 2023-03-07 | 中科寒武纪科技股份有限公司 | 计算图的算子自动融合方法及相关产品 |
CN115794874A (zh) * | 2022-11-16 | 2023-03-14 | 华东师范大学 | 一种异构数据库系统中加速gpu算子执行的方法及应用 |
CN115659281A (zh) * | 2022-11-16 | 2023-01-31 | 之江实验室 | 一种自适应加速算子融合的方法及装置 |
CN116258165A (zh) * | 2023-02-14 | 2023-06-13 | 河北工业大学 | 一种融合卷积及自注意力的多目标神经架构搜索方法 |
Non-Patent Citations (2)
Title |
---|
MATTHIAS BOEHM等: "On Optimizing Operator Fusion Plans for Large-Scale Machine Learning in SystemML", 《ARXIV》, 2 January 2018 (2018-01-02), pages 1 - 14 * |
于万国等: "分布式子空间局部链接随机向量函数链接网络", 《深圳大学学报(理工版)》, vol. 39, no. 6, 30 November 2022 (2022-11-30), pages 675 - 683 * |
Also Published As
Publication number | Publication date |
---|---|
CN116665020B (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11403554B2 (en) | Method and apparatus for providing efficient testing of systems by using artificial intelligence tools | |
CN114651261A (zh) | 用于持续学习的条件计算 | |
US20200401503A1 (en) | System and Method for Testing Artificial Intelligence Systems | |
CN113703775A (zh) | 一种编译方法、装置、设备及存储介质 | |
CN116976640B (zh) | 自动化业务生成方法、装置、计算机设备及存储介质 | |
CN110766151B (zh) | 一种基于场景的开放式神经网络模型管理系统 | |
EP3899757A1 (en) | Accurate and transparent path prediction using process mining | |
CN116151319A (zh) | 搜索神经网络集成模型的方法、装置和电子设备 | |
CN112527676A (zh) | 模型自动化测试方法、装置及存储介质 | |
CN116665020B (zh) | 基于算子融合的图像识别方法、装置、设备及存储介质 | |
Horvat et al. | Comparative Analysis of YOLOv5 and YOLOv6 Models Performance for Object Classification on Open Infrastructure: Insights and Recommendations | |
CN112085164A (zh) | 一种基于无锚框网络的区域推荐网络提取方法 | |
Alfarisi et al. | Automated Artificial Intelligence Algorithm Adoption AAIAA | |
Puangpontip et al. | On Using Deep Learning for Business Analytics: At what cost? | |
Zenz et al. | Aligning Models with Their Realization through Model-Based Systems Engineering | |
Garcea et al. | iNNvestigate-GUI-explaining neural networks through an interactive visualization tool | |
Malakar et al. | Maximum joint entropy and information-based collaboration of automated learning machines | |
CN102902519A (zh) | 一种基于动态系统实现复合断言计算的方法 | |
Schranz et al. | Designing cyber-physical systems with evolutionary algorithms | |
Jungmanna et al. | Towards Fusing Data and Expert Knowledge for Better-Informed Digital Twins: An Initial Framework | |
US20220189005A1 (en) | Automatic inspection using artificial intelligence models | |
Léonard | Performance exploration of the REST API using online GAN | |
CN114168216B (zh) | 一种参数调优方法、设备及存储介质 | |
CN115470640B (zh) | 基于流程树分解和轨迹匹配策略的合规性检测方法与系统 | |
US20230206054A1 (en) | Expedited Assessment and Ranking of Model Quality in Machine Learning |
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 |