一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于离散事件的边缘深度学习模拟器的构建与应用

2022-06-02 13:36:17 来源:中国专利 TAG:


1.本发明属于人工智能与深度学习技术领域,涉及边缘计算,特别涉及边缘学习仿真,为一种基于离散事件的边缘深度学习模拟器。


背景技术:

2.分布式机器学习是机器学习当前最热门的研究领域之一,尤其是随着“大数据”概念的兴起,数据爆炸式增长,我们迎来了崭新的“big data”时代。传统的机器学习注重在单机中处理数据的速度,而庞大的数据存储和计算在单机上是远远做不到的,且硬件支持的有限性使得在单机上做大数据处理显得十分吃力,将计算模型分布式地部署到多台、多类型机器上进行同时计算是必要的解决方式。分布式机器学习的目标是将具有庞大数据和计算量的任务分布式地部署到多台机器上,以提高数据计算的速度和可扩展性,减少任务的耗时。
3.随着分布式学习的诞生,分布式学习在边缘计算中得以快速发展。与此同时,由于计算机和网络通信技术的发展,新的网络协议和算法不断诞生。如果模拟器够与深度学习框架交互,则可以促进此类研究。然而网络协议的不可控和易变的特性,给新的网络方案的验证带来了极大困难。针对这一问题诞生了三种方法,分析方法,网络模拟,实验网方法。网络模拟作为分析方法和实验网方法的中间阶段,具有灵活性,低成本,可以对新协议进行初步验证和实现。网络模拟与分布式学习的结合在实际的训练和测试过程中也面临众多问题和挑战。目前,在边缘设备上有一些主流的仿真框架,如matlab,ns3等。随着数据的迅速增长以及深度学习的发展,这些框架已经无法满足现有的需求。matlab在设计算法,操作代码,嵌入系统方面都比较简洁。但是它不支持离散事件等系统化的仿真方法,使边缘学习性能验证的有效性无法保证。而ns3作为网络模拟器,还未涉及到深度学习领域。


技术实现要素:

4.为了克服上述现有技术的缺点,本发明的目的在于提供一种基于离散事件的边缘深度学习模拟器,将深度学习框架集成到边缘仿真环境中,以实现在边缘环境中进行分布式学习。
5.为了实现上述目的,本发明采用的技术方案是:
6.基于离散事件的边缘深度学习模拟器的构建方法,包括如下步骤:
7.步骤1,在仿真模块中构建网内缓存模块,所述网内缓存模块用于在边缘节点缓存数据,为深度学习提供数据支撑;
8.步骤2,构建基于深度学习的边缘仿真环境,以使边缘节点支持深度学习,步骤如下:
9.步骤2.1,在仿真模块中构建深度学习模块;
10.步骤2.2,为深度学习模块和仿真模块联合编译创造条件;
11.步骤2.3,在仿真的边缘学习中使用深度学习模块进行深度学习。
12.在一个实施例中,所述仿真模块包括应用程序子模块、拓扑和节点;所述应用程序子模块用于获取应用程序,并使用由系统软件控制的资源来实现相应目标;所述节点用于仿真边缘设备;所述拓扑用于构建边缘设备之间的通信。
13.在一个实施例中,所述网内缓存模块基于lru缓存算法,以边缘节点之间发送的数据包为缓存单位。
14.在一个实施例中,所述网内缓存模块在仿真模块中的构建过程如下:
15.在仿真模块中,构建基于lru缓存算法的lru缓存模块,将所述lru缓存模块加入到边缘节点中。
16.在一个实施例中,所述lru缓存模块的构建方法是:
17.在仿真模块的核心目录下,使用创建新模块的命令创建自定义的新模块,并将新模块命名为lru,将lru缓存算法放到新模块的目录的相应位置;
18.所述lru缓存模块的配置方法是:
19.所述lru缓存模块中的wscript文件用来注册其包含的源码和引用仿真模块中其他模块的情况,根据lru缓存模块所需要依赖的其他模块,在lru缓存模块中添加所需要依赖的其他模块;
20.所述lru缓存模块通过如下方法加入至边缘仿真环境中:
21.使用边缘仿真环境中的命令配置和编译边缘仿真环境下的所有模块,以将lru缓存模块添加进边缘仿真环境的核心模块中。
22.在一个实施例中,将所述网内缓存模块作为node类的成员变量,加入至各边缘节点中。
23.在一个实施例中,所述步骤2.1,构建深度学习模块的方法是:
24.在仿真模块中添加深度学习库,为深度学习提供模型支撑,所述深度学习库由若干深度神经网络模型组成,比如mlp,alexnet,lenet等。
25.在一个实施例中,所述步骤2.2,导入用于线性运算的eigen库,为深度学习模块的矩阵运算提供支撑。
26.在一个实施例中,所述步骤2.3,对于深度学习库中已经存在的深度神经网络模型,直接进行调用;对于深度学习库中不存在的深度神经网络模型,则设计并实现一个不依赖第三方框架的模型,导入现存的深度学习库,再去调用相应的文件。
27.所述基于离散事件的边缘深度学习模拟器可用于联邦学习或边缘集成学习等边缘学习。
28.与现有技术相比,本发明为边缘智能仿真验证提供了前提条件。在该模拟器上可以构建类似于真实tcp/ip边缘网络的深度学习环境,模拟海量训练数据的传输、缓存和处理。
附图说明
29.图1是本发明结构示意图。
30.图2是本发明实施例的拓扑结构图。
具体实施方式
31.下面结合附图和实施例详细说明本发明的实施方式。
32.为便于理解本发明的技术方案,对本发明涉及到的概念作出如下解释。
33.离散事件:事件在离散的时间点上变化,即,不连续的事件。
34.边缘:是指在靠近物或数据源头的一侧。
35.边缘设备:边缘节点的具体化,在边缘放置的设备,从物理形态上看,是出现于云、端之间,更接近端侧(也就是设备侧)的设备,比如笔记本,手机等。
36.边缘节点:所有的边缘的设备的都被抽象为边缘节点。
37.深度学习:是机器学习(ml,machine learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(ai,artificial intelligence)。
38.模拟器:是指主要透过软件模拟硬件处理器的功能和指令系统的程序使计算机或者其他多媒体平台(掌上电脑,手机)能够运行其他平台上的软件。本发明专利就是为了创造边缘和学习环境的。
39.仿真模块:由很多子模块组成,比如拓扑,应用,网内缓存等子模块。
40.网内缓存模块:为了模拟边缘节点的缓存。
41.边缘仿真环境:在边缘进行仿真学习的环境。
42.深度学习模块=深度学习库:主要是深度学习的模型,有alexnet,lenet,bp,mlp。
43.如图1所示,本发明为一种基于离散事件的边缘深度学习模拟器(simulator for edge deep learning,sim4edgedl)的构建方法,
44.包括如下步骤:
45.步骤1,在仿真模块中构建网内缓存模块。
46.现有的仿真模块,主要包括应用程序子模块、拓扑和节点等,其中,应用程序子模块用于获取应用程序,并使用由系统软件控制的资源来实现相应目标;节点用于仿真边缘设备;拓扑则用于构建边缘设备之间的通信。通过设置网络和拓扑,仿真模块可实现深度学习环境的场景模拟,模拟场景包含模拟条件下的数据传输和数据缓存以及网络拓扑。
47.本发明在仿真模块中增设了网内缓存模块,网内缓存模块用于在边缘节点缓存数据,从而为深度学习提供数据支撑。
48.示例地,本发明的网内缓存模块以边缘节点之间发送的数据包为缓存单位,为构建网内缓存模块,首先需要基于一个缓存算法,本发明使用lru(最近最久未使用)缓存算法;构建过程如下:
49.在仿真模块中,构建基于lru缓存算法的lru缓存模块,并将lru缓存模块加入到边缘节点中,目的是实现节点的存储功能。具体地,在仿真模块的核心目录下,使用创建新模块的命令创建自定义的新模块,并将新模块命名为lru,将lru缓存算法放到新模块的目录的相应位置;核心目录包括构建仿真的基本模块(网内缓存模块,应用子模块等等)的目录,例如,一个文件夹的list、每一个模块包括以下几个文件夹,有model,test,example,wscript等,放到相应的位置即将实现lru的代码放在model中,用于测试的代码放在test中。
50.lru缓存模块作为仿真中的某个子模块,和其他子模块一样,包含的文件有model,test,example,wscript。model文件用于存放lru缓存实现的代码,test文件用于存放测试
lru缓存的代码,example里面可以存放例子,wscript是配置文件。
51.lru缓存模块通过如下方法配置:
52.lru缓存模块中的wscript文件结构是固定的,其用来注册其包含的源码和引用仿真模块中其他模块的情况,根据lru缓存模块所需要依赖的其他模块,在lru缓存模块中添加所需要依赖的其他模块。本发明的lru缓存模块需要依赖于仿真模块的部分模块,比如数据包,但由于仿真模块的子模块都以core代替,所以只需要添加core模块即可。
53.lru缓存模块通过如下方法加入至边缘仿真环境中:
54.使用边缘仿真环境中的命令配置和编译边缘仿真环境下的所有模块,以将lru缓存模块添加进边缘仿真环境的核心模块中。核心模块指包括构建仿真的基本模块,有拓扑、应用等子模块。
55.lru缓存模块可以用ns3命名空间,也可以用自定义命名空间。在编写相应代码引用该模块时需要引入ns3的头文件。至此已经完成了在ns3中新建缓存模块的全过程,只需要在边缘节点上安装缓存即可。
56.边缘节点类定义在node类模块中,所以需要把lru缓存模块作为node类的成员变量加进去,边缘节点调用该变量即实现了lru缓存。
57.步骤2,构建基于深度学习的边缘仿真环境,以使边缘节点支持深度学习,步骤如下:
58.步骤2.1,在仿真模块中构建深度学习模块。
59.深度学习模块通过设计神经网络模型,可处理逼近、分类和预测问题。构建深度学习模块需要在仿真模块的配置文件中添加新的依赖,示例地,可在仿真模块中添加深度学习库,为深度学习提供模型支撑,所述深度学习库由若干深度神经网络模型组成,比如mlp,alexnet,lenet等。即,将需要的深度学习库包含进去,包括头文件和源文件。
60.步骤2.2,为深度学习模块和仿真模块联合编译创造条件。
61.示例地,将eigen库导入深度学习模块中,eigen库是一个用于线性运算的c 模板库,可以支持矩阵和矢量运算,数值分析及其相关的算法。因为深度学习模块中包含了大量的矩阵运算,所以需要使用eigen的模板库。
62.步骤2.3,在仿真的边缘学习中使用深度学习模块进行深度学习。
63.该步骤包含两种情况,一种是深度学习库中已经存在的深度神经网络模型,另一种是深度学习库中不存在的深度神经网络模型。由于深度学习库的deep文件中包含了深度学习库的所有核心代码的头文件,所以对于已经存在的深度神经网络模型,直接进行调用即可。对于深度学习库中不存在的深度神经网络模型,则需要设计并实现一个不依赖第三方框架的模型,导入现存的深度学习库,使用的时候去调用相应的用于深度学习的代码去实现所需功能。示例地,第三方框架指tensorflow,caffer等,不依赖与第三方框架是没有使用这些框架,直接用c或c 写出来的代码。此外,需要注意的是,对于仿真模块和深度学习模块中都包含的变量,比如vector向量,在使用时需要加以区别,在使用深度学习模块的vector向量时,在前面添加深度学习的命名空间即可。
64.本发明sim4edgedl支持离散仿真,并且允许用户在边缘模拟场景中执行深度学习任务,使得在边缘网络环境中开展深度学习研究更加便捷。因此可以用于联邦学习,边缘集成学习。
65.在本发明的一个具体实施例中,进行边缘集成学习,包括:(1)构建实验所需的边缘仿真环境,包括构建网络拓扑结构和通信的建立,拓扑结构如图2所示;(2)神经网络的搭建;(3)在边缘仿真环境中执行集成学习。
66.更具体地:
67.步骤(1),拓扑结构的构建,它包括一个远程数据中心、一个网关节点、两个边缘计算节点和四个终端设备,通过千兆链路连接,它们之间数据传输方式使用的是点对点传输。点对点技术(peer-to-peer,p2p)又称对等互联网络技术,是一种网络的新技术,它依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。
68.步骤(2),根据前述基于离散事件的边缘学习模拟器,进行深度学习模型的训练。这里以添加新模型为例,需要设计一个不依赖于第三方框架的模型,利用深度学习模块的接口,来实现其他类型的神经网络模型。以下是在深度学习模块中加入一个新的模型lenet的具体方法。
69.把lenet的源码导入深度学习模块中,需要以下几个步骤。
70.1)按照深度学习模块中的编码方式把lenet的源码写成lenet.c和lenet.h两个文件。
71.2)把lenet的头文件lenet.h包含进deep.h文件中,这样就实现了在深度学习模块中导入一个新的神经网络模型。
72.3)在使用lenet的时候,只需要在程序中引用头文件deep.h。
73.步骤(3),集成学习可以细分为如下几个步骤:
74.1)生成节点,使用nodecontainer类中的create()函数创建所需要的节点。
75.2)安装网络设备,通过点对点信道实现节点的物理连接,设置数据的传输速率。
76.3)为节点安装协议栈,主要为每一个节点配置ip地址。
77.4)设置发送端和接收端,每一个发送端都需要设定接收端,这里根据创建的拓扑结构,接收端是边缘计算设备,发送端是终端设备。
78.5)对神经网络的训练进行设置,并封装成一个应用,设置包括,训练的终止条件,采取的训练策略等。
79.6)在参与训练的节点上安装应用,同时为每个节点初始化缓存大小并将数据集按条存入缓存。
80.7)在完成了上面的配置之后,就可以在边缘仿真环境中进行深度学习。本实施例设置了两个节点,包括四个终端设备,两个边缘计算设备,一个数据中心。终端设备用于缓存不同的数据,在模型进行训练之前,边缘计算设备需要从终端设备的缓存中获取训练的数据。两个边缘计算设备,用于进行模型训练。每个边缘计算设备使用lenet模型训练,子模型收敛之后,得到n个差异化子模型h1,

,hn,使用socket将参数发送到参数服务器,利用这n个子模型构建集成学习模型。
81.本发明通过在边缘仿真环境中搭建深度学习模块,实现了sim4edgedl,在边缘仿真环境中实现了深度学习。基于离散事件的边缘深度学习仿真平台可以构建类似于真实tcp/ip边缘网络的深度学习环境,模拟海量训练数据的传输、缓存和处理,为边缘智能仿真验证提供了前提条件。
82.以上,对本发明的具体实施方式做了具体描述,但是不应该认定本发明的具体实
施只局限于这些说明。对于本发明所属领域的普通技术人员来说,在不脱离本发明构思和由权利要求书所限定的保护范围的前提之下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献