数据迁移方法、装置、服务器及存储介质与流程

文档序号:37170970发布日期:2024-03-01 12:17阅读:42来源:国知局
数据迁移方法、装置、服务器及存储介质与流程

本技术涉及数据处理的领域,尤其是涉及一种数据迁移方法、装置、服务器及存储介质。


背景技术:

1、随着人工智能的兴起,许多应用都部署了深度神经网络模型,以对光学文字识别、敏感词检测、图像分类、语音识别等任务进行更高效的处理,并且这些应用的服务开发者通常会将神经网络模型部署在服务器上。由于部署了神经网络模型的应用体积通常都较大,当需要把这样的应用数据进行传输时,如将应用配置到本地客户端的电子设备,需要对神经网络模型进行一定的精简,再进行传输。

2、在相关技术中,通常都是采用剪枝算法对神经网络模型进行精简,但是,这些剪枝算法都是只能针对神经网络的每个网络层独立剪枝的;由于神经网络模型一般都包括多个网络层,且有些网络层之间存在关联,某一个网络层的变化也会影响其余网络层的效能,因而,通过现有的剪切算法得到的精简后的神经网络模型的性能会降低,也即,精简后的神经网络模型的识别准确率较低。

3、因此,如何减少对神经网络被模型剪枝时的性能损失,是一个亟需解决的问题。


技术实现思路

1、为了减少对神经网络模型被剪枝时的性能损失,本技术提供一种数据迁移方法、装置、服务器及存储介质。

2、第一方面,本技术提供一种数据迁移方法,采用如下的技术方案:

3、一种数据迁移方法,包括:

4、获取待剪枝的神经网络中每个网络层的结构信息,所述结构信息包括网络层的参数矩阵和输出矩阵,所述输出矩阵是网络层的输入数据经过所述参数矩阵变换得到的,每个矩阵中包括至少一个类型的维度节点,每个维度节点包括至少两个通道;

5、将相邻的每两个网络层中的上网络层的所述输出矩阵和下网络层的所述参数矩阵中顺位相同且通道数量相同的两个维度节点之间建立链接关系,其中,所述上网络层的输出矩阵为所述下网络层的输入数据;

6、将在同一链接关系中所有的维度节点确定为一个目标组,同一网络层的参数矩阵和输出矩阵中,相同顺位的维度节点之间存在链接关系;

7、确定每个所述目标组中可剪枝的维度节点为可变维度节点,并将存在所述可变维度节点的所述目标组确定为可变组;

8、对于每个所述可变组,确定所述可变组中每两个通道之间的相似度,并确定相似度大于等于预设阈值的两个通道为可剪枝通道组;

9、对每个所述可剪枝通道组进行剪枝以删除一个通道,得到剪枝后的各个网络层;

10、基于所述剪枝后的各个网络层进行重构,得到剪枝后的神经网络;

11、将所述剪枝后的神经网络进行迁移。

12、通过采用上述技术方案,通过对相邻的网络层之间每个维度节点进行关联性判断,确定存在关联性的维度节点并建立链接关系,并对相邻的网络层中具备链接关系,也即每个目标组内的各个通道之间进行相似度判断,对相似度较高,也即相似度大于等于设定的预设阈值的两个通道进行剪枝,也即剪枝的过程考虑了具备关联性的网络层之间通道的关系,仅仅对相似度较高的两个通道进行剪枝,以减少对神经网络进行剪枝造成的性能损失。

13、在一种可能实现的方式中,所述确定每个所述目标组中可剪枝的维度节点为可变维度节点,包括:

14、对于每个所述网络层中的参数矩阵,基于预设条件判断所述参数矩阵中是否存在可变维度节点;

15、所述预设条件包括以下至少一项:

16、若维度节点与当前所在网络层的输出矩阵中的任一维度节点存在链接关系,且与最后一个网络层的所述输出矩阵不具备链接关系,则确定该维度节点为可变维度节点;

17、若维度节点与第一个网络层的输入矩阵不具备链接关系,且维度节点与当前所在网络层的上一网络层的输出矩阵的任一维度节点存在链接关系,则确定该维度节点为可变维度节点。

18、在一种可能实现的方式中,所述对于每个所述可变组,确定所述可变组中每两个通道之间的相似度,包括:

19、确定每个所述可变维度节点中每两个通道之间的距离;

20、基于每个所述可变维度节点中每两个通道之间的距离,确定所述可变组中每两个通道之间的相似度。

21、在一种可能实现的方式中,所述确定每个所述可变维度节点中每两个通道之间的距离,包括:

22、确定所述可变维度节点中的通道数量m;

23、将每个所述可变维度节点所在的所述参数矩阵分为m个子矩阵,其中,每个所述子矩阵的第一维度为对应的所述可变维度节点中一个顺位的通道;

24、对于每个所述可变维度节点,基于每两个通道各自所在的子矩阵确定每两个通道之间的距离,任意两个通道之间的距离为两个通道各自所在子矩阵之间的欧氏距离。

25、在一种可能实现的方式中,所述对每个所述可剪枝通道组进行剪枝以删除一个通道,包括:

26、基于通道的顺位,将顺位在前的通道确定为可剪枝通道;

27、为每个所述目标组中每个通道设置属性,所述属性为可剪枝或不可剪枝;

28、对每个所述可剪枝通道组进行剪枝以删除每个所述属性为可剪枝的通道。

29、在一种可能实现的方式中,在获取待剪枝的神经网络中每个网络层的结构信息之前,还包括:

30、对所述神经网络进行模型转换,得到onnx模型;

31、所述获取待剪枝的神经网络中每个网络层的结构信息,包括:

32、从所述onnx模型中获取所述神经网络中每个网络层的结构信息。

33、在一种可能实现的方式中,所述方法还包括:

34、对目标软件中的预处理代码进行提取,并封装得到预处理函数,所述目标软件为以所述神经网络构建的软件,所述预处理代码为对所述神经网络的输出数据和输出数据进行预处理的代码;

35、获取目标软件的配置信息,并基于所述配置信息和所述预处理函数进行封装,得到封包文件,所述配置信息包括预处理代码中各个模块的名称和版本号。

36、第二方面,本技术提供一种数据迁移装置,采用如下的技术方案:

37、一种数据迁移装置,包括:

38、结构信息获取模块,用于获取待剪枝的神经网络中每个网络层的结构信息,所述结构信息包括网络层的参数矩阵和输出矩阵,所述输出矩阵是网络层的输入数据经过所述参数矩阵变换得到的,每个矩阵中包括至少一个类型的维度节点,每个维度节点包括至少两个通道;

39、链接关系建立模块,用于将相邻的每两个网络层中的上网络层的所述输出矩阵和下网络层的所述参数矩阵中顺位相同且通道数量相同的两个维度节点之间建立链接关系,其中,所述上网络层的输出矩阵为所述下网络层的输入数据;

40、目标组确定模块,用于将在同一链接关系中所有的维度节点确定为一个目标组,同一网络层的参数矩阵和输出矩阵中,相同顺位的维度节点之间存在链接关系;

41、可变维度节点确定模块,用于确定每个所述目标组中可剪枝的维度节点为可变维度节点,并将存在所述可变维度节点的所述目标组确定为可变组;

42、相似度确定模块,对于每个所述可变组,用于确定所述可变组中每两个通道之间的相似度,并确定相似度大于等于预设阈值的两个通道为可剪枝通道组;

43、剪枝模块,用于对每个所述可剪枝通道组进行剪枝以删除一个通道,得到剪枝后的各个网络层;

44、重构模块,用于基于所述剪枝后的各个网络层进行重构,得到剪枝后的神经网络;

45、迁移模块,用于将所述剪枝后的神经网络进行迁移。

46、通过采用上述技术方案,通过对相邻的网络层之间每个维度节点进行关联性判断,确定存在关联性的维度节点并建立链接关系,并对相邻的网络层中具备链接关系,也即每个目标组内的各个通道之间进行相似度判断,对相似度较高,也即相似度大于等于设定的预设阈值的两个通道进行剪枝,也即剪枝的过程考虑了具备关联性的网络层之间通道的关系,仅仅对相似度较高的两个通道进行剪枝,以减少对神经网络进行剪枝造成的性能损失。

47、在一种可能实现的方式中,可变维度节点确定模块在确定每个所述目标组中可剪枝的维度节点为可变维度节点时,具体用于:

48、对于每个所述网络层中的参数矩阵,基于预设条件判断所述参数矩阵中是否存在可变维度节点;

49、所述预设条件包括以下至少一项:

50、若维度节点与当前所在网络层的输出矩阵中的任一维度节点存在链接关系,且与最后一个网络层的所述输出矩阵不具备链接关系,则确定该维度节点为可变维度节点;

51、若维度节点与第一个网络层的输入矩阵不具备链接关系,且维度节点与当前所在网络层的上一网络层的输出矩阵的任一维度节点存在链接关系,则确定该维度节点为可变维度节点。

52、在一种可能实现的方式中,相似度确定模块,对于每个所述可变组,在确定所述可变组中每两个通道之间的相似度时,具体用于:

53、确定每个所述可变维度节点中每两个通道之间的距离;

54、基于每个所述可变维度节点中每两个通道之间的距离,确定所述可变组中每两个通道之间的相似度。

55、在一种可能实现的方式中,相似度确定模块在确定每个所述可变维度节点中每两个通道之间的距离时,具体用于:

56、确定所述可变维度节点中的通道数量m;

57、将每个所述可变维度节点所在的所述参数矩阵分为m个子矩阵,其中,每个所述子矩阵的第一维度为对应的所述可变维度节点中一个顺位的通道;

58、对于每个所述可变维度节点,基于每两个通道各自所在的子矩阵确定每两个通道之间的距离,任意两个通道之间的距离为两个通道各自所在子矩阵之间的欧氏距离。

59、在一种可能实现的方式中,剪枝模块在对每个所述可剪枝通道组进行剪枝以删除一个通道时,具体用于:

60、基于通道的顺位,将顺位在前的通道确定为可剪枝通道;

61、为每个所述目标组中每个通道设置属性,所述属性为可剪枝或不可剪枝;

62、对每个所述可剪枝通道组进行剪枝以删除每个所述属性为可剪枝的通道。

63、在一种可能实现的方式中,所述装置还包括,模型转换模块,所述模型转换模块具体用于:

64、对所述神经网络进行模型转换,得到onnx模型;

65、结构信息获取模块在获取待剪枝的神经网络中每个网络层的结构信息时,具体用于:

66、从所述onnx模型中获取所述神经网络中每个网络层的结构信息。

67、在一种可能实现的方式中,所述装置还包括代码封装模块,所述代码封装模块具体用于:

68、对目标软件中的预处理代码进行提取,并封装得到预处理函数,所述目标软件为以所述神经网络构建的软件,所述预处理代码为对所述神经网络的输出数据和输出数据进行预处理的代码;

69、获取目标软件的配置信息,并基于所述配置信息和所述预处理函数进行封装,得到封包文件,所述配置信息包括预处理代码中各个模块的名称和版本号。

70、第三方面,本技术提供一种服务器,采用如下的技术方案:

71、一种服务器,该服务器包括:

72、至少一个处理器;

73、存储器;

74、至少一个应用程序,其中所述至少一个应用程序被存储在存储器中并被配置为由至少一个处理器执行,所述至少一个应用程序配置用于:执行上述数据迁移方法。

75、第四方面,本技术提供一种计算机可读存储介质,采用如下的技术方案:

76、一种计算机可读存储介质,包括:存储有能够被处理器加载并执行上述数据迁移方法的计算机程序。

77、综上所述,本技术包括以下至少一种有益技术效果:

78、通过对相邻的网络层之间每个维度节点进行关联性判断,确定存在关联性的维度节点并建立链接关系,并对相邻的网络层中具备链接关系,也即每个目标组内的各个通道之间进行相似度判断,对相似度较高,也即相似度大于等于设定的预设阈值的两个通道进行剪枝,也即剪枝的过程考虑了具备关联性的网络层之间通道的关系,仅仅对相似度较高的两个通道进行剪枝,以减少对神经网络进行剪枝造成的性能损失。

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