CN114972850A - 多分支网络的分发推理方法、装置、电子设备及存储介质 - Google Patents

多分支网络的分发推理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114972850A
CN114972850A CN202210507991.7A CN202210507991A CN114972850A CN 114972850 A CN114972850 A CN 114972850A CN 202210507991 A CN202210507991 A CN 202210507991A CN 114972850 A CN114972850 A CN 114972850A
Authority
CN
China
Prior art keywords
branch
picture
uncertainty
network
prediction result
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
Application number
CN202210507991.7A
Other languages
English (en)
Other versions
CN114972850B (zh
Inventor
周悦芝
梁志伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN202210507991.7A priority Critical patent/CN114972850B/zh
Publication of CN114972850A publication Critical patent/CN114972850A/zh
Priority to PCT/CN2023/070521 priority patent/WO2023216642A1/zh
Application granted granted Critical
Publication of CN114972850B publication Critical patent/CN114972850B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • G06V10/765Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects using rules for classification or partitioning the feature space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing 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/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开提出一种多分支网络的分发推理方法、装置、电子设备及存储介质,属于计算机视觉及深度学习领域。其中,所述方法包括:获取待推理图片并进行预处理;将预处理完毕的所述图片输入预设的多分支网络的第一个分支,得到所述图片的初始预测结果;利用初始预测结果,计算所述图片的不确信度;按照预设的不确信度级别划分结果,确定所述图片对应的不确信度级别;利用预设的所述多分支网络的分发方案,根据不确信度级别确定所述图片在所述分发方案中对应的输出分支,以得到所述图片最终的预测结果。本公开在不影响模型精度的同时可为图像分类和目标检测等计算机视觉神经网络提供加速效果,促进了计算机视觉应用的发展。

Description

多分支网络的分发推理方法、装置、电子设备及存储介质
技术领域
本公开属于计算机视觉及深度学习领域,具体涉及一种多分支网络的分发推理方法、装置、电子设备及存储介质。
背景技术
作为最受欢迎的技术,深度学习在计算机视觉任务中取得了超过传统方法的效果。随着模型的深度和宽度不断的增加,机器学习模型的复杂程度和所需要的计算量也在逐步增长。在模型实际落地的过程中,会遇到推理延时和能量消耗的重大限制。而且随着移动互联网的发展,在物联网设备上实现图像分类算法成为了迫切的需求。但是物联网设备的处理能力是有限的,机器学习模型在设备执行的延迟是难以忍受的。所以如何优化物联网设备中图像分类算法的使用体验是个亟待解决的问题。
从近些年图像分类算法的更新历史来看,模型计算量的增加和模型的精度提升是非线性的,增加几倍的计算量只会带来少量的精度提升。模型中存在大量的冗余计算,模型剪枝,模型量化,知识蒸馏等工作可以在牺牲一点精度的情况下减少DNN(深度神经网络)模型的计算量,大幅地提高模型的推理速度。一些工作设计了一些轻量型模型部署到物联网设备上,但是牺牲了大量的精度。另一方面,从数据角度出发,Branchynet等多分支网络让简单样本可以提前从模型中输出来提高推理速度。这意味着不同样本的分析难度对于模型来说是不同的,简单样本在较少的计算量下就可以准确分类,而困难样本则需要更多的计算量。简单样本在所有分支上都可以得到较高的精度,困难样本一般在深层分支得到的精度比浅层分支得到的高。通过调整不同分支样本输出的比例,可以得到精度和推理时间不同的方案。
Branchynet及其变种被提出以来,学术界使用其结合其他技术用来解决边缘计算中的模型部署优化问题。但是多分支网络在工业界使用较少,因为其设计和训练比较复杂,限制了它的应用。但是该方法可以和压缩量化等模型加速方法混合使用,可以提供更好的方案。多分支网络的传统实现方式是先研究分支插入的位置和分支结构的设计,然后再对所有分支以及原模型进行联合训练。这种实现方法的复杂在一定程度上限制了多分支网络的发展。联合训练的方式需要在训练前就确定好网络结构,在运行时无法对网络结构进行改变。如果需要新插入一个分支,就需要重新对网络进行训练一遍。另一方面,多分支网络传统的级联推理模式存在较多的试错过程。
发明内容
本公开的目的是克服已有技术的不足之处,提出一种多分支网络的分发推理方法、装置、电子设备及存储介质。本公开具有不影响模型精度的同时对神经网络模型进行加速的特点,公开可以为图像分类和目标检测等计算机视觉神经网络提供加速效果,促进了计算机视觉应用的发展。
本公开第一方面实施例提出一种多分支网络的分发推理方法,包括:
获取待推理图片并进行预处理;
将预处理完毕的所述图片输入预设的多分支网络的第一个分支,所述第一个分支输出所述图片对应的初始预测结果;利用所述初始预测结果,计算所述图片的不确信度;
根据所述不确信度,按照预设的不确信度级别划分结果,确定所述图片对应的不确信度级别;
利用预设的所述多分支网络的分发方案,根据所述图片对应的不确信度级别确定所述图片在所述分发方案中对应的输出分支,以得到所述图片最终的预测结果。
在本公开的一个具体实施例中,所述利用预设的所述多分支网络的分发方案,根据所述图片对应的不确信度级别确定所述图片在所述分发方案中对应的输出分支,以得到所述图片最终的预测结果,包括:
若所述输出分支为所述多分支网络的第一个分支,则所述初始预测结果即为所述图片的最终预测结果;否则,将所述图片对应输出分支的输出结果作为所述图片的最终预测结果。
在本公开的一个具体实施例中,所述利用所述初始预测结果,计算所述图片的不确信度,包括:
所述初始预测结果包括所述图片经由所述第一个分支输出的对应各分类的概率,将所述概率的最大值减去所述概率的第二最大值即为所述图片的不确信度。
在本公开的一个具体实施例中,在所述将预处理完毕的所述图片输入预设的多分支网络的第一个分支之前,还包括:
训练所述多分支网络;
所述训练多分支网络,包括:
根据所述多分支网络的任务获取数据集,所述数据集包括多张图片及所述图片的标注信息;将所述数据集划分为训练集和评估集;
对所述数据集进行预处理;
获取用于所述任务的预训练网络作为所述多分支网络的主干,在所述预训练网络设定位置处加入分支,以构建所述多分支网络;
利用预处理完毕的所述训练集对所述多分支网络的每个分支分别训练,得到训练完毕的所述多分支网络;其中,所述每个分支训练时,将所述分支及所述分支之前的所述预训练网络部分构成一个新的网络进行训练,所述分支之前的所述预训练网络部分在训练时权重保持不变。
在本公开的一个具体实施例中,所述不确信度级别划分结果的确定方法包括:
将预处理完毕的所述评估集的各图片输入所述训练完毕的多分支网络的第一个分支,得到所述评估集各图片的初始预测结果;
根据所述初始预测结果,计算所述评估集各图片的不确信度;
根据所述评估集各图片的不确信度,将所述评估集所有图片平均划分为M组,以得到所述不确信度级别划分结果,其中M为预设的不确信度级别总数。
在本公开的一个具体实施例中,在本公开的一个具体实施例中,所述多分支网络的分发方案确定方法包括:
1)确定初始分发方案,所述初始方案中所述评估集中每个不确信度级别的图片对应的当前输出分支均为所述多分支网络的第一个分支;
2)令每个不确信度级别对应的当前候选分支为当前输出分支的下一个分支;
3)利用所述评估集,对每个不确信度级别,计算当前候选分支对应的加速比,所述加速比为采用所述当前候选分支相比所述当前输出分支带来的预测精度增加量与采用所述当前候选分支相比所述当前输出分支带来的推理时间增加量之比;
4)在所有当前候选分支中选择加速比最大值对应的不确信度级别,将所述不确信度级别的当前候选分支作为所述不确信度级别新的当前输出分支,得到更新后的当前分发方案;更新所述不确信度级别的当前候选分支,得到更新后的候选分支集合;
5)重复步骤3)至4),直至所述候选分支集合中所有当前候选分支不再提升所述预测精度或者所述当前分发方案达到设定的所述预测精度,则将所述当前分发方案作为所述多分支网络的最终分发方案。
在本公开的一个具体实施例中,所述预测精度为所述评估集中任一不确信度级别对应的所有图片由任一分支进行输出的平均预测准确率,所述推理时间为所述评估集中任一不确信度级别对应的所有图片由任一分支进行输出的平均执行时间。
本公开第二方面实施例提出一种多分支网络的分发推理装置,包括:
图片获取模块,用于获取待推理图片并进行预处理;
初始预测模块,用于将预处理完毕的所述图片输入预设的多分支网络的第一个分支,所述第一个分支输出所述图片对应的初始预测结果;利用所述初始预测结果,计算所述图片的不确信度;
不确信度划分模块,用于根据所述不确信度,按照预设的不确信度级别划分结果,确定所述图片对应的不确信度级别;
最终预测模块,用于利用预设的所述多分支网络的分发方案,根据所述图片对应的不确信度级别确定所述图片在所述分发方案中对应的输出分支,以得到所述图片最终的预测结果。
本公开第三方面实施例提出一种电子设备,包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行上述一种多分支网络的分发推理方法。
本公开第四方面实施例提出一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述一种多分支网络的分发推理方法。
本公开的特点及有益效果在于:
1.本公开基于迁移学习方法提供了一个分离式的多分支网络设计和训练方案,消除了分支间的互相影响,减少了模型的部署难度。多分支网络在工业界使用较少,因为其设计和训练比较复杂,限制了它的应用,而分离式的训练方法可以直接使用预训练网络,减少了多分支网络的准备时间。
2.为了更充分地发挥早期退出机制的优势,本公开提出了多分支网络的分发推理模式。本公开提出了样本不确信度对所有分支一致的概念,并提供了分发方案生成算法,能够调整在不同分支输出的样本比例,在特定推理延迟需求下,尽可能地提高多分支网络的精度。
3.本公开提出的多分支网络可以和压缩量化等模型加速方法混合使用,以提供更好的方案。而且本公开的样本分发推理方法适用于多个模型之间组合推理的情况。
附图说明
图1是本公开实施例的一种多分支网络的分发推理方法的整体流程图。
图2是本公开一个具体实施例中多分支网络的结构示意图。
图3是本公开一个具体实施例中多分支网络第一个分支b1的结构示意图。
图4是本公开一个具体实施例中多分支网络分离式训练的示意图。
图5是本公开一个具体实施例中多分支网络分发推理模式的示意图。
具体实施方式
本公开实施例提出一种多分支网络的分发推理方法、装置、电子设备及存储介质。为了使得本公开的技术方案更加清晰,下面结合附图及具体实施例对本公开作进一步详细说明。
本公开第一方面实施例提出一种多分支网络的分发推理方法,包括:
获取待推理图片并进行预处理;
将预处理完毕的所述图片输入预设的多分支网络的第一个分支,所述第一个分支输出所述图片对应的初始预测结果;利用所述初始预测结果,计算所述图片的不确信度;
根据所述不确信度,按照预设的不确信度级别划分结果,确定所述图片对应的不确信度级别;
利用预设的所述多分支网络的分发方案,根据所述图片对应的不确信度级别确定所述图片在所述分发方案中对应的输出分支,以得到所述图片最终的预测结果。
本公开的一个具体实施例中,该方法整体流程图如图1所示,包括:训练阶段、校准阶段和推理阶段,具体如下:
1)训练阶段。
1-1)准备数据集,所述数据集包括训练集和评估集。
因为多分支网络可以用在图像分类、目标检测等计算机视觉任务上,所以需要根据目标任务准备数据集。数据集的主要内容一般是图片或视频和其对应的标注信息,图片大小根据任务目标也会不同。将所述数据集按照设定的比例划分为训练集和评估集。
本公开一个具体实施例中,训练一个多分支网络以用于图像分类。在该实施例中,所述数据集采用cifar10数据集,该数据集包含50000张32*32的图片和每张图片对应的分类信息,随机选取其中的40000张图片作为训练集,剩余10000张图片作为评估集。
1-2)数据集预处理。
本实施例中,将训练集和评估集的所有图片以及对应的标注结果处理成目标任务模型可接受的类型。本公开一个具体实施例中,以cifar10数据集为例,对图片进行随机旋转,然后进行标准化处理。本实施例中图片不需要进行裁剪等增强操作,标准化处理的公式如下:
Figure BDA0003638159310000051
其中,x表示该数据集中任一图片的像素值(从RGB格式的0-255映射到0-1的数据),μ表示训练集中所有图片的像素均值,σ表示训练集中所有图片的像素标准差。该实施例中,μ=[0.4914,0.4822,0.4465],σ=[0.2023,0.1994,0.2010]。该实施例中,预处理还包括将图片对应的标注从单一类别处理成类别的概率,若任一图像属于某一类别,则该图片对应该类别的概率值为1,对应其余类别的概率值均为0;比如对于类别标注为5的任一图片,其处理后的类别概率值为[0,0,0,0,1,0,0,0,0,0],以匹配模型输出。
1-3)构建多分支网络并进行训练;具体步骤如下。
1-3-1)根据任务目标和需求,获取预训练网络,预训练网络为经过训练的用于计算机视觉任务的DNN模型。预训练网络可以通过使用训练集用传统训练方法获取,也可以直接使用已有的预训练网络以节省准备时间。
在本公开一个具体实施例中,使用步骤1)的训练集训练一个用于图像分类的VGG19网络作为预训练网络。
1-3-2)在预训练网络的基础上加入分支以构建多分支网络。
具体地,首先需要确定分支的插入位置,一般会选在预训练网络的池化层或者激活层之后,因为这些层的计算时间比较短,而且处理完的数据容易被分支网络处理。在本公开一个具体实施例中,以VGG19网络为例,选择在每个max_pooling(最大池化)层之后插入新的分支以形成多分支网络,该多分支网络的结构图如图2所示,共存在4个分支,其中节点(v1,v2,v3,v4,v5)分别代表预训练网络中的卷积块block1,block2,block3,block4和block5,这些结构串联组成了VGG19。节点(b1,b2,b3,b4)分别代表插入的分支,实线箭头代表中间数据的流动过程,虚线箭头代表预测结果的流动方向。各分支可以使用统计机器学习的SVM(软支持向量机)等方法,也可以使用深度学习的CNN(卷积神经网络)或者VIT(Vision-Transformer)等模型。本实施例选择了精度和速度相对比较均衡的CNN网络作为分支,每个分支结构相同,其中以第一个分支b1为例,结构如图3所示,从上往下进行层的推理。左边是每个层的名字,包括conv(卷积层)、bn(批归一化层)、relu(激活层)、max_pooling(最大池化层)和linear(全连接层),右边是该层次对应数据维度的变化情况,*代表了batchsize(批大小)。flatten操作是将高维数据转换为一维数据,可见右边数据维度的变化。其中包含一个卷积模块(Conv Block)对输入数据进行特征提取和数据降维,和两个全连接层组成的分类器(Classifier)完成最终的图像分类任务。
1-3-3)对每个分支进行训练。
本实施例中,在训练分支的过程中,需要对预训练网络进行固化用来提取特征。每个分支基于自身对应的预训练网络部分的输出进行训练。在本公开的一个具体实施例中,分支b1对应的预训练网络部分为节点v1之前的预训练网络,在训练分支b1时,需要固定节点v1之前的预训练网络,使用预训练网络在节点v1的输出作为分支b1输入。
各分支训练时,将每个分支对应的预训练网络的部分与该分支自身组成一个新的网络。在本公开的一个具体实施例中,图4展示了四个分支训练时对应新网络的构成,其中第一个分支网络由预训练网络中的block1和分支b1组成,第二个分支网络由预训练网络中的block1、block2和分支b2组成,第三个分支网络由预训练网络中的block1、block2、block3和分支b3组成,第四个分支网络由预训练网络中的block1、block2、block3、block4和分支b4组成。需要说明的是,所述预训练网络的对应部分固定,即表示该部分在分支训练时权重不更新。
利用训练集对每个分支构成的新网络分别进行训练,当达到设定的训练轮数或者损失稳定时,该分支训练完毕。所有分支训练完毕后,得到训练完毕的多分支网络。
2)校准阶段。
对经过步骤1)训练完毕的多分支网络的评估校准。
在该步骤中,需要得到评估集的不确信度分布,不确信度即样本预测困难程度。根据所述不确信度分布划分不同的不确信度级别并确定每个不确信度级别在不同分支上的精度表现,从而确定多分支网络对于不同不确信度级别的分发方案。具体步骤如下:
2-1)确定评估集的不确信度分布。
具体地,利用评估集经过多分支网络第一个分支(即距离多分支网络输入最近的分支,本实施例中为分支b1)得到的初始预测结果,计算评估集所有样本的初始不确信度分布。
因为分发模式需要在第一个分支完成计算后直接确定输出分支。多分支网络会存在过拟合问题,在预测概率上比较自信,造成不确信度分布倾向于垂尾分布。所以需要使用temperature Scaling(温度缩放)确定一个合适的参数T将初始不确信度分布由垂尾分布放平为均匀分布,得到评估集的不确信度分布。temperature Scaling可以对模型进行校准,提升多分支网络的精度表现。
本公开的一个具体实施例中,对于评估集的任一样本,假设分支b1的输出为y=(y1,y2,...,y10),其中yi代表预测样本为第i类的概率。则最后输出的每个类别概率
Figure BDA0003638159310000071
为:
Figure BDA0003638159310000072
其中,T为超参数,可通过启发式方法确定,使不确信度分布接近于均匀分布,在本公开一个具体实施例例中,T=1.5。
该样本的不确信度由最终输出
Figure BDA0003638159310000081
确定,表达式如下:
Figure BDA0003638159310000082
Figure BDA0003638159310000083
中最大值
Figure BDA0003638159310000084
减去
Figure BDA0003638159310000085
中第二大值
Figure BDA0003638159310000086
的差值即为该样本的不确信度。
2-2)划分不确信度级别。
由步骤2-1)得到的不确信度分布,根据评估集每个样本的不确信度将评估集样本平均划分为M份,以确定不确信度的M个级别,其中M为一个可调参数,M越大,不确信度划分越细粒度,但是计算会更复杂,对评估集样本数量要求也更高。
在该本公开一个具体实施例中M=10,且不同级别的分类边界是[0.000,0.058,0.130,0.223,0.343,0.480,0.625,0.777,0.894,0.966,1]。不确信度接近于0的为困难样本,不确信度接近于1的为简单样本。然后根据分类边界将评估集划分为10组样本集,测试不同不确信度级别的样本集在每个分支的精度和每个分支的推理延迟,其中精度即每个样本集由各个分支进行输出的平均预测准确率,推理延迟即每个样本集由各个分支进行输出的平均执行时间。
4)2-3)生成多分支网络的分发方案。
在本实施例中,使用DSGA算法(分发方案生成算法)生成符合目标精度需求的分发方案。所述分发方案即确定每个不确信度级别对应的输出分支,所述输出分支可以是第一个分支,即不再使用剩余分支,本公开一个具体实施中,若输出分支为第一个分支,则直接选取分支b1的预测结果作为输入样本的最终分类结果。具体步骤如下:
2-3-1)分发方案初始化。
令所有不确信度级别的样本初始时均从第一个分支输出,本公开一个具体实施例中初始的分发方案为[1,1,1,1,1,1,1,1,1,1],即被划分成10个不确信度级别的评估集样本均选择分支b1输出对应的图片分类结果。
令每个不确信度级别对应的当前候选分支为当前输出分支的下一个分支,本公开一个具体实施例中每个不确信度级别的初始候选分支为分支b2,初始的候选分支集合为[2,2,2,2,2,2,2,2,2,2]。
对于每个不确信度级别,计算当前候选分支对应的加速比,所述加速比为采用当前候选分支相比当前输出分支带来的精度增加量与采用当前候选分支相比当前输出分支带来的推理时间增加量之比,表达式为:
Figure BDA0003638159310000087
其中,Δacc=NewBranchacc-OlBranchacc表示当前候选分支替换当前输出分支所带来的预测精度增加量;NewBranchacc为当前候选分支对应的预测精度,OlBranchacc为当前输出分支对应的预测精度;
Δtime=NewBranchtime-OlBranchtime表示当前候选分支替换当前输出分支所带来的推理时间增加量;NewBranchtime为当前候选分支对应的推理时间,OldBranchtime为当前输出分支对应的推理时间;
2-3-2)分发方案的更新。
在所有当前候选分支中选择加速比最大值对应的不确信度级别,将该不确信度级别的当前候选分支作为该不确信度级别新的当前输出分支,得到更新后的当前分发方案;然后更新该不确信度级别的候选分支为当前输出分支的下一个分支,得到更新后的候选分支集合;利用更新后当前分发方案和候选分支集合,计算每个不确信度级别更新后的加速比。
本公开的一个具体实施例中,第一次更新后加速比最大的候选分支对应第一个不确信度级别,则当前分发方案更新为[2,1,1,1,1,1,1,1,1,1],候选分支集合更新为[3,2,2,2,2,2,2,2,2,2]。第一个不确信度级别对应的候选分支的加速比更新为第一个不确信度级别样本在分支3相对比分支2带来的精度提升与推理延迟增加的比例。
2-3-3)利用DSGA算法得到每个不确信度级别对应的最终输出分支,构成所述多分支网络的最终分发方案。
需要说明的是,本实施例提出的DSGA算法的核心概念是每一次更新当前分发方案都贪婪地选择加速比最大的候选分支,直到候选分支集合中所有的当前候选分支都不会带来精度提升或者当前分发方案已经满足目标精度。
本公开一个具体实施例中,相对于预训练网络没有精度损失对应的最终分发方案是[5,5,5,5,4,4,3,3,1,1]。这意味不确信度介于[0.000,0.058]属于最困难的级别,会选择第五个分支为输出分支。约有40%的样本从分支5输出,20%的样本从分支4输出,20%的样本从分支3输出,20%的样本从分支1输出。
3)推理阶段。
本实施例中,已经完成了多分支网络的训练、不确信度级别的划分和分发方案的确定,可以直接进行真实样本的推理。本公开提出的分发推理模式示意图如图5所示,其中dispense模块负责根据当前分发方案分发样本。详细推理步骤如下:
3-1)获取待推理图片并进行预处理。
本公开一个具体实施例中,按照步骤2)对训练集预处理的方式处理待推理图片,得到输入图片x。
3-2)将输入图片x输入训练完毕的多分支网络的第一个分支,即多分支网络的基础部分,得到对应的初始预测结果和对应的不确信度;
本公开一个具体实施例中,表达式如下:
z=v1(x)
y=b1(z)=(y1,y2,...,y10)
Figure BDA0003638159310000101
Figure BDA0003638159310000102
其中,v1(x)表示x在节点v1的输出,b1(z)表示x在第一个分支的输出。
3-3)根据预设的不确信度级别划分结果,确定x所属的不确信度级别;根据所述不确信度级别,确定x对应的输出分支并得到最终的预测结果。
本公开一个具体实施例中,判断x的不确信度
Figure BDA0003638159310000103
位于M个不确信度级别中的哪一级别,然后根据分发方案确定该级别对应的输出分支。
在该具体实施例中,不确信度计算出为0.813,介于[0.777,0.894],基于分发方案确定输出分支为第三个分支,则第三个分支复用x在节点v1的输出z,然后从第三个分支的输出得到x更新后的预测结果
Figure BDA0003638159310000104
(需要说明的是,在这种情况下,x在第一个分支得到的初始预测直接被舍弃)。
如果确定的输出分支为第一个分支,则采取步骤2-2)的基础部分的预测信息作为输入图片的最终预测结果。即如果计算出的不确信度为0.991,分发方案确定的输出分支为第一个分支,所以不需要继续推理。
如果输出分支为剩余分支,则使用输出分支继续推理,采取最终输出分支的预测信息作为最终结果。在该具体实施例中,选择第三个分支的预测信息
Figure BDA0003638159310000105
作为最终预测结果。
为实现上述实施例,本公开第二方面实施例提出一种多分支网络的分发推理装置,包括:
图片获取模块,用于获取待推理图片并进行预处理;
初始预测模块,用于将预处理完毕的所述图片输入预设的多分支网络的第一个分支,所述第一个分支输出所述图片对应的初始预测结果;利用所述初始预测结果,计算所述图片的不确信度;
不确信度划分模块,用于根据所述不确信度,按照预设的不确信度级别划分结果,确定所述图片对应的不确信度级别;
最终预测模块,用于利用预设的所述多分支网络的分发方案,根据所述图片对应的不确信度级别确定所述图片在所述分发方案中对应的输出分支,以得到所述图片最终的预测结果。
为实现上述实施例,本公开第三方面实施例提出一种电子设备,包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行上述一种多分支网络的分发推理方法。
为实现上述实施例,本公开第四方面实施例提出一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述一种多分支网络的分发推理方法。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,一种多分支网络的分发推理方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种多分支网络的分发推理方法,其特征在于,包括:
获取待推理图片并进行预处理;
将预处理完毕的所述图片输入预设的多分支网络的第一个分支,所述第一个分支输出所述图片对应的初始预测结果;利用所述初始预测结果,计算所述图片的不确信度;
根据所述不确信度,按照预设的不确信度级别划分结果,确定所述图片对应的不确信度级别;
利用预设的所述多分支网络的分发方案,根据所述图片对应的不确信度级别确定所述图片在所述分发方案中对应的输出分支,以得到所述图片最终的预测结果。
2.根据权利要求1所述的方法,其特征在于,所述利用预设的所述多分支网络的分发方案,根据所述图片对应的不确信度级别确定所述图片在所述分发方案中对应的输出分支,以得到所述图片最终的预测结果,包括:
若所述输出分支为所述多分支网络的第一个分支,则所述初始预测结果即为所述图片的最终预测结果;否则,将所述图片对应输出分支的输出结果作为所述图片的最终预测结果。
3.根据权利要求1所述的方法,其特征在于,所述利用所述初始预测结果,计算所述图片的不确信度,包括:
所述初始预测结果包括所述图片经由所述第一个分支输出的对应各分类的概率,将所述概率的最大值减去所述概率的第二最大值即为所述图片的不确信度。
4.根据权利要求3所述的方法,其特征在于,在所述将预处理完毕的所述图片输入预设的多分支网络的第一个分支之前,还包括:
训练所述多分支网络;
所述训练多分支网络,包括:
根据所述多分支网络的任务获取数据集,所述数据集包括多张图片及所述图片的标注信息;将所述数据集划分为训练集和评估集;
对所述数据集进行预处理;
获取用于所述任务的预训练网络作为所述多分支网络的主干,在所述预训练网络设定位置处加入分支,以构建所述多分支网络;
利用预处理完毕的所述训练集对所述多分支网络的每个分支分别训练,得到训练完毕的所述多分支网络;其中,所述每个分支训练时,将所述分支及所述分支之前的所述预训练网络部分构成一个新的网络进行训练,所述分支之前的所述预训练网络部分在训练时权重保持不变。
5.根据权利要求4所述的方法,其特征在于,所述不确信度级别划分结果的确定方法包括:
将预处理完毕的所述评估集的各图片输入所述训练完毕的多分支网络的第一个分支,得到所述评估集各图片的初始预测结果;
根据所述初始预测结果,计算所述评估集各图片的不确信度;
根据所述评估集各图片的不确信度,将所述评估集所有图片平均划分为M组,以得到所述不确信度级别划分结果,其中M为预设的不确信度级别总数。
6.根据权利要求5所述的方法,其特征在于,所述多分支网络的分发方案确定方法包括:
1)确定初始分发方案,所述初始方案中所述评估集中每个不确信度级别的图片对应的当前输出分支均为所述多分支网络的第一个分支;
2)令每个不确信度级别对应的当前候选分支为当前输出分支的下一个分支;
3)利用所述评估集,对每个不确信度级别,计算当前候选分支对应的加速比,所述加速比为采用所述当前候选分支相比所述当前输出分支带来的预测精度增加量与采用所述当前候选分支相比所述当前输出分支带来的推理时间增加量之比;
4)在所有当前候选分支中选择加速比最大值对应的不确信度级别,将所述不确信度级别的当前候选分支作为所述不确信度级别新的当前输出分支,得到更新后的当前分发方案;更新所述不确信度级别的当前候选分支,得到更新后的候选分支集合;
5)重复步骤3)至4),直至所述候选分支集合中所有当前候选分支不再提升所述预测精度或者所述当前分发方案达到设定的所述预测精度,则将所述当前分发方案作为所述多分支网络的最终分发方案。
7.根据权利要求6所述的方法,其特征在于,所述预测精度为所述评估集中任一不确信度级别对应的所有图片由任一分支进行输出的平均预测准确率,所述推理时间为所述评估集中任一不确信度级别对应的所有图片由任一分支进行输出的平均执行时间。
8.一种多分支网络的分发推理装置,其特征在于,包括:
图片获取模块,用于获取待推理图片并进行预处理;
初始预测模块,用于将预处理完毕的所述图片输入预设的多分支网络的第一个分支,所述第一个分支输出所述图片对应的初始预测结果;利用所述初始预测结果,计算所述图片的不确信度;
不确信度划分模块,用于根据所述不确信度,按照预设的不确信度级别划分结果,确定所述图片对应的不确信度级别;
最终预测模块,用于利用预设的所述多分支网络的分发方案,根据所述图片对应的不确信度级别确定所述图片在所述分发方案中对应的输出分支,以得到所述图片最终的预测结果。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行上述权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1-7任一项所述的方法。
CN202210507991.7A 2022-05-11 2022-05-11 多分支网络的分发推理方法、装置、电子设备及存储介质 Active CN114972850B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210507991.7A CN114972850B (zh) 2022-05-11 2022-05-11 多分支网络的分发推理方法、装置、电子设备及存储介质
PCT/CN2023/070521 WO2023216642A1 (zh) 2022-05-11 2023-01-04 多分支网络的分发推理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210507991.7A CN114972850B (zh) 2022-05-11 2022-05-11 多分支网络的分发推理方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN114972850A true CN114972850A (zh) 2022-08-30
CN114972850B CN114972850B (zh) 2024-07-12

Family

ID=82981258

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210507991.7A Active CN114972850B (zh) 2022-05-11 2022-05-11 多分支网络的分发推理方法、装置、电子设备及存储介质

Country Status (2)

Country Link
CN (1) CN114972850B (zh)
WO (1) WO2023216642A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115906941A (zh) * 2022-11-16 2023-04-04 中国烟草总公司湖南省公司 神经网络自适应退出方法、装置、设备及可读存储介质
WO2023216642A1 (zh) * 2022-05-11 2023-11-16 清华大学 多分支网络的分发推理方法和装置
CN117077162A (zh) * 2023-07-31 2023-11-17 上海交通大学 基于Transformer网络模型的隐私推理方法、系统、介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210056357A1 (en) * 2019-08-19 2021-02-25 Board Of Trustees Of Michigan State University Systems and methods for implementing flexible, input-adaptive deep learning neural networks
CN113067873A (zh) * 2021-03-19 2021-07-02 北京邮电大学 基于深度强化学习的边云协同优化方法
CN113762304A (zh) * 2020-11-26 2021-12-07 北京京东乾石科技有限公司 图像处理方法、图像处理装置和电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111582091B (zh) * 2020-04-27 2023-05-02 西安交通大学 基于多分支卷积神经网络的行人识别方法
CN114972850B (zh) * 2022-05-11 2024-07-12 清华大学 多分支网络的分发推理方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210056357A1 (en) * 2019-08-19 2021-02-25 Board Of Trustees Of Michigan State University Systems and methods for implementing flexible, input-adaptive deep learning neural networks
CN113762304A (zh) * 2020-11-26 2021-12-07 北京京东乾石科技有限公司 图像处理方法、图像处理装置和电子设备
CN113067873A (zh) * 2021-03-19 2021-07-02 北京邮电大学 基于深度强化学习的边云协同优化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
EUNHYEOK PARK等: "Big/Little Deep Neural Network for Ultra Low Power Inference", 2015 INTERNATIONAL CONFERENCE ON HARDWARE/SOFTWARE CODESIGN AND SYSTEM SYNTHESIS (CODES+ISSS)》, 9 October 2015 (2015-10-09), pages 3 *
SURAT TEERAPITTAYANON等: "BranchyNet: Fast Inference via Early Exiting from Deep Neural Networks", ARXIV: 1709.01686V1, HTTPS://ARXIV.ORG/ABS/1709.01686, 6 September 2017 (2017-09-06) *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023216642A1 (zh) * 2022-05-11 2023-11-16 清华大学 多分支网络的分发推理方法和装置
CN115906941A (zh) * 2022-11-16 2023-04-04 中国烟草总公司湖南省公司 神经网络自适应退出方法、装置、设备及可读存储介质
CN115906941B (zh) * 2022-11-16 2023-10-03 中国烟草总公司湖南省公司 神经网络自适应退出方法、装置、设备及可读存储介质
CN117077162A (zh) * 2023-07-31 2023-11-17 上海交通大学 基于Transformer网络模型的隐私推理方法、系统、介质及电子设备
CN117077162B (zh) * 2023-07-31 2024-04-19 上海交通大学 基于Transformer网络模型的隐私推理方法、系统、介质及电子设备

Also Published As

Publication number Publication date
WO2023216642A1 (zh) 2023-11-16
CN114972850B (zh) 2024-07-12

Similar Documents

Publication Publication Date Title
CN114972850B (zh) 多分支网络的分发推理方法、装置、电子设备及存储介质
CN113570029A (zh) 获取神经网络模型的方法、图像处理方法及装置
US20230196202A1 (en) System and method for automatic building of learning machines using learning machines
CN112529146B (zh) 神经网络模型训练的方法和装置
CN113628211B (zh) 参数预测推荐方法、设备及计算机可读存储介质
US20220083843A1 (en) System and method for balancing sparsity in weights for accelerating deep neural networks
US20220261623A1 (en) System and method for channel-separable operations in deep neural networks
CN112200296A (zh) 网络模型量化方法、装置、存储介质及电子设备
CN113723438A (zh) 分类模型校准
CN116245142A (zh) 用于深度神经网络的混合精度量化的系统和方法
US20230021551A1 (en) Using training images and scaled training images to train an image segmentation model
CN112132255A (zh) 人工智能神经网络引擎中模型推断的批量归一化层融合和量化方法
WO2023220878A1 (en) Training neural network trough dense-connection based knowlege distillation
WO2023097428A1 (en) Methods and apparatus to perform parallel double-batched self-distillation in resource-constrained image recognition applications
CN113762304B (zh) 图像处理方法、图像处理装置和电子设备
US20230410465A1 (en) Real time salient object detection in images and videos
EP4354349A1 (en) Halo transfer for convolution workload partition
US20230008856A1 (en) Neural network facilitating fixed-point emulation of floating-point computation
CN116128044A (zh) 一种模型剪枝方法、图像处理方法及相关装置
CN112633407B (zh) 分类模型的训练方法、装置、电子设备及存储介质
CN110633722B (zh) 人工神经网络调整方法和装置
CN114580625A (zh) 用于训练神经网络的方法、设备和计算机可读存储介质
EP4386657A1 (en) Image optimization method and apparatus, electronic device, medium, and program product
WO2023220867A1 (en) Neural network with point grid convolutional layer
WO2024040546A1 (en) Point grid network with learnable semantic grid transformation

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