CN114648123A - 一种卷积神经网络分层推理时间预测方法及装置 - Google Patents
一种卷积神经网络分层推理时间预测方法及装置 Download PDFInfo
- Publication number
- CN114648123A CN114648123A CN202210133010.7A CN202210133010A CN114648123A CN 114648123 A CN114648123 A CN 114648123A CN 202210133010 A CN202210133010 A CN 202210133010A CN 114648123 A CN114648123 A CN 114648123A
- Authority
- CN
- China
- Prior art keywords
- operator
- hierarchical
- layer
- model
- characteristic parameters
- 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
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种卷积神经网络分层推理时间预测方法及装置,首先采集各类卷积神经网络模型的分层算子信息,根据算子信息的特性确定多种分层类型,将算子信息划分到各分层类型中,采集平台框架信息;其次构建特征工程,提取每种分层类型下对应的卷积神经网络模型的层特征参数,以及提取平台框架信息中与推理时间相关的平台框架特征参数,将模型层特征参数与平台框架特征参数融合,构成多种分层类型的特征参数;最后进行推理时间预测,根据特征参数的数据特点对多种分层类型进行分类,将特征参数相同的分层类型划分成一组,对特征参数不同的分层类型单独划分为一组,对每组构建推理时间预测模型,用于卷积神经网络模型进行推理时间的预测。
Description
技术领域
本发明涉及人工智能技术领域,尤其是涉及一种卷积神经网络分层推理时间预测方法及装置。
背景技术
近年来,随着数据的爆发式增长、硬件算力的大幅提升和深度学习算法的日益成熟,人工智能技术迎来了井喷式的发展,已经在图像识别、目标检测、语音识别、知识图谱等一系列领域中取得了突破性进展,在机器人应用、工业制造、物联网等许多方面都有着巨大的应用价值。当前,深度学习模型在训练时大多使用GPU进行大规模并发计算以减少模型训练的时间;而在模型的应用上,则利用深度神经网络的推理能力,完成网络前向计算,并将此计算部署为应用服务,同时产生商业价值。深度学习模型在推理时,只包含前向计算过程,部署环境存在多样性。而用户的推理应用场景多种多样,比如在手机侧的推理需要对模型进行轻量化处理并且适配不同的硬件平台(Arm CPU、Mali GPU等),在机器人上的应用则需要结合边缘计算和云计算对模型推理过程进行加速,解决机器人本体算力有限的问题。有时候推理还需要多个模型联合起来共同完成,而这些模型在训练阶段可能是分别独立训练出来的。在推理运行时,针对特定的模型联合部署,需要综合考虑如何使模型联合推理的效能最大化。
针对深度学习模型的推理加速问题研究,主要分为模型压缩与模型的云边端协同推理加速。前者应用于手机移动端等算力极其受限的场景,会造成一定的推理精度损失,而后者常用于诸如机器人应用、物联网、自动驾驶等端侧算力受限,且推理任务较多的场景,可利用边缘计算节点和云服务器实现模型的推理加速而不会带来精度上的损失。在云边端推理加速的研究上,通常需要获取模型每一层的推理时间信息,以完成后续对模型的拆分处理。由于深度学习模型的层数多,部署环境多变,因此依靠实测模型分层的推理时间工作量巨大,目前,国内外的研究多集中在对模型推理时间的预测上,通过提取可能影响模型推理时间的特征参数,采用机器学习算法来进行模型分层以及整体的推理时间预测,包括MobiSys最佳论文《nn-Meter: Towards Accurate Latency Prediction of Deep-Learning Model Inference on Diverse Edge Devices》所述的nn-Meter推理时间预测系统,CF会议论文《Performance Prediction for Convolutional Neural Networks onEdge GPUs》所述的针对CNN网络的推理时间预测方法,以及IEEE BigData会议论文《Predicting the Computational Cost of Deep Learning Models》所述的逐层预测CNN模型的训练时间。
nn-Meter的关键思想是将整个模型划分为内核,然后执行内核级预测。nn-Meter建立在两个关键技术之上,从而可以准确预测不同模型在部署中的推理时间。一个是内核检测,即能够自动识别部署平台的优化策略,从而基于这些策略将模型分解为实际运行的内核。另一个则是自适应数据采样,即从整个设计空间中有效地采样最有益的配置,以高效构建准确的内核级延迟预测器。
Performance Prediction中采用了5种机器学习算法对CNN模型推理时间进行预测,并对特征参数做了重要性评估。论文中选取了11种特征,并通过XGBoost算法对其进行筛选,基于筛选出来的特征重要性再进行后续的推理时间预测。
Predicting the Computational Cost一文中以batch为单位,逐层预测CNN模型的训练时间,最后求和得到每个epoch中的模型训练时间。论文列举出了可能影响训练时间的特征分类,包括层类型、特定层的参数、硬件特征参数,并采用传统的线性回归算法进行预测。
上述方法存在如下几个问题:
(1)针对深度学习模型推理时间预测问题,最关键也是最有挑战的一步是筛选特征参数并进行特征工程处理,现有技术都是把所有影响因子通盘考虑再进行统一的筛选,这样会导致特征矩阵有大量的零元素,从而使得特征工程的结果不佳;
(2)现有的方法都是建立一个预测模型来对模型每层的推理时间进行预测,而深度学习模型层的类型差异很大,导致影响每一层推理时间的因素不尽相同,依赖一个预测模型对所有层来进行预测会导致部分层的预测精度很低。
在实际应用场景中,训练好的卷积神经网络模型在实际部署中的延迟(推理时间)是决定该图像分类模型是否可用的一个重要指标,现有技术中通常会采用NAS(NeuralArchitecture Search,自动网络结构搜索)来进行卷积神经网络模型的搜索,在NAS的搜索过程中需要模型的推理时间作为评估模型好坏的反馈,直接依赖实测的方法耗时耗力,且需要在代码中植入很多无用的测试代码。另一方面,在云边端协同中,如机器人应用、物联网、自动驾驶等端侧算力受限,且推理任务较多的场景,通常需要获取模型每一层的推理时间信息,以完成后续对模型的拆分处理,由于深度学习模型的层数多,部署环境多变,因此依靠实测模型分层的推理时间工作量巨大。
发明内容
为解决现有技术的不足,实现不同软硬件平台下,高效的搜索多个模型,进行联合推理时间的预测,避免实测的耗时耗力,提升推理时间预测的效率、精度的目的,本发明采用如下的技术方案:
一种卷积神经网络分层推理时间预测方法,包括如下步骤:
S101,数据采集,采集各类卷积神经网络模型的分层算子信息,根据算子信息的特性确定多种分层类型,将算子信息划分到各分层类型中,采集平台框架信息;
所述卷积神经网络模型用于图像分类,通过对各类卷积神经网络模型进行图像处理时的推理时间,搜索卷积神经网络模型,从而提高了搜索的效率和精度,进一步的提高了模型的效率,最终提高了图像处理的效率,避免了依赖实测的方法,耗时耗力,且需要在实测中植入很多无用的测试代码;
所述卷积神经网络模型用于云边端协同推理加速,由于端侧算力受限,且推理任务较多时,获取模型每一层的推理时间信息,以完成后续对模型的拆分处理,由于深度学习模型的层数多,部署环境多变,因此依靠实测模型分层的推理时间工作量巨大,通过进行模型推理时间的预测,实现模型的推理加速而不会带来精度上的损失。
采集深度卷积神经网络模型的算子层信息,卷积神经网络模型包括:AlexNet、VGG16、ResNet、DenseNet、MobileNetv1、MobileNetv2、MobileNetv3、GoogleNet、ShuffleNet,将具有同样功能的算子层划分为一类,卷积层包含卷积算子、深度可分离卷积算子、空洞卷积算子;池化层包含最大池化算子、最小池化算子、平均池化算子;批标准化层包含批标准化算子;全连接层包含全连接算子;激活函数层包含Relu算子、Relu6算子、Sigmoid算子、Swish算子;逐元素计算层包含Add算子、Concat算子、Multiply算子。
S102,构建特征工程,对于多种分层类型,提取每种分层类型下对应的卷积神经网络模型的层特征参数,以及提取平台框架信息中与推理时间密切相关的平台框架特征参数,将模型层特征参数与平台框架特征参数融合,构成多种分层类型的特征参数;
S103,推理时间预测,根据特征参数的数据特点对多种分层类型进行分类,将特征参数相同的分层类型划分成一组,共划分成p组,对特征参数不同的分层类型单独划分为一组,共划分成q组,采用机器学习算法,对每组构建推理时间预测模型,即分别对p组分层类型建立p个推理时间预测模型,对剩下q组分层类型建立q个预测模型,共得到p+q个预测模型,用于卷积神经网络模型进行推理时间的预测。
进一步地,所述平台框架信息包括硬件平台信息和/或推理软件框架信息。
进一步地,所述S101的数据采集,包括如下步骤:
步骤201,采集各种卷积神经网络模型结构,所述模型包括AlexNet、VGG16、ResNet、DenseNet、MobileNetv1、MobileNetv2、MobileNetv3等深度学习模型;
步骤202,采集平台框架信息,包括硬件平台的名称、类型(如CPU、GPU、TPU、VPU)、硬件处理能力、内存带宽,还包括硬件平台的型号以及型号对应的硬件配置信息,和/或推理软件框架的名称(如TensorRT、TFLite、Openvino、MNN、NCNN),以及每个推理软件框架下的设计特性和相关参数;
步骤203,从模型结构中获取模型的分层算子信息,包括:卷积算子、深度可分离卷积算子、空洞卷积算子、最大池化算子、最小池化算子、平均池化算子、批标准化算子、全连接算子、Relu算子、Relu6算子、Sigmoid算子、Swish算子、Add算子、Concat算子、Multiply算子;
步骤204,根据分层算子信息确定多种分层类型,包括:卷积层、池化层、批标准化层、全连接层、激活函数层、逐元素计算层;
步骤205,将分层算子信息划分到多种分层类型之一,对应关系包括:卷积层包含卷积算子、深度可分离卷积算子、空洞卷积算子;池化层包含最大池化算子、最小池化算子、平均池化算子;批标准化层包含批标准化算子,全连接层包含全连接算子,激活函数层包含Relu算子、Relu6算子、Sigmoid算子、Swish算子;逐元素计算层包含Add算子、Concat算子、Multiply算子。
进一步地,所述S102的构建特征工程,包括如下步骤:
S301,对6种分层类型提取模型层特征参数,其中:
卷积层对应的模型层特征参数包括:该层输入特征图片尺寸大小、输入特征图片通道数、卷积核大小、步幅大小、padding大小、dilation大小、group大小、该层输出特征图片通道数;
池化层对应的模型层特征参数包括:该层输入特征图片尺寸大小、输入特征图片通道数、卷积核大小、步幅大小、padding大小;输入特征图片尺寸大小指特征图片的高度和宽度;
归一化层对应的模型层特征参数包括:该层输入特征图片尺寸大小和输入特征图片通道数;
全连接层对应的模型层特征参数包括:该层输入特征图片尺寸大小、输入特征图片通道数、神经元个数;
激活函数层对应的模型层特征参数包括:该层输入图片尺寸大小和输入特征图片通道数;
逐元素计算层对应的模型层特征参数包括:该层输入图片尺寸大小和输入特征图片通道数;
S302,提取平台框架的特征参数,包括硬件每秒浮点运算次数和访存带宽,采用的策略包括算子融合策略和/或并行计算策略;
S303,将模型层特征参数和平台框架特征参数融合,作为各分层类型的特征参数,并进行特征参数的判定,以决定各分层类型中需要进行特征筛选的分层类型;
S304,遍历每种分层类型,对特征参数进行特征筛选。
进一步地,所述S303的特征参数的融合,是通过特征工程,将模型层特征参数和平台框架特征参数转换为同一纬度。
进一步地,所述S303的特征参数的融合,是将模型层特征参数和平台框架特征参数,进行多维的融合,即平台框架的特征参数分别与模型层特征参数,两两之间为一对一和/或一对多的关系。
进一步地,所述S304中,统计每种分层类型的特征参数个数,对于特征参数个数大于第一阈值的n种分层类型,分别构建各类卷积神经网络模型的数据集,形成n套数据样本集合,采用机器学习进行特征筛选模型的训练,分别得到n种分层类型下各个特征的权重值系数,根据系数从大到小排序,并设定权重阈值,将小于权重阈值的特征参数过滤,最终得到n种不同分层类型经过特征筛选后的特征参数,作为推理时间预测的输入,与剩下m-n种分层类型中的特征参数共同组成m种分层类型的特征参数。选取的作用是为了针对不同的分层类型做不同的处理,特征参数数量不多的,保留所有的信息可以提高最后的预测精度,特征参数较多的,可以通过特征筛选,过滤掉一些不太重要的特征参数。用来进行特征筛选的机器学习算法包括:XGBoost、LightGBM、随机森林、逻辑回归。
进一步地,所述S103的推理时间预测,包括如下步骤:
S401,获取特征筛选后的多种分层类型特征参数,并对多种分层类型的特征参数进行进一步的分类;
S402,遍历多种分层类型的特征参数,将特征参数相同的分层类型划分到同一组,形成p组分层类型,p组中每一组内的特征参数包含有相同的模型层特征参数和平台框架特征参数;
S403,将特征参数不相同的分层类型划分成q组分层类型;
S404,p+q组分层类型,组与组之间的特征参数都不相同,采用机器学习算法分别对p+q组分层类型建模,进行推理时间预测模型的训练;所述机器学习算法可包括:线性回归、非线性回归、随机森林、XGBoost、神经网络;
S405,根据预测模型的训练,得到p+q个推理时间预测模型,来完成卷积神经网络多种分层类型的推理时间预测。
进一步地,采用算子融合策略将部分算子进行合并后,作为一个融合算子运行,这样能够减小内存搬运,提升算子推理运行速度,分层算子类型增加融合算子,融合算子的特征参数是融合前各算子的特征参数的组合,算子融合的检测机制是通过在模型前向推理的代码中引入时间差来判断是否发生了算子融合,当融合发生时,两个相连算子的运行时间小于算子单独运行的时间和,算子融合的分层推理时间预测包括如下步骤:
S501,获取卷积神经网络模型;
S502,算子融合检测,对卷积神经网络模型的算子采用融合检测机制进行融合算子的搜索;
S503,模型推理运行时,经过算子融合检测后,模型实际推理过程中,在平台框架下以融合后的算子来运行;
S504,模型分层推理时间预测,特征参数的提取是提取经过算子融合后的模型层的特征参数,结合平台框架的信息,形成多种分层类型的特征参数,再根据所述S102、S103进行推理时间的预测。
一种卷积神经网络分层推理时间预测装置,包括:依次连接的数据采集模块、特征工程模块和推理时间预测模块;
所述数据采集模块,采集各类卷积神经网络模型的分层算子信息,根据算子信息的特性确定多种分层类型,将算子信息划分到各分层类型中,采集平台框架信息;
所述构建特征工程,对于多种分层类型,提取每种分层类型下对应的卷积神经网络模型的层特征参数,以及提取平台框架信息中与推理时间密切相关的平台框架特征参数,将模型层特征参数与平台框架特征参数融合,构成多种分层类型的特征参数;
所述推理时间预测,根据特征参数的数据特点对多种分层类型进行分类,将特征参数相同的分层类型划分成一组,共划分成p组,对特征参数不同的分层类型单独划分为一组,共划分成q组,采用机器学习算法,对每组构建推理时间预测模型,即分别对p组分层类型建立p个推理时间预测模型,对剩下q组分层类型建立q个预测模型,共得到p+q个预测模型,用于卷积神经网络模型进行推理时间的预测。
本发明的优势和有益效果在于:
为了解决现有技术中,在进行深度学习模型推理时间预测时,把所有影响因子通盘考虑进行特征工程导致特征矩阵零元素过多,且预测时采用一个模型导致预测精度不高的问题,本发明对不同的分层类型分别进行特征工程,同时对具有不同特征参数的分层类型分别采用机器学习算法进行模型训练完成分层推理时间的预测,从而大大提高了模型分层推理时间的预测精度。
附图说明
图1是自动网络结构原理搜索示意图。
图2是本发明的方法流程图。
图3是本发明实施例中数据采集模块的运行流程图。
图4是本发明实施例中特征工程模块的运行流程图。
图5是本发明实施例中推理时间预测模块的运行流程图。
图6a是本发明实施例中算子融合过程示意图。
图6b是本发明实施例中算子融合过程示意图。
图6c是本发明实施例中算子融合过程示意图。
图7是本发明实施例中算子融合检测结构示意图。
图8是本发明实施例中采用算子融合的推理时间预测结构示意图。
图9是本发明的装置结构示意图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
一种卷积神经网络分层推理时间预测方法,卷积神经网络用于图像分类,训练好的卷积神经网络模型在实际部署中的延迟(推理时间)是决定该图像分类模型是否可用的一个重要指标,现有技术中通常会采用NAS(Neural Architecture Search,自动网络结构搜索)来进行卷积神经网络模型的搜索,以提高模型精度,达到比人为设计网络更优的效果,在NAS的搜索过程中需要模型的推理时间作为评估模型好坏的反馈,直接依赖实测的方法耗时耗力,且需要在代码中植入很多无用的测试代码,因此需要进行模型推理时间的预测。如图1所示,模型推理时间预测用于NAS中的性能评估策略的环节。采用本方法进行预测后可以提升NAS搜索网络的效率以及搜索精度,从而提升搜索出来的卷积神经网络模型的精度。
另一个实例中,卷积神经网络分层推理时间预测方法应用于模型的云边端协同推理加速,如机器人应用、物联网、自动驾驶等端侧算力受限,且推理任务较多的场景,可利用边缘计算节点和云服务器实现模型的推理加速而不会带来精度上的损失。在云边端推理加速问题的研究上,通常需要获取模型每一层的推理时间信息,以完成后续对模型的拆分处理。由于深度学习模型的层数多,部署环境多变,因此依靠实测模型分层的推理时间工作量巨大,也需要进行模型推理时间的预测。采用本方法进行推理时间预测后可以提升云边端模型分割的精度,从而使得最终分割的效果可以达到模型推理速度上的提升。
具体地,如图2所示,包括如下步骤:
S101,数据采集,采集各类卷积神经网络模型的分层算子信息,根据算子信息的特性确定m=6种分层类型,将算子信息划分到6种分层类型之一;采集推理软件框架信息;采集硬件平台信息;具体来说,采集典型的深度卷积神经网络模型层信息,如AlexNet、VGG16、ResNet、DenseNet、MobileNetv1、MobileNetv2、MobileNetv3、GoogleNet、ShuffleNet等模型的算子层信息,可以通过计算机打印出来。
具体地划分方式,是将具有同样功能的算子层划分为一类,例如:卷积层包含卷积算子、深度可分离卷积算子、空洞卷积算子;池化层包含最大池化算子Max pool、最小池化算子、平均池化算子;批标准化层包含批标准化算子;全连接层包含全连接算子;激活函数层包含Relu算子、Relu6算子、Sigmoid算子、Swish算子;逐元素计算层包含Add算子、Concat算子、Multiply算子等。
当特定的硬件平台和推理软件框架下发生了算子融合,则将融合算子也划分为一类分层。
本实施例中,如图3所示,数据采集包括如下步骤:
步骤201,采集各种卷积神经网络模型结构,所述模型包括AlexNet、VGG16、ResNet
、DenseNet、MobileNetv1、MobileNetv2、MobileNetv3等深度学习模型;
步骤202,采集硬件平台信息,包括硬件平台的名称,比如CPU、GPU、TPU、VPU等,硬件平台的型号以及型号对应的硬件配置信息;
硬件参数 | |
硬件类型 | CPU、GPU、TPU、VPU…… |
硬件处理能力 | 每秒浮点运算次数(TFLOPs)、硬件核数、模型分层计算量…… |
内存带宽 | 访存带宽(GB/s)、模型分层访存量…… |
采集推理软件框架信息,包括推理软件框架的名称,比如TensorRT、TFLite、Openvino、MNN、NCNN等,以及每个推理软件框架下的设计特性和相关参数;
软件参数 | |
软件框架 | TensorRT、TFLite、OpenVino、MNN、NCNN…… |
其他 | 算子融合策略、算子并行策略、模型分层参数量、内存占用…… |
步骤203,从模型结构中获取模型的分层算子信息,包括:卷积算子、深度可分离卷积算子、空洞卷积算子、最大池化算子、最小池化算子、平均池化算子、批标准化算子、全连接算子、Relu算子、Relu6算子、Sigmoid算子、Swish算子、Add算子、Concat算子、Multiply算子;
步骤204,根据分层算子信息确定6种分层类型,包括:卷积层、池化层、批标准化层、全连接层、激活函数层、逐元素计算层;
步骤205,将模型分层算子信息划分到6种分层类型之一,对应关系包括:卷积层包含卷积算子、深度可分离卷积算子、空洞卷积算子;池化层包含最大池化算子、最小池化算子、平均池化算子;批标准化层包含批标准化算子,全连接层包含全连接算子,激活函数层包含Relu算子、Relu6算子、Sigmoid算子、Swish算子;逐元素计算层包含Add算子、Concat算子、Multiply算子。
S102,构建特征工程,对6种分层类型,提取每种分层类型下对应的神经网络模型的层特征参数,提取推理软件框架信息中与推理时间密切相关的推理软件框架特征参数,以及提取硬件平台信息中与推理时间密切相关的硬件平台特征参数,将模型层特征参数、推理软件框架特征参数与硬件平台特征参数构成6种分层类型的特征参数,统计每种分层类型的特征参数个数,对于特征参数个数大于特征参数个数阈值的分层类型构成n种分层类型,针对这n种分层类型分别构建各类卷积神经网络模型的数据集,形成n套数据样本集合,采用机器学习算法进行特征筛选模型的训练,分别得到n种分层类型下各个特征的权重值系数,根据系数从大到小排序,并设定权重阈值,过滤掉小于权重阈值的特征参数,最终得到n种分层类型经过特征筛选后的特征信息,与剩下m-n种分层类型中的特征参数共同组成6种分层类型的特征信息;具体的分层类型可以见下表:
层类型 | |
卷积层 | 卷积,深度可分离卷积,空洞卷积,分组卷积…… |
池化层 | 最大池化,最小池化,平均池化,全局池化…… |
批归一化层 | BatchNorm |
全连接层 | FullyConnect |
激活函数层 | Relu,Relu6,Sigmoid,Tanh,Swish… |
逐元素计算层 | Add,Concat,Multiply… |
算子融合层 | Conv+BN+Relu, Conv+BN… |
例如:根据特征参数的数量进行选取的,如果第i种分层类型的特征参数多于6个就进行特征筛选,如果小于6个就保留所有特征不进行筛选,选取的作用是为了针对不同的分层类型做不同的处理,特征参数数量不多的,保留所有的信息可以提高最后的预测精度,特征参数较多的,可以通过特征筛选,过滤掉一些不太重要的特征信息。
特征筛选一般采用传统的机器学习算法,例如XGBoost、LightGBM等,用于过滤掉一些不太重要的特征参数,属于数据预处理,降低数据维度,可以加快后续对预测模型的训练。
本实施例中,如图4所示,构建特征工程包括如下步骤:
S301,对6种分层类型提取模型层特征参数,其中:
卷积层对应的模型层特征参数包括:该层输入特征图片尺寸大小、输入特征图片通道数、卷积核大小、步幅大小、padding大小、dilation大小、group大小、该层输出特征图片通道数;
池化层对应的模型层特征参数包括:该层输入特征图片尺寸大小、输入特征图片通道数、卷积核大小、步幅大小、padding大小;
归一化层对应的模型层特征参数包括:该层输入特征图片尺寸大小和输入特征图片通道数;
全连接层对应的模型层特征参数包括:该层输入特征图片尺寸大小、输入特征图片通道数、神经元个数;
激活函数层对应的模型层特征参数包括:该层输入图片尺寸大小和输入特征图片通道数;
逐元素计算层对应的模型层特征参数包括:该层输入图片尺寸大小和输入特征图片通道数。
输入特征图片尺寸大小指特征图片的高度和宽度等。
S302,提取硬件平台的特征参数,包括硬件每秒浮点运算次数和访存带宽;提取推理软件框架的特征参数,包括算子融合策略和并行计算策略;
S303,将模型层特征参数、推理软件框架特征参数和硬件平台特征参数融合,作为多种分层类型的特征参数,并进行特征参数的判定,来决定多种分层类型中需要进行特征筛选的分层类型;
特征参数的融合,是将三者参数放在一起作为整体的特征参数,如果三种参数的数据类型差异很大,需要做一些特征工程处理,将数据变成一个维度进行后续处理。
例如:第一种分层类型的特征参数是卷积层特征参数、软件参数、硬件参数,展开包括:输入特征图片尺寸大小、输入特征图片通道数、卷积核大小、步幅大小、padding大小、dilation大小、group大小、该层输出特征图片通道数、硬件类型、卷积层计算量、卷积层访存量、卷积层参数量、是否算子融合等,这些特征参数中会存在数值型和类别型特征,如卷积层的特征参数基本都是数值型,而是否算子融合、硬件类型则属于类别型,需要将类别型特征转换成数值型特征。
另一个实施例中,特征参数的融合,是将三者参数,进行多维的融合,即硬件平台的特征参数分别与推理软件框架特征参数和模型层特征参数对应,两两之间可以是一对一或一对多的关系,最终仍融合为6种分层类型。
S304,遍历每种分层类型,统计每种分层类型的特征参数个数,对于特征参数个数大于特征参数个数阈值的分层类型,采用机器学习算法进行特征筛选,给特征赋予权重,并剔除小于权重阈值的特征参数;对于特征参数个数小于特征参数个数阈值的分层类型,则保留所有特征参数,最后得到6种分层类型的特征信息,作为推理时间预测的输入。其中,所述机器学习算法可包括:XGBoost、LightGBM、随机森林、逻辑回归。
S103,推理时间预测,根据特征信息的数据特点对6种分层类型进行分类,将特征信息相同的分层类型划分成一组,(例如:批归一化层和激活函数层的特征参数相同,则可以将其划分成一组),共划分成p组,对特征信息不同的分层类型划分成q组,采用机器学习算法分别对p组分层类型建立p个推理时间预测模型,对剩下q组分层类型建立q个预测模型,共得到p+q个预测模型,用于预测推理时间。
本实施例中,如图5所示,推理时间预测包括如下步骤:
S401,获取特征筛选后的6种分层类型特征信息,并对6种分层类型的特征信息进行进一步的分类;
S402,遍历6种分层类型的特征信息,将特征信息相同的分层类型划分到同一组,形成p组分层类型,p组中每一组内的特征信息包含有相同的模型层特征参数、推理软件框架特征参数和硬件平台特征参数;
S403,将特征信息不相同的分层类型划分成q组分层类型;
S404,p+q组分层类型,组与组之间的特征信息都不相同,采用机器学习算法分别对p+q组分层类型建模,进行推理时间预测模型的训练;所述机器学习算法可包括:线性回归、非线性回归、随机森林、XGBoost、神经网络;
S405,根据预测模型的训练,得到p+q个推理时间预测模型,来完成卷积神经网络6种分层类型的推理时间预测。
本实施例中,如图6a-c所示,在一个卷积神经网络的实际运行过程中,部分算子层可以经过算子融合之后作为一个融合以后的算子运行,例如卷积算子Conv1、批归一化算子Batch Norm、Relu算子就可以合并以后作为一个融合算子运行,这样能够减小内存搬运,提升算子推理运行速度。能否进行算子融合是由硬件平台和软件推理框架的特性决定。如果是以融合算子运行,那么前述的分层算子类型还需要增加融合算子,融合算子的特征参数是融合前各算子的特征参数的组合,且同样需要进行特征筛选。特征筛选以后的处理步骤与前述步骤一致。算子融合的检测机制主要是针对不同的硬件平台和软件推理框架,通过在模型前向推理的代码中引入时间差来判断是否发生了算子融合(如果融合发生,两个相连算子的运行时间要小于算子单独运行的时间和),可以用图7和对应的公式表示:
Top1+ Top2 - T(op1,op2) > µ*min(Top1, Top2)
其中,Top1表示第一算子的单独推理时间,Top2表示第二算子的单独推理时间,T(op1,op2) 表示第一算子和第二算子的联合推理时间,µ是设定的经验值。如果有多个算子需要进行融合,则重复上述公式,先判断op1和op2是否融合,如果op1和op2可以进行融合,再将融合后的op1和op2作为一个算子与op3进行融合判断。
算子融合的一个推理时间预测过程如图8所示:
S501,获取卷积神经网络模型;
S502,算子融合检测,对卷积神经网络模型的算子采用融合检测机制(见上述公式)进行融合算子的搜索;
S503,模型推理运行时,经过算子融合检测后,模型实际推理过程中会在特定的推理软件框架和硬件平台下以融合后的算子来运行;
S504,模型分层推理时间预测,特征提取是提取经过算子融合后的模型层的特征信息,结合硬件平台、推理软件框架的信息,形成6种分层类型的特征参数,剩下步骤则跟S102、S103一致。
如图9所示,一种卷积神经网络分层推理时间预测装置,包括依次连接的数据采集模块、特征工程模块和推理时间预测模块。
数据采集模块,负责采集各类卷积神经网络模型的分层算子信息,推理软件框架信息和硬件平台信息,根据采集到的分层算子信息的特性确定m种分层类型,m为大于1的正整数,算子信息都将划分到m种分层类型之一。m种分层类型、推理软件框架信息和硬件平台信息均作为特征工程模块的输入。
特征工程模块,负责对m种分层类型,提取每种类型下对应的模型层特征参数,提取推理软件框架信息中与推理时间密切相关的推理软件框架特征参数以及硬件平台信息中与推理时间密切相关的硬件平台特征参数,将模型层特征参数、推理软件框架特征参数与硬件平台特征参数构成m种分层类型的特征参数,采用机器学习算法对m种分层类型中的n种分层类型的特征参数进行特征筛选,得到n种分层类型经过特征筛选后的特征信息,与剩下m-n种分层类型中的特征参数共同组成m种分层类型的特征信息。特征信息作为推理时间预测模块的输入。
推理时间预测模块,负责根据特征信息的数据特点对的m种分层类型进行分类,将特征信息相同的分层类型划分成一组,共划分成p组,对剩下特征信息不同的分层类型划分成q组,采用机器学习算法分别对p组分层类型建立p个推理时间预测模型,对剩下q组分层类型建立q个预测模型,共得到p+q个预测模型。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。
Claims (10)
1.一种卷积神经网络分层推理时间预测方法,其特征在于包括如下步骤:
S101,数据采集,采集各类卷积神经网络模型的分层算子信息,根据算子信息的特性确定多种分层类型,将算子信息划分到各分层类型中,采集平台框架信息;
S102,构建特征工程,提取每种分层类型下对应的卷积神经网络模型的层特征参数,以及提取平台框架信息中与推理时间相关的平台框架特征参数,将模型层特征参数与平台框架特征参数融合,构成多种分层类型的特征参数;
S103,推理时间预测,根据特征参数的数据特点对多种分层类型进行分类,将特征参数相同的分层类型划分成一组,对特征参数不同的分层类型单独划分为一组,对每组构建推理时间预测模型,用于卷积神经网络模型进行推理时间的预测。
2.根据权利要求1所述的一种卷积神经网络分层推理时间预测方法,其特征在于所述平台框架信息包括硬件平台信息和/或推理软件框架信息。
3.根据权利要求1所述的一种卷积神经网络分层推理时间预测方法,其特征在于所述S101的数据采集,包括如下步骤:
步骤201,采集各种卷积神经网络模型结构;
步骤202,采集平台框架信息;
步骤203,从模型结构中获取模型的分层算子信息,包括:卷积算子、深度可分离卷积算子、空洞卷积算子、最大池化算子、最小池化算子、平均池化算子、批标准化算子、全连接算子、Relu算子、Relu6算子、Sigmoid算子、Swish算子、Add算子、Concat算子、Multiply算子;
步骤204,根据分层算子信息确定多种分层类型,包括:卷积层、池化层、批标准化层、全连接层、激活函数层、逐元素计算层;
步骤205,将分层算子信息划分到多种分层类型之一,对应关系包括:卷积层包含卷积算子、深度可分离卷积算子、空洞卷积算子;池化层包含最大池化算子、最小池化算子、平均池化算子;批标准化层包含批标准化算子,全连接层包含全连接算子,激活函数层包含Relu算子、Relu6算子、Sigmoid算子、Swish算子;逐元素计算层包含Add算子、Concat算子、Multiply算子。
4.根据权利要求3所述的一种卷积神经网络分层推理时间预测方法,其特征在于所述S102的构建特征工程,包括如下步骤:
S301,对6种分层类型提取模型层特征参数,其中:
卷积层对应的模型层特征参数包括:该层输入特征图片尺寸大小、输入特征图片通道数、卷积核大小、步幅大小、padding大小、dilation大小、group大小、该层输出特征图片通道数;
池化层对应的模型层特征参数包括:该层输入特征图片尺寸大小、输入特征图片通道数、卷积核大小、步幅大小、padding大小;
归一化层对应的模型层特征参数包括:该层输入特征图片尺寸大小和输入特征图片通道数;
全连接层对应的模型层特征参数包括:该层输入特征图片尺寸大小、输入特征图片通道数、神经元个数;
激活函数层对应的模型层特征参数包括:该层输入图片尺寸大小和输入特征图片通道数;
逐元素计算层对应的模型层特征参数包括:该层输入图片尺寸大小和输入特征图片通道数;
S302,提取平台框架的特征参数;
S303,将模型层特征参数和平台框架特征参数融合,作为各分层类型的特征参数,并进行特征参数的判定,以决定各分层类型中需要进行特征筛选的分层类型;
S304,遍历每种分层类型,对特征参数进行特征筛选。
5.根据权利要求4所述的一种卷积神经网络分层推理时间预测方法,其特征在于所述S303的特征参数的融合,是通过特征工程,将模型层特征参数和平台框架特征参数转换为同一维度。
6.根据权利要求4所述的一种卷积神经网络分层推理时间预测方法,其特征在于所述S303的特征参数的融合,是将模型层特征参数和平台框架特征参数,进行多维的融合,即平台框架的特征参数分别与模型层特征参数,两两之间为一对一和/或一对多的关系。
7.根据权利要求4所述的一种卷积神经网络分层推理时间预测方法,其特征在于所述S304中,统计每种分层类型的特征参数个数,对于特征参数个数大于第一阈值的n种分层类型,分别构建各类卷积神经网络模型的数据集,形成n套数据样本集合,采用机器学习进行特征筛选模型的训练,分别得到n种分层类型下各个特征的权重值系数,并设定权重阈值,将小于权重阈值的特征参数过滤,最终得到不同分层类型经过特征筛选后的特征参数,作为推理时间预测的输入。
8.根据权利要求1所述的一种卷积神经网络分层推理时间预测方法,其特征在于所述S103的推理时间预测,包括如下步骤:
S401,获取特征筛选后的多种分层类型特征参数,并对多种分层类型的特征参数进行进一步的分类;
S402,遍历多种分层类型的特征参数,将特征参数相同的分层类型划分到同一组,形成p组分层类型,p组中每一组内的特征参数包含有相同的模型层特征参数和平台框架特征参数;
S403,将特征参数不相同的分层类型划分成q组分层类型;
S404,p+q组分层类型,组与组之间的特征参数都不相同,采用机器学习分别对p+q组分层类型建模,进行推理时间预测模型的训练;
S405,根据预测模型的训练,得到p+q个推理时间预测模型,来完成卷积神经网络多种分层类型的推理时间预测。
9.根据权利要求1所述的一种卷积神经网络分层推理时间预测方法,其特征在于采用算子融合策略,将部分算子进行合并后,作为一个融合算子运行,分层算子类型增加融合算子,融合算子的特征参数是融合前各算子的特征参数的组合,算子融合的检测机制是通过在模型前向推理中引入时间差来判断是否发生了算子融合,当融合发生时,两个相连算子的运行时间小于算子单独运行的时间和,算子融合的分层推理时间预测包括如下步骤:
S501,获取卷积神经网络模型;
S502,算子融合检测,对卷积神经网络模型的算子采用融合检测机制进行融合算子的搜索;
S503,模型推理运行时,经过算子融合检测后,模型实际推理过程中,在平台框架下以融合后的算子来运行;
S504,模型分层推理时间预测,特征参数的提取是提取经过算子融合后的模型层的特征参数,结合平台框架的信息,形成多种分层类型的特征参数,再根据所述S102、S103进行推理时间的预测。
10.一种卷积神经网络分层推理时间预测装置,包括:依次连接的数据采集模块、特征工程模块和推理时间预测模块,其特征在于:
所述数据采集模块,采集各类卷积神经网络模型的分层算子信息,根据算子信息的特性确定多种分层类型,将算子信息划分到各分层类型中,采集平台框架信息;
所述构建特征工程,提取每种分层类型下对应的卷积神经网络模型的层特征参数,以及提取平台框架信息中与推理时间相关的平台框架特征参数,将模型层特征参数与平台框架特征参数融合,构成多种分层类型的特征参数;
所述推理时间预测,根据特征参数的数据特点对多种分层类型进行分类,将特征参数相同的分层类型划分成一组,对特征参数不同的分层类型单独划分为一组,对每组构建推理时间预测模型,用于卷积神经网络模型进行推理时间的预测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210133010.7A CN114648123A (zh) | 2022-02-14 | 2022-02-14 | 一种卷积神经网络分层推理时间预测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210133010.7A CN114648123A (zh) | 2022-02-14 | 2022-02-14 | 一种卷积神经网络分层推理时间预测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114648123A true CN114648123A (zh) | 2022-06-21 |
Family
ID=81994246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210133010.7A Pending CN114648123A (zh) | 2022-02-14 | 2022-02-14 | 一种卷积神经网络分层推理时间预测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114648123A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116384452A (zh) * | 2023-05-16 | 2023-07-04 | 北京爱芯科技有限公司 | 动态网络模型构建方法、装置、设备及存储介质 |
-
2022
- 2022-02-14 CN CN202210133010.7A patent/CN114648123A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116384452A (zh) * | 2023-05-16 | 2023-07-04 | 北京爱芯科技有限公司 | 动态网络模型构建方法、装置、设备及存储介质 |
CN116384452B (zh) * | 2023-05-16 | 2023-12-15 | 北京爱芯科技有限公司 | 动态网络模型构建方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114937151B (zh) | 基于多感受野和注意力特征金字塔的轻量级目标检测方法 | |
CN112784964A (zh) | 基于桥接知识蒸馏卷积神经网络的图像分类方法 | |
CN107239829A (zh) | 一种优化人工神经网络的方法 | |
CN112685504B (zh) | 一种面向生产过程的分布式迁移图学习方法 | |
CN112101525A (zh) | 一种通过nas设计神经网络的方法、装置和系统 | |
CN114373101A (zh) | 基于进化策略的神经网络架构搜索的图像分类方法 | |
CN112149721A (zh) | 一种基于主动学习降低标注需求的目标检测方法 | |
CN116187391A (zh) | 神经网络模型的处理方法及装置 | |
CN113610192A (zh) | 一种基于连续性剪枝的神经网络轻量化方法及系统 | |
CN111198550A (zh) | 基于案例推理的云端智能生产优化调度在线决策方法及系统 | |
CN114742211B (zh) | 一种面向微控制器的卷积神经网络部署和优化方法 | |
CN114648123A (zh) | 一种卷积神经网络分层推理时间预测方法及装置 | |
CN112711985A (zh) | 基于改进solo网络的果实识别方法、装置及果实采摘机器人 | |
Wen et al. | MapReduce-based BP neural network classification of aquaculture water quality | |
CN114510871A (zh) | 基于思维进化和lstm的云服务器性能衰退预测方法 | |
CN117217302B (zh) | 基于动态规划的多目标混合精度量化搜索方法及系统 | |
CN112200208B (zh) | 基于多维度特征融合的云工作流任务执行时间预测方法 | |
CN117744745A (zh) | 一种基于YOLOv5网络模型的图像优化方法及优化系统 | |
CN112308213A (zh) | 一种基于全局特征关系的卷积神经网络压缩方法 | |
Hao et al. | Architecture self-attention mechanism: Nonlinear optimization for neural architecture search | |
CN113157453B (zh) | 一种基于任务复杂度的高能效目标检测任务动态调度方法 | |
CN113505804A (zh) | 一种基于压缩深度神经网络的图像识别方法及系统 | |
Heghedus | PhD forum: Forecasting public transit using neural network models | |
Li et al. | Lasso regression based channel pruning for efficient object detection model | |
Chen et al. | HQNAS: Auto CNN deployment framework for joint quantization and architecture search |
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 |