基于循环动态展开的数据处理方法、系统、设备和介质

文档序号:35967923发布日期:2023-11-09 08:20阅读:24来源:国知局
基于循环动态展开的数据处理方法、系统、设备和介质

本发明涉及一种基于循环动态展开的数据处理方法、系统、设备和介质,属于人工智能和数据处理领域。


背景技术:

1、科学与工程学科经常使用微分方程对领域问题进行建模,并使用数值方法进行求解,微分方程以及相应的求解器被广泛应用在物理、化学、人口学等领域,几乎涵盖了科学与工程的各个领域。人工驱动的科学研究(ai for science)主要基于神经网络算法对传统科学与工程领域的问题进行求解,其中一个重要的分支是使用人工智能技术求解微分方程,将神经网络极强的拟合性能与描述物理规律的微分方程相结合。比如,可以使用神经常微分方程(neural ordinary differential equation,neural ode)进行物理学问题的求解,例如二体问题(two body problem),即平面上两个粒子的引力运动。由于引力运动是典型的动力学问题,可被微分方程建模描述,收集到观察数据后,可以进一步使用神经常微分方程对其进行求解。

2、基于神经常微分方程的求解方法与传统微分方程求解方法类似,先对时间进行离散化,然后使用循环,逐步计算每个时间步的值。神经常微分方程的求解其实就是在训练一个带有循环的神经网络。神经网络的训练需要在异构芯片(例如graphics processingunit, gpu)上进行,在神经网络编译器中,有两种常见的循环处理方式:循环全展开与循环不展开,分别介绍如下:

3、循环全展开在编译期间对循环内所有计算步的算子进行编译,如果单步计算较复杂且循环步数较多,则编译时间很长;展开后的内核程序仅被触发一次,数据搬运和内核程序启动的时间被大大缩小,运行时间将被缩短。

4、循环不展开的编译时间很短,循环的每一步都要判断是否到达循环终止条件,并启动内核程序,如果循环步数很多,数据搬运和内核程序启动的次数大大增加,这些耗时增加将使得运行时间增加。编译时间和运行时间共同组成了神经微分方程的求解过程,无论哪个时间过长,都将影响神经微分方程总的求解时间。


技术实现思路

1、针对上述问题,本发明的目的是提供一种基于循环动态展开的数据处理方法、系统、设备和介质,该方法基于改进的循环动态展开算法来优化神经微分方程的计算过程,能够有效提高计算速度。

2、为实现上述目的,本发明采取以下技术方案:

3、第一方面,本发明提供一种基于循环动态展开的数据处理方法,包括以下步骤:

4、对预先建立的目标神经网络模型的参数值进行初始化,并将该目标神经网络作为循环体的一个时间步构建目标神经微分方程;

5、采用循环动态展开算法对构建的目标神经微分方程进行求解,得到训练好的目标神经网络;

6、将当前待处理数据作为目标神经网络的输入,并将目标神经网络的输出作为数据处理结果。

7、进一步,所述采用循环动态展开算法对构建的目标神经微分方程进行求解,求解过程也即对目标神经网络的训练过程,得到训练好的目标神经网络,包括:

8、对目标神经微分方程的特征、编译时间和运行时间进行提取,输入预先训练好的自动调优器模型,得到最优展开因子;

9、利用最优展开因子,使用循环动态展开算法对目标神经微分方程进行训练求解,得到训练好的目标神经网络。

10、进一步,所述自动调优器模型的训练,包括:

11、离线随机生成并运行不同类型的神经微分方程,收集各神经微分方程的编译时间、运行时间;

12、对各神经微分方程进行特征提取,与其编译时间和运行时间相结合,得到训练样本集;

13、利用训练样本集对预先建立的自动调优器模型进行离线训练,用于对最优展开因子进行预测。

14、进一步,所述随机生成并运行不同类型的神经微分方程时,通过改变神经微分方程的不同配置方式实现,所述神经微分方程的配置方式至少包括:隐层数量、隐层宽度、批次大小、微分方程维度、步数、展开因子。

15、进一步,所述对各神经微分方程进行特征提取时,提取内容包括:

16、性能特征,包括神经网络模型计算过程中读取字节数,写入字节数,浮点运算次数,计算强度;

17、神经网络架构特征,包括参数量,隐层数量,隐层宽度,批次大小;

18、方程特征,包括微分方程维度,步数;

19、展开因子。

20、进一步,所述自动调优器模型使用决策树模型训练得到;

21、所述自动调优器模型包括输入模块、编译时间预估模块、运行时间预估模块和模型输出模块;

22、所述输入模块用于获取神经微分方程特征,并发送至所述编译时间预估模块和运行时间预估模块;

23、所述编译时间预估模块和运行时间预估模块用于根据神经微分方程特征对编译时间和运行时间进行预测,得到编译时间和运行时间;

24、所述模型输出模块用于根据编译时间和运行时间得到最优展开因子。

25、进一步,所述采用循环动态展开算法对构建的目标神经微分方程进行求解,得到训练好的目标神经网络,包括:

26、2.2.1)确定迭代参数,包括步函数、总步数、初始状态和最优展开因子;

27、2.2.2)根据总步数和最优展开因子将所有的循环步等分成多个块num_blocks,并将初始状态赋值给当前状态;

28、2.2.3)令迭代次数i=0,对第 i 个块的循环使用循环块展开算法进行计算;

29、2.2.4)判断迭代次数i是否小于num_blocks,若是,则i=i+1,并返回上一步骤,否则,输出当前计算结果;

30、2.2.5)经过前向和反向传播,得到训练好的目标神经网络。

31、第二方面,本发明提供一种基于循环动态展开的数据处理系统,包括:

32、神经微分方程构建模块,用于对预先建立的目标神经网络模型的参数值进行初始化,并将该目标神经网络作为循环体的一个时间步构建目标神经微分方程;

33、微分方程求解模块,用于采用循环动态展开算法对构建的目标神经微分方程进行求解,求解过程也即对目标神经网络的训练过程,得到训练好的目标神经网络;

34、网络预测模块,用于将当前待处理数据作为目标神经网络的输入,并将目标神经网络的输出作为数据处理结果。

35、第三方面,本发明提供一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行所述方法中的任一方法。

36、第四方面,本发明提供一种计算设备,包括:一个或多个处理器、存储器及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为所述一个或多个处理器执行,所述一个或多个程序包括用于执行所述方法中的任一方法的指令。

37、本发明由于采取以上技术方案,其具有以下优点:本发明将神经网络训练过程转换为神经微分方程求解过程,通过设计自动调优器模型获得最优展开因子,使用动态展开的方式对目标神经微分方程的循环进行展开,既利用了循环全展开的运行速度优势,又利用了循环不展开的编译速度优势,能够有效提高计算速度。因此,本发明可以广泛应用于数据处理领域。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1