神经网络推理优化方法、装置、设备及可读存储介质与流程

文档序号:33622219发布日期:2023-03-25 12:44阅读:41来源:国知局
神经网络推理优化方法、装置、设备及可读存储介质与流程

1.本技术涉及神经网络构建领域,尤其涉及一种神经网络推理优化方法、装置、设备及可读存储介质。


背景技术:

2.随着深度学习的快速发展,复杂的神经网络模型不断出现:resnet152、desnet121和resnest等,该类模型的网络运算层数多,虽然更深的模型普遍具有更好的精度,但是前向进行网络层运算的时延也随之增加。
3.尤其,在资源紧张的设备或服务器上部署复杂的神经网络模型,网络运算层的层数多会导致设备或服务器负载过大,从而造成超高延迟。


技术实现要素:

4.有鉴于此,本技术提供一种神经网络推理优化方法、装置、设备及可读存储介质,旨在降低神经网络的网络层计算的延迟。
5.为实现上述目的,本技术提供一种神经网络推理优化方法,所述神经网络推理优化方法包括以下步骤:
6.获取待处理的图像数据;
7.将所述图像数据输入至双退出点模型;所述双退出点模型基于图像训练样本和所述图像训练样本的信息标签对待训练的多分支网络模型进行迭代训练得到的,所述多分支网络模型包括主干网络和分支网络模型;
8.在预设分支点处,将所述图像数据由所述主干网络输入至所述分支网络,并基于所述分支网络,对所述图像数据进行分类处理,得到分类结果;
9.若所述分类结果不符合预设标准,则选择延时最短的卸载点返回至所述主干网络,并基于所述主干网络,对所述图像数据进行分类处理,直至分类完成。
10.示例性的,所述将所述图像数据输入至双退出点模型,包括:
11.将预设测试集输入至双退出点模型;
12.计算进入所述分支网络后的网络层时延;
13.在进入所述分支网络后,计算所述分支网络的退出时延;
14.计算当前网络带宽的传输时延;
15.基于所述网络层时延、所述退出时延和所述传输时延,计算卸载点;
16.压缩传输到所述卸载点的数据;
17.将压缩后的数据和所述卸载点卸载至所述主干网络。
18.示例性的,所述压缩传输到所述卸载点的数据,包括:
19.对所述图像数据进行压缩处理,得到灰度图;
20.将双退出点模型中的神经元从浮点类型转化为字节类型,得到特征数据;
21.将所述灰度图和所述特征数据和所述卸载点输入至所述主干网络。
22.示例性的,所述将所述灰度图和所述特征数据和所述卸载点输入至所述主干网络,包括:
23.基于所述特征数据,将所述灰度图恢复至原本数据形式;
24.将恢复后的数据和所述卸载点卸载至所述主干网络。
25.示例性的,所述若分类后的结果不符合预设标准,则选择延时最短的卸载点返回至所述主干网络,包括:
26.计算所述分类结果的归一化信息熵;
27.若所述归一化信息熵大于预设熵值,则选择延时最短的卸载点返回至所述主干网络;
28.若所述归一化信息熵小于或等于预设熵值,则在所述分支网络对应的本地设备处退出,完成分类处理动作。
29.示例性的,所述若所述归一化信息熵小于或等于预设熵值,则在所述分支网络对应的本地设备处退出,包括:
30.获取与所述主干网络对应的服务器端的通信状态;
31.若所述通信状态不符合预设状态标准,则调整所述预设熵值至与所述通信状态对应的大小,以增加所述本地设备处退出的数量。
32.示例性的,所述将所述图像数据输入至双退出点模型之前,包括:
33.获取所述图像数据组成的训练集;
34.将所述训练集输入至预设的双退出点模型;
35.基于所述双退出点模型,计算每个退出点的输出值,并基于所述输出值,计算所述每个退出点的精度值;
36.若所述精度值大于当前网络精度值,则保存所述精度值,直至迭代训练结束。
37.示例性的,为实现上述目的,本技术还提供一种神经网络推理优化装置,所述装置包括:
38.获取模块,用于获取待处理的图像数据;
39.输入模块,用于将所述图像数据输入至双退出点模型;所述双退出点模型基于图像训练样本和所述图像训练样本的信息标签对待训练的多分支网络模型进行迭代训练得到的,所述多分支网络模型包括主干网络和分支网络模型;
40.分类模块,用于基于所述分支网络,对所述图像数据进行分类处理,得到分类结果;
41.判断模块,用于若所述分类结果不符合预设标准,则选择延时最短的卸载点返回至所述主干网络,并基于所述主干网络,对所述图像数据进行分类处理,直至分类完成。
42.示例性的,为实现上述目的,本技术还提供一种神经网络推理优化设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的神经网络推理优化程序,所述神经网络推理优化程序配置为实现如上所述的神经网络推理优化方法的步骤。
43.示例性的,为实现上述目的,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有神经网络推理优化程序,所述神经网络推理优化程序被处理器执行时实现如上所述的神经网络推理优化方法的步骤。
44.与现有技术中,随着深度学习的快速发展,神经网络模型越加复杂,虽然复杂的模型具有更好的精度,但是同时使用该模型进行向前推理所产生的时延也随之增加的情况相比,在本技术中,获取到待处理的图像数据,并将该图像数据输入至双退出点模型,该双退出点模型基于图像训练样本和图像训练样本对应的信息标签对待训练的多分支网络模型进行迭代训练而得到的,该多分支网络模型包括主干网络和分支网络,在预设分支点处,将图像数据从主干网络处输入至分支网络,并根据分支网络,对图像数据进行分类处理,从而得到分类结果,在分类结果不符合预设标准时,将相关数据返回至主干网络中,并使用主干网络进行分类处理,直至分类完成,即采用主干网络和分支网络并行处理的方式,主干网络和分支网络均可输出结果,在分支网络的分类结果不符合标准时,选择延迟最短的卸载点返回主干网络进行分类,从而在保证的精度的前提下,降低推理延迟,同时可在分支网络提前结束分类处理过程,避免主干网络的高额开销,从而同样达到降低神经网络的推理延迟的效果。
附图说明
45.图1为本技术神经网络推理优化方法第一实施例的流程示意图;
46.图2为本技术神经网络推理优化方法第二实施例的流程示意图;
47.图3为本技术双退出点模型本地退出的计算流程;
48.图4为本技术双退出点模型的部署框架;
49.图5为本技术实施例方案涉及的硬件运行环境的结构示意图。
50.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
51.应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
52.本技术提供一种神经网络推理优化方法,参照图1,图1为本技术神经网络推理优化方法第一实施例的流程示意图。
53.本技术实施例提供了神经网络推理优化方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。为了便于描述,以下省略执行主体描述神经网络推理优化方法的各个步骤,神经网络推理优化方法包括:
54.步骤s110:获取待处理的图像数据;
55.待处理的图像数据为待进行识别、分类的图像数据。
56.示例性的,获取到一定数量的图像数据,该图像数据的来源为监控设备,需从图像数据中识别出包含特定物体的图像,此时,该图像数据即为待进行识别处理的图像数据,又例如,获取到一定数量的图像数据,该图像数据涵盖了多种场景,此时需从该图像数据中分类出包含特定场景一、特定场景二和特定场景三等类别的图像,此时,该图像数据即为待进行分类处理的图像数据。
57.其中,特定场景或特定物体可为任一设定的场景或物体。
58.步骤s120:将所述图像数据输入至双退出点模型;所述双退出点模型基于图像训练样本和所述图像训练样本的信息标签对待训练的多分支网络模型进行迭代训练得到的,
所述多分支网络模型包括主干网络和分支网络模型;
59.对图像数据进行分类或识别处理时,可使用相应的神经网络模型,使用该神经网络模型对图像数据进行自动处理。
60.示例性的,采用双退出点模型,该双退出点模型由多分支网络模型训练得到的,该多分支网络模型包括主干网络和分支网络,即在主干网络和分支网络中,均能够实现对数据进行处理的过程,而主干网络中的神经网络层的层数多于分支网络中的神经网络层的层数。
61.其中,该双退出点模型为通过在vgg16模型中新增侧分支网络,从而构建具有两个退出点的网络模型tevn(two exit vgg16 net,基于vgg16模型的双退出点神经网络模型)。
62.其中,主干网络和分支网络均作为退出点,使得神经网络模型为双退出点模型。
63.示例性的,该双退出点模型,通过在卸载点前选定分支点,将新增的退出分支作为边缘设备的本地退出点,从而构建具有本地退出点和边缘云退出点的双退出点模型。在本地设备退出的输入图像通过计算小型神经网络提前结束推理任务,同时避免网络传输开销,从而缩短推理任务的整体延迟。
64.其中,分支网络的位置及其结构组成是影响多分支网络模型性能的主要因素。相比标准的网络模型,双退出点模型的侧分支网络是额外的macs运算(multiply and accumulate operations,乘法和累加运算)。在输入数据在侧分支网络退出时,分支点后的主干网络层是节省的macs运算。假设主干网络计算开销为tm,侧分支网络计算开销为tb,分支点前的主干网络计算开销为总样本为n,分支退出样本为n1,主干退出样本为n2,其中n=n1+n2。在总样本为n的情况下,标准网络模型推理的计算开销表示为n
×
tm,双退出点模型推理的计算开销如(1-1)所示。
[0065][0066]
因此,在保证n与tm不变的情况下,降低分支点前的计算开销和侧分支网络的计算开销tb,能显著降低模型推理任务的平均延迟。
[0067]
图像分类任务简单分为特征提取与分类两个步骤,其中,特征提取主要由卷积层、池化层完成,而分类步骤主要由全连接层完成。针对图像分类的网络模型,分类结构通常置于池化层之后。
[0068]
示例性的,分支网络结构可为只含1层卷积层、1层池化层和2层全连接层,并将分支点处的特征数据从128通道降低至32通道,从而降低侧分支网络的计算开销tb。其中,分支网络的层数的数量只要保证降低计算开销即可。
[0069]
示例性的,所述将所述图像数据输入至双退出点模型之前,包括:
[0070]
步骤a:获取所述图像数据组成的训练集;
[0071]
训练集为用于训练模型的数据集,该数据集由图像数据组成。
[0072]
图像数据可为任一形式的图像,例如,监控采集到的图像、移动终端采集到的图像、物联网设备采集到的图像等。
[0073]
步骤b:将所述训练集输入至预设的双退出点模型;
[0074]
将训练集输入至预设的双退出点模型,其中,预设的双退出点模型即为待训练的多分支网络模型,对该待训练的多分支网络模型进行训练,即可得到能够对图像进行分类
处理的双退出点模型。
[0075]
图像分类任务简单分为特征提取和分类两个步骤,因此,训练内容也针对该两个过程进行。
[0076]
步骤c:基于所述双退出点模型,计算每个退出点的输出值,并基于所述输出值,计算所述每个退出点的精度值;
[0077]
而作为多分支的网络模型,双退出点模型存在主干网络和分支网络,从而该模型存在两个输出值,即在主干网络对训练集中的数据进行处理后输出一个值,在分支网络对训练集中的数据进行处理后输出一个值。
[0078]
同时,为确保该神经网络模型的准确性,在训练得到两个输出值后,需要针对该两个输出值进一步计算,一方面计算出每个退出点的输出值,并确定根据输出值进一步计算出精度值。
[0079]
即模型训练是部署神经网络应用至为关键的一步,并且学习率、批量大小和迭代次数等超参数对模型精度性能的影响较大。而由于双退出点模型的一个输入对应两个输出,其训练阶段除了设定普通的超参数外,还需调整损失函数的计算方式。深度学习的分类任务通常采用交叉熵损失函数计算输出向量(每个输出点的输出值)与标签值的误差,并通过反向传播将误差传递至前一层网络,同时采用梯度下降等算法更新网络模型的参数。交叉熵损失函数的计算式如(1-2)所示:
[0080][0081]
其中,n表示类别数,表示真实标签,y表示神经网络的输出。
[0082]
对于双退出点模型,其损失值l
t
是两个退出点损失值的加权和,l
t
的计算式如(1-3)所示:
[0083][0084]
其中,w1+w2=1,yb表示侧分支网络输出的值,ym表示主干网络输出的值,lb表示yb与标签之间的误差值,lm表示ym与标签之间的误差值。考虑到两个退出点训练误差的公平性,取w1=w2=0.5。
[0085]
步骤d:若所述精度值大于当前网络精度值,则保存所述精度值,直至迭代训练结束。
[0086]
在训练过程中,将训练集中的数据不断输入至模型中,从而不断得到模型的输出值,随之根据输出值和根据输出值计算的精度值,对模型不断进行迭代更新,该更新过程包括正常模型训练中的梯度计算和标签计算,此为通用技术,在此不再赘述,以及该更新过程还包括对精度值的更新。
[0087]
在计算得到最新的精度值后,需将该最新的精度值与当前模型主干网络精度值进行比较大小,若当前网络精度值大,则保留当前网络精度值,若计算得到的最新的精度值大,则保留该最新的精度值,并使用该最新的精度值替换当前网络精度值。
[0088]
此外,还需要对每次迭代更新后的每个输出的值进行比对,由于双退出点模型的一个输入对应两个输出,因而需要验证两个输出值与样本的标签值是否相等,并分别计算两个退出点的准确率,同时在模型参数中记录该精度值。此外,为了保证双退出点模型具有较高的精度性能上限,在迭代训练时以主干网络的精度数值作为判断标准,保存主干网络
退出点具有最高精度时的模型参数,即上述更新精度值的过程。
[0089]
步骤s130:在预设分支点处,将所述图像数据由所述主干网络输入至所述分支网络,并基于所述分支网络,对所述图像数据进行分类处理,得到分类结果;
[0090]
预设分支点即为在主干网络的网络层中进入到分支网络的节点,通常,该分支节点的位置选择在第2层池化层与第5层池化层之间。
[0091]
在图像数据进入主干网络后,经过池化层处理,进而到达了预设分支点,在该节点处进入到分支网络,即通过分支网络的简单网络层对图像数据进行处理,从而得到分支网络的输出值。
[0092]
分类结果即为分支网络对图像数据进行分类处理后所输出的结果。
[0093]
示例性的,仅使用分支网络的简单网络层对图像数据进行分类处理,会存在分类结果不够准确,神经网络模型的层数越多,得到的输出结果越精确,因此,在根据分支网络对图像数据进行分类处理后,需判断该分类处理的结果的精准度是否符合要求,该判断存在两种结果,符合要求和不符合要求,根据这两种结果,产生不同的后续处理过程。
[0094]
步骤s140:若所述分类结果不符合预设标准,则选择延时最短的卸载点返回至所述主干网络,并基于所述主干网络,对所述图像数据进行分类处理,直至分类完成。
[0095]
在分类结果不符合预设标准,则需返回主干网络,返回主干网络时需将图像数据和分支网络的分类结果均返回至主干网络,后续使用主干网络进一步对图像数据进行分类处理,直至分类完成。
[0096]
该评定方式通过计算归一化信息熵的大小,该预设标准为针对归一化信息熵而设定阈值参数,通过比对归一化信息熵和阈值参数,从而确定当前分支网络的分类结果是否符合标准。
[0097]
示例性的,所述若分类后的结果不符合预设标准,则选择延时最短的卸载点返回至所述主干网络,包括:
[0098]
步骤e:计算所述分类结果的归一化信息熵;
[0099]
针对深度学习的分类任务,输入图像通过预处理操作转换为张量数据,并经过大量的卷积和池化运算,从而获得分类结果。神经网络最后一层的输出是一个n元向量,其分量的最大值表示计算结果,其中n代表类别数量。为了进一步挖掘神经网络输出的数据,引入信息熵的概念。在一个随机事件中,信息熵表示可能发生事件的信息量期望,信息量越小某事件发生的确定性越高。信息熵的计算公式如(1-4)所示。
[0100][0101]
为了限定信息熵的取值边界,进一步引出归一化信息熵的概念,其中,归一化信息熵的计算式如(1-5)所示。
[0102][0103]
其中,q(p)∈(0,1)。
[0104]
其中,n表示所有随机事件的总数,pi表示某种事件发生的概率。
[0105]
步骤f:若所述归一化信息熵大于预设熵值,则选择延时最短的卸载点返回至所述主干网络;
[0106]
对于神经网络输出的n元向量,通过softmax函数将其转换成对应类别的概率,并
计算此概率向量的信息熵,熵值越小代表神经网络推理正确的可能性越高。
[0107]
即在归一化信息熵大于预设熵值时,即判断当前分支网络的推理存在错误,而在归一化信息熵小于预设熵值时,即判断当前分支网络的推理为正确的。
[0108]
而判断当前分支网络的推理存在错误时,需要进一步使用主干网络进行分类计算,则需要返回至主干网络。
[0109]
而预设熵值为衡量计算得到的归一化信息熵大小的标准,该预设熵值可根据实际情况而设定,例如,在低精度要求时,可适当增加预设熵值的大小,从而提高判断分支网络的推理正确的比例,反之,在高精度要求时,可适当降低预设熵值的大小。
[0110]
步骤g:若所述归一化信息熵小于或等于预设熵值,则在所述分支网络对应的本地设备处退出,完成分类处理动作。
[0111]
在归一化信息熵小于或等于预设熵值时,则判断当前分支网络的推理正确,即该分支网络的分类结果正确,该结果可作为最终输出结果,因此,在分支网络对应的本地设备处退出,完成分类处理动作。
[0112]
示例性的,所述若所述归一化信息熵小于或等于预设熵值,则在所述分支网络对应的本地设备处退出,包括:
[0113]
步骤h:获取与所述主干网络对应的服务器端的通信状态;
[0114]
此外,在判断归一化信息熵与预设熵值之间的大小时,考虑到资源受限的本地设备难以满足复杂神经网络模型所需的资源要求,通过在边缘服务器中部署神经网络模型,将分支点后的主干网络层计算卸载至边缘服务器,从而缓解本地设备的资源压力,同时满足推理任务的计算资源要求。
[0115]
即在分支网络无法处理高精度任务时,需要将分支网络的数据卸载至主干网络,但是,该卸载过程会导致主干网络对应的服务器端的负载增加,影响主干网络处理数据的时延,此外,当服务器端所处的网络环境为弱网环境或网络延迟高的情况下,同样影响主干网络接收数据的时延,从而影响处理数据的整体时间。
[0116]
因此,在主干网络对应的服务器端负载高或网络延迟高时,应尽可能降低主干网络处理的数据量,从而节省网络资源,以及缩短处理任务的延迟。
[0117]
即获取主干网络对应的服务器端的通信状态,根据通信状态,适当调整通过分支网络直接退出、输出结果的比例。
[0118]
其中,通信状态包括网络延迟和服务器端的负载情况。
[0119]
步骤i:若所述通信状态不符合预设状态标准,则调整所述预设熵值至与所述通信状态对应的大小,以增加所述本地设备处退出的数量。
[0120]
预设状态标准分为两个标准,分别对应网络延迟情况和服务器端的负载情况,分别设定不同的阈值参数,在网络延迟或负载大于阈值参数后,或在网络延迟和负载均大于阈值参数后,判断当前通信状态不符合预设状态标准,此时,需要适当增加在分支网络对应的本地设备处退出处理任务的比例。
[0121]
而判断本地设备的退出情况需要判断归一化信息熵和预设熵值的大小,在归一化信息熵小于或等于预设熵值时,在本地设备处退出,因此,此时根据通信状态可适当增加预设熵值的大小,例如,网络延迟刚刚超出阈值参数10%,则增大预设熵值10%的大小。实际调整预设熵值的大小可根据实际情况具体而定,而非仅依靠上述举例中的数据调整,保证
通信状态和预设熵值对应即可。
[0122]
根据上述内容,分别将主干网络部署在边缘服务器端、将分支网络部署在边缘本地设备处,采用主干网络和分支网络均可输出结果的方式,相比标准神经网络计算量下降56.1%,在网络带宽为2000kbps下,相比完全部署至边缘云平均延迟下降36.5%,相比完全本地计算平均延迟下降58.5%,同时双退出点模型的精度性能与原神经网络模型保持一致。
[0123]
与现有技术中,随着深度学习的快速发展,神经网络模型越加复杂,虽然复杂的模型具有更好的精度,但是同时使用该模型进行向前推理所产生的时延也随之增加的情况相比,在本技术中,获取到待处理的图像数据,并将该图像数据输入至双退出点模型,该双退出点模型基于图像训练样本和图像训练样本对应的信息标签对待训练的多分支网络模型进行迭代训练而得到的,该多分支网络模型包括主干网络和分支网络,在预设分支点处,将图像数据从主干网络处输入至分支网络,并根据分支网络,对图像数据进行分类处理,从而得到分类结果,在分类结果不符合预设标准时,将相关数据返回至主干网络中,并使用主干网络进行分类处理,直至分类完成,即采用主干网络和分支网络并行处理的方式,主干网络和分支网络均可输出结果,在分支网络的分类结果不符合标准时,选择延迟最短的卸载点返回主干网络进行分类,从而在保证的精度的前提下,降低推理延迟,同时可在分支网络提前结束分类处理过程,避免主干网络的高额开销,从而同样达到降低神经网络的推理延迟的效果。
[0124]
示例性的,参照图2,图2是本技术神经网络推理优化方法第二实施例的流程示意图,基于上述本技术神经网络推理优化方法第一实施例,提出第二实施例,所述方法还包括:
[0125]
步骤s210:将预设测试集输入至双退出点模型;
[0126]
根据多分支网络模型包括主干网络和分支网络的特征,需要使用预设测试集对双退出点模型的输出情况进行测试,一方面测试提前在分支网络出退出分类任务的情况,另一方面测试从分支网络返回至主干网络时的卸载点选择,该卸载点的选择需要进行相应的时延计算,从而保证从分支网络返回至主干网络时的时延最低。
[0127]
该预设测试集的数据内容与训练集的数据内容相同。
[0128]
步骤s220:计算进入所述分支网络后的网络层时延;
[0129]
在双退出点模型中,分支点前的主干网络层和侧分支网络层均在本地设备执行,其计算时延取决分支网路对应的本地设备的硬件资源。对于本地退出点,其计算时延表示为
[0130]
对于边缘服务器退出点,假设分支点后的主干网络层数为n,其表示为l={li|i=1,2...n},设定分支点的位置为p0,则l1与l2之间表示为p1,ln后的位置表示为pn,为方便描述此处仅统计卷积层和全连接层。
[0131]
设定卸载点为pi(0≤i≤n);
[0132]
示例性的,网络层时延包括分支网络对应的本地设备执行分支点后的主干网络层的时延,和主干网络对应的服务器执行分支点后的主干网络层的时延。
[0133]
其中,本地设备执行分支点后的主干网络层表示为le={l1,l2…
li};
[0134]
其中,服务器执行分支点后的主干网络层表示为ls={l
i+1
,l
i+2

ln};
[0135]
其中,le的计算时延表示为te,ls的计算时延表示为ts,数据传输时延表示为tu。因此,主干网络退出点的计算时延表达式如(1-6)所示。
[0136][0137]
通过计算的值,选择在不同的计算设备与网络带宽下的最佳卸载点pi,从而缩短在边缘服务器退出的模型推理延迟。
[0138]
步骤s230:在进入所述分支网络后,计算所述分支网络的退出时延;
[0139]
该部分的退出时延即为分支网络经过分类处理,以及计算归一化信息熵等计算步骤的时延。
[0140]
参照图3,图3为双退出点模型本地退出的计算流程,将分支网络部署在对应的本地设备中,将主干网络部署在对应的边缘服务器端,输入张量至主干网络,该张量即为图像数据的张量形式数据,在主干网络中进入到预设分支点处,在该分支点处进入到分支网络,即图3中的侧分支网络,通过分支网络对图像数据进行分类处理后,经过softmax函数处理后,计算得到归一化信息熵,根据该归一化信息熵和预设熵值比较,该离线阶段的阈值q即为预设熵值,当归一化信息熵小于预设熵值后,在本地设备处退出,而在归一化信息熵大于小于预设熵值后,返回主干网络,进而回到分支点后的主干网络层。
[0141]
即根据图3的流程,可计算出分支网络的退出时延。
[0142]
步骤s240:计算当前网络带宽的传输时延;
[0143]
当前网络带宽的传输时延即为当前网络影响下的时延,可根据网络波动情况而具体计算。
[0144]
步骤s250:基于所述网络层时延、所述退出时延和所述传输时延,计算卸载点;
[0145]
通过计算的值,选择在不同的计算设备与网络带宽下的最佳卸载点pi,从而缩短在主干网络对应的服务器退出的模型推理延迟。
[0146]
即在计算出主干网络退出点的时延后,进一步计算使得主干网络时延为最小值时的时延数据,该时延数据受到上述分支网络的退出时延、网络带宽的传输时延、网络层时延的影响,因此,根据上述内容可计算出主干网络的最短延时退出点,从而也计算出分支网络的延时最短的退出点,进而确定出卸载点的数据。
[0147]
步骤s260:压缩传输到所述卸载点的数据;
[0148]
由于数据传输时延在模型推理延迟中占很高的比重,通过对传输数据采用无损或有损的压缩方案,降低数据字节大小,从而优化数据传输时延。为了不影响模型的精度性能,采用近无损的压缩方案。
[0149]
示例性的,所述压缩传输到所述卸载点的数据,包括:
[0150]
步骤j:对所述图像数据进行压缩处理,得到灰度图;
[0151]
步骤k:将双退出点模型中的神经元从浮点类型转化为字节类型,得到特征数据;
[0152]
该方案将神经元的32位浮点类型转换为8位byte类型,从而降低近4倍的数据大小。对于转换后的特征数据,通过采用png无损压缩,进一步将其转换成位深度为8的灰度图。由于神经网络推理具有容错性,当输出分量最大值所对应的类别与无压缩方案的结果一致时,该压缩方案将不损失模型精度。神经元数据类型的转换公式如(1-7)所示。
[0153][0154]
其中,v表示卸载点处的特征数据,其张量形式为c*w*h,max(v)表示该特征张量的最大值元素,min(v)表示该特征张量的最小值元素,且取n为4。
[0155]
步骤l:将所述灰度图和所述特征数据和所述卸载点输入至所述主干网络。
[0156]
将得到的灰度图、特征数据和卸载点均输入至主干网络,从而使得主干网络对应的服务器针对卸载点数据,对数据进行后续处理。
[0157]
步骤s270:将压缩后的数据和所述卸载点卸载至所述主干网络。
[0158]
示例性的,所述将所述灰度图和所述特征数据和所述卸载点输入至所述主干网络,包括:
[0159]
步骤m:基于所述特征数据,将所述灰度图恢复至原本数据形式;
[0160]
步骤n:将恢复后的数据和所述卸载点卸载至所述主干网络。
[0161]
通过对中间特征数据采用近无损的压缩方案,将其转换为png灰度图,极大的降低数据传输开销。然而,在边缘服务器接收png灰度图后,需采用数据恢复方案将其还原为压缩前的张量形式c*w*h。数据恢复方案将灰度图转换为byte类型的张量数据,并利用公式(1-8)将该张量数据转换为浮点类型的张量数据通过将与压缩前张量形式一致的特征张量和卸载点pi作为边缘服务器中模型推理的输入,执行卸载点后的主干网络层。
[0162][0163]
虽然近无损的压缩方案需额外传输max(v)和min(v)两个参数,但相比压缩前的特征数据大小具有明显的压缩效果。因此,通过降低数据传输时延,进一步缩短在主干网络对应的服务器退出的模型推理延迟,同时不损失模型的精度性能。
[0164]
而在将压缩后的数据和卸载点卸载至主干网络后,需要将原本已经压缩的数据进行复原处理,恢复成压缩前的张量形式,并执行卸载点之后的主干网络层。
[0165]
参照图4,图4为双退出点模型的部署框架,图4中上半部分的方块流程为主干网络和分支网络的网络层运算过程,在预设分支点处进入到分支网络后,分支网络会输出相应结果,在输出的相应结果的置信度高,则在本地设备退出,在输出的相应结果的置信度低,则返回主干网络,其中置信度根据预设阈值和归一化信息熵比较而判断出来,在返回主干网络时,需寻找最佳卸载点,即上述步骤过程中计算出的卸载点,将相应从分支网络中输出的数据和卸载点卸载至主干网络中,最后主干网络进过数据分离处理后,在主干网络对应的服务器退出。
[0166]
主干网络对应的服务器和分支网络对应的本地设备之间通过网络连接。
[0167]
在本实施例中,通过将预设测试集输入至双退出点模型,从而进行计算进入分支网络后的网络层时延、分支网络的退出时延,以及计算当前网络带宽的传输时延,从而根据上述计算的时延结果,计算出卸载点,并将到达该卸载点的数据进行相应的压缩处理,并将压缩后的数据和卸载点卸载至主干网络,从而使得执行卸载点之后的主干网络层,从而降低主干网络退出的时延,同时,使用对数据进行压缩的方式,同样降低了数据卸载至主干网络时的数据传输时延。
[0168]
此外,本技术还提供一种神经网络推理优化装置,所述一种神经网络推理优化装置包括:
[0169]
获取模块,用于获取待处理的图像数据;
[0170]
输入模块,用于将所述图像数据输入至双退出点模型;所述双退出点模型基于图像训练样本和所述图像训练样本的信息标签对待训练的多分支网络模型进行迭代训练得到的,所述多分支网络模型包括主干网络和分支网络模型;
[0171]
分类模块,用于基于所述分支网络,对所述图像数据进行分类处理,得到分类结果;
[0172]
判断模块,用于若所述分类结果不符合预设标准,则选择延时最短的卸载点返回至所述主干网络,并基于所述主干网络,对所述图像数据进行分类处理,直至分类完成。
[0173]
示例性的,所述输入模块包括:
[0174]
第一输入子模块,用于将预设测试集输入至双退出点模型;
[0175]
第一计算子模块,用于计算进入所述分支网络后的网络层时延;
[0176]
第二计算子模块,用于在进入所述分支网络后,计算所述分支网络的退出时延;
[0177]
第三计算子模块,用于计算当前网络带宽的传输时延;
[0178]
第四计算子模块,用于基于所述网络层时延、所述退出时延和所述传输时延,计算卸载点;
[0179]
压缩子模块,用于压缩传输到所述卸载点的数据;
[0180]
卸载子模块,用于将压缩后的数据和所述卸载点卸载至所述主干网络。
[0181]
示例性的,所述压缩子模块包括:
[0182]
压缩单元,用于对所述图像数据进行压缩处理,得到灰度图;
[0183]
转化单元,用于将双退出点模型中的神经元从浮点类型转化为字节类型,得到特征数据;
[0184]
输入单元,用于将所述灰度图和所述特征数据和所述卸载点输入至所述主干网络。
[0185]
示例性的,所述输入单元包括:
[0186]
恢复子单元,用于基于所述特征数据,将所述灰度图恢复至原本数据形式;
[0187]
输入子单元,用于将恢复后的数据和所述卸载点卸载至所述主干网络。
[0188]
示例性的,所述判断模块包括:
[0189]
第五计算子模块,用于计算所述分类结果的归一化信息熵;
[0190]
第一判断子模块,用于若所述归一化信息熵大于预设熵值,则选择延时最短的卸载点返回至所述主干网络;
[0191]
第二判断子模块,用于若所述归一化信息熵小于或等于预设熵值,则在所述分支网络对应的本地设备处退出,完成分类处理动作。
[0192]
示例性的,所述第二判断子模块包括:
[0193]
获取单元,用于获取与所述主干网络对应的服务器端的通信状态;
[0194]
判断单元,用于若所述通信状态不符合预设状态标准,则调整所述预设熵值至与所述通信状态对应的大小,以增加所述本地设备处退出的数量。
[0195]
示例性的,所述输入模块包括:
[0196]
获取子模块,用于获取所述图像数据组成的训练集;
[0197]
第二输入子模块,用于将所述训练集输入至预设的双退出点模型;
[0198]
第六计算子模块,用于基于所述双退出点模型,计算每个退出点的输出值,并基于所述输出值,计算所述每个退出点的精度值;
[0199]
第三判断子模块,用于若所述精度值大于当前网络精度值,则保存所述精度值,直至迭代训练结束。
[0200]
本技术神经网络推理优化装置具体实施方式与上述神经网络推理优化方法各实施例基本相同,在此不再赘述。
[0201]
此外,本技术还提供一种神经网络推理优化设备。如图5所示,图5是本技术实施例方案涉及的硬件运行环境的结构示意图。
[0202]
示例性的,图5即可为神经网络推理优化设备的硬件运行环境的结构示意图。
[0203]
如图5所示,该神经网络推理优化设备可以包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501、通信接口502和存储器503通过通信总线504完成相互间的通信,存储器503,用于存放计算机程序;处理器501,用于执行存储器503上所存放的程序时,实现神经网络推理优化方法的步骤。
[0204]
上述神经网络推理优化设备提到的通信总线504可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线504可以分为地址总线、数据总线和控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0205]
通信接口502用于上述神经网络推理优化设备与其他设备之间的通信。
[0206]
存储器503可以包括随机存取存储器(random access memory,rmd),也可以包括非易失性存储器(non-volatile memory,nm),例如至少一个磁盘存储器。可选的,存储器503还可以是至少一个位于远离前述处理器501的存储装置。
[0207]
上述的处理器501可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0208]
本技术神经网络推理优化设备具体实施方式与上述神经网络推理优化方法各实施例基本相同,在此不再赘述。
[0209]
此外,本技术实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有神经网络推理优化程序,所述神经网络推理优化程序被处理器执行时实现如上所述的神经网络推理优化方法的步骤。
[0210]
本技术计算机可读存储介质具体实施方式与上述神经网络推理优化方法各实施例基本相同,在此不再赘述。
[0211]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有
的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0212]
上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0213]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
[0214]
以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1