1.一种边云环境下卷积神经网络模型的协同推理方法,其特征在于,基于由边缘设备与云服务器构成的边‑云协同推理系统,卷积神经网络模型的协同推理方法包括:获取给定的训练好的卷积神经网络模型的模型结构与数据流动方向,将卷积神经网络模型转换为有向无环图,并基于边缘设备与云服务器协同推理时的时延模型,构建边‑云协同推理系统的目标函数与约束条件;
基于边‑云协同推理系统的目标函数与约束条件,及最小割理论,在边‑云协同推理系统执行给定的卷积神经网络模型,获得卷积神经网络模型在异构设备上各层的执行时延以及各层输出数据;
基于卷积神经网络模型在异构设备上各层的执行时延以及各层输出数据,对有向无环图合并节点,获得规模优化后的有向无环图;对卷积神经网络模型各层输出数据进行预量化,用于减少层间传输时延,在规模优化后的有向无环图基础上,根据各层在异构设备上的执行时延以及预量化后的各层输出数据的传输时延,构建预量化后的时延图;
基于最高标号预推送算法,计算时延图中源点到汇点的最小割,并对最小割集中的割点进行实际模型压缩,获得给定卷积神经网络模型在异构设备上协同推理决策。
2.根据权利要求1所述的一种边云环境下卷积神经网络模型的协同推理方法,其特征在于,所述有向无环图表示为:,
式中,G表示根据给定的卷积神经网络模型的模型结构与数据流动方向构建的有向无环图, ,表示卷积神经网络模型的层, 表示模型的各层;表示有数据依赖的层之间关系的集合,即有向无环图中的边,中的一个元素 ,表示层 与层之间存在数据依赖,数据由层 流向层 ;
所述时延模型表示为:
,
式中, 表示卷积神经网络模型在边缘设备与云服务器上协同推理的总时延,Te表示卷积神经网络模型中部署在边缘设备上的模型层的推理时延之和,Tc表示需要传输数据层的传输数据总和的传输时延,Tt表示卷积神经网络模型中部署在云服务器上的模型层的推理时延之和。
3.根据权利要求2所述的一种边云环境下卷积神经网络模型的协同推理方法,其特征在于,卷积神经网络模型中部署在边缘设备上的模型层的推理时延之和表示为:,
需要传输数据层的传输数据总和的传输时延表示为:
,
卷积神经网络模型中部署在云服务器上的模型层的推理时延之和表示为:,
式中, 表示卷积神经网络模型第层在边缘设备上的推理时间,vi表示卷积神经网络模型中的模型层, 表示卷积神经网络模型中需要部署在边缘设备上的模型层; 表示卷积神经网络模型第层在云服务器上的推理时间, 表示卷积神经网络模型中需要部署在云服务器上的模型层; 表示 中需要传输数据到云服务器的层的集合, 表示需要传输数据层的输出数据大小,表示边缘设备与云服务器之间的数据传输速率。
4.根据权利要求1所述的一种边云环境下卷积神经网络模型的协同推理方法,其特征在于,所述目标函数为:,
式中, 表示卷积神经网络模型中需要部署在边缘设备上的模型层, 表示卷积神经网络模型中需要部署在云服务器上的模型层,argmin Ttotal表示能够使得 最小的, 表示卷积神经网络模型在边缘设备与云服务器上协同推理的总时延;
约束条件为:
,
,
式中,V表示卷积神经网络模型的所有层,对于给定卷积神经网络模型的协同推理决策,需要在边缘设备上进行推理的模型层与需要在云设备上进行推理的模型层的并集;表示需要部署在边缘设备上的层与需要部署在云服务器上的层不能有重复的层。
5.根据权利要求1所述的一种边云环境下卷积神经网络模型的协同推理方法,其特征在于,获得卷积神经网络模型在异构设备上各层的执行时延以及各层输出数据,包括:步骤S1:在卷积神经网络模型的各层上注册钩子,获取钩子在各层激活时执行该层所需的时间与各层的输出数据大小;
步骤S2:在边缘设备和云服务器上,卷积神经网络模型多次执行步骤S1,获得卷积神经网络模型在异构设备上各层的平均执行该层所需的时间为执行时延,以及各层的输出数据。
6.根据权利要求1所述的一种边云环境下卷积神经网络模型的协同推理方法,其特征在于,构建预量化后的时延图,包括:基于卷积神经网络模型在异构设备上各层的执行时延以及各层输出数据,对有向无环图合并连续的输入数据大小相同的层,获得规模优化后的有向无环图;
基于动态量化技术对卷积神经网络模型各层输出数据进行预量化,统计卷积神经网络模型各层预量化至INT8位后输出数据的大小;
基于卷积神经网络模型在异构设备上各层的执行时延以及各层输出数据、规模优化后有向无环图以及各层预量化至INT8位后输出数据的大小,构建预量化后的时延图。
7.根据权利要求6所述的一种边云环境下卷积神经网络模型的协同推理方法,其特征在于,基于卷积神经网络模型在异构设备上各层的执行时延以及各层输出数据、规模优化后有向无环图以及各层预量化至INT8位后输出数据的大小,构建预量化后的时延图,包括:对规模优化后的有向无环图,添加特殊节点“”,“”和“”,分别代表时延图的入口、出口点以及原始数据约束;
根据添加了特殊节点的有向无环图中,遍历所有除“”和“”之外的节点,设置或更新从“”到每个节点以及从每个节点到“”的边的容量属性,获得设置了各层执行时延的有向无环图;
对于设置了各层执行时延的有向无环图中所有未设置capacity属性的边,根据上游节点的预量化后输出数据和提供的带宽计算传输时延;将传输时延分配为边的容量,获得设置了各层执行时延与预量化后传输时延的有向无环图;
在设置了各层执行时延与预量化后传输时延的有向无环图的基础上,对具有多个后继的特殊节点,去除当前特殊节点连向后继节点的边,添加中间节点,连接当前节点与中间节点,并把容量设置为当前节点在网络带宽下的传输时延并预量化至INT8水平;连接中间节点和当前节点的后继节点,设置边的容量值为无穷大,获得对特殊节点处理后的有向无环图;
在对特殊节点处理后的有向无环图基础上,连接“”到“o”、“o”到“”和“o”到计算的第一层的边,获得最终的时延图。
8.根据权利要求7所述的一种边云环境下卷积神经网络模型的协同推理方法,其特征在于,所述特殊节点“”,“”和“”节点的时延和输出大小设置为0;边的容量属性被设置为存储在每个节点的层信息中的云端或边缘时延值,“e”到“o”的无限容量表示进入没有约束,“o”到“c”的零容量表示没有时延,以及“o”到第一层的容量为R,模拟目标约束。
9.根据权利要求1所述的一种边云环境下卷积神经网络模型的协同推理方法,其特征在于,获得给定卷积神经网络模型在异构设备上协同推理决策,包括:基于最高标号预推送算法,计算时延图中源点到汇点的最大流,获得包含最大流信息的残余网络;
基于残余网络,从源点出发遍历所有可达的节点,识别出源点侧的节点集合 ;
基于源点侧的节点集合,获得汇点侧的节点集合 ;
根据残余网络中从 到 的所有边,累加时延值,获得当前任务分配所能达到的最小总时延;
对于 中需要传输数据到云服务器的模型层进行动态量化,完成给定卷积神经网络模型在边‑云协同推理系统的全部流程。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现如权利要求1‑9中任一所述的一种边云环境下卷积神经网络模型的协同推理方法。