掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及计算机技术领域,特别是涉及一种深度学习中参数交换方式的动态选择方法及系统。

背景技术

深度学习本质上是构建含有多隐层的机器学习架构模型,通过大规模数据进行训练,得到大量具有代表性的特征信息。因为训练使用的数据规模庞大,所以深度学习的框架必然都是支持多设备、多主机并行的计算模式。在训练过程中,多设备多主机之间需要进行参数交换,以使计算结果可以共享,达到尽快收敛的效果。但是,因为机器学习架构模型、交换的参数大小、网络状况等的不同,目前的参数交换方式不能同时适用所有场景。并且,当前机器学习模型的参数交换方式一般是在训练前配置的,由使用人员根据经验决定配置何种方式,所以,目前的参数交换方式不能让机器学习模型达到最佳。而如果使用者想要选择最佳的参数交换方式,需要手动修改配置,分别进行训练,再手动记录时间信息进行比较,然后再修改配置进行训练;但是这部分工作不仅耗时,还依赖于使用者的经验和能力。

发明内容

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种深度学习中参数交换方式的动态选择方法及系统,用于解决现有技术中深度学习过程中参数交换方式不能同时适用所有场景以及耗时高的问题。

为实现上述目的及其他相关目的,本发明提供一种深度学习中参数交换方式的动态选择方法,包括以下步骤:

从用于深度学习的配置文件中读取可以使用的设备数量和数据量;

获取一个数据量大小的数据,根据所述一个数据量大小的数据运行一个完整的深度学习网络,并在整个深度学习网络运行完成后交换该深度学习网络的参数,记录完成一个完整的深度学习网络所使用的时间和参数交换的时间,记为第一计算时间和第一参数交换时间;

根据所述一个数据量大小的数据运行一个完整的深度学习网络,且在该深度学习网络每运行完一层后就交换一次参数,并记录计算使用的时间和参数交换的总时间,记为第二计算时间和第二参数交换时间;

将所述第一计算时间与所述第二计算时间进行比对,以及将所述第一参数交换时间与所述第二参数交换时间进行比对,并根据比对结果动态选择深度学习的参数交换方式。

可选地,还包括获取所述第一参数交换时间与所述第二参数交换时间的比对结果;

根据所述比对结果获取所述第一参数交换时间与所述第二参数交换时间的差值;

若所述差值与所述第一参数交换时间的比值高于预设阈值,则不适合采用深度学习网络每运行完一层后就交换一次参数的参数交换方式;反之,则适合采用深度学习网络每运行完一层后就交换一次参数的参数交换方式。

可选地,获取确定出的参数交换方式,并将该参数交换方式放至全局设置中,使后续训练中的深度学习网络自适应选择参数交换方式。

本发明还提供一种深度学习中参数交换方式的动态选择系统,包括有:

第一采集模块,用于从配置文件中读取可以使用的设备数量和数据量;所述配置文件用于深度学习中;

第二采集模块,用于获取一个数据量大小的数据;

第一参数交换模块,用于根据所述一个数据量大小的数据运行一个完整的深度学习网络,并在整个深度学习网络运行完成后交换该深度学习网络的参数;

第一记录模块,用于记录所述第一参数模块完成一个完整的深度学习网络所使用的时间和参数交换的时间,并记为第一计算时间和第一参数交换时间;

第二参数交换模块,用于根据所述一个数据量大小的数据运行一个完整的深度学习网络,且在该深度学习网络每运行完一层后就交换一次参数;

第二参数交换模块,用于记录计算使用的时间和参数交换的总时间,并记为第二计算时间和第二参数交换时间;

动态选择模块,用于将所述第一计算时间与所述第二计算时间进行比对,以及将所述第一参数交换时间与所述第二参数交换时间进行比对,并根据比对结果动态选择深度学习的参数交换方式。

可选地,还包括获取所述第一参数交换时间与所述第二参数交换时间的比对结果;

根据所述比对结果获取所述第一参数交换时间与所述第二参数交换时间的差值;

若所述差值与所述第一参数交换时间的比值高于预设阈值,则不适合采用深度学习网络每运行完一层后就交换一次参数的参数交换方式;反之,则适合采用深度学习网络每运行完一层后就交换一次参数的参数交换方式。

可选地,获取确定出的参数交换方式,并将该参数交换方式放至全局设置中,使后续训练中的深度学习网络自适应选择参数交换方式。

如上所述,本发明提供一种深度学习中参数交换方式的动态选择方法及系统,具有以下有益效果:

通过从用于深度学习的配置文件中读取可以使用的设备数量和数据量;再获取一个数据量大小的数据,根据所述一个数据量大小的数据运行一个完整的深度学习网络,并在整个深度学习网络运行完成后交换该深度学习网络的参数,记录完成一个完整的深度学习网络所使用的时间和参数交换的时间,记为第一计算时间和第一参数交换时间;以及根据所述一个数据量大小的数据运行一个完整的深度学习网络,且在该深度学习网络每运行完一层后就交换一次参数,并记录计算使用的时间和参数交换的总时间,记为第二计算时间和第二参数交换时间;再将所述第一计算时间与所述第二计算时间进行比对,以及将所述第一参数交换时间与所述第二参数交换时间进行比对,并根据比对结果动态选择深度学习的参数交换方式。本发明可以使深度学习框架能够自己判断哪种参数交换方式比较快,达到自适应的效果,从而在深度学习过程中发挥最佳性能。本发明可以自动采取效率更高的参数交换方式,达到提高深度学习性能的效果。

附图说明

图1为一实施例提供的深度学习中参数交换方式的动态选择方法的流程示意图;

图2为另一实施例提供的深度学习中参数交换方式的动态选择方法的流程示意图;

图3为一实施例提供的深度学习中参数交换方式的动态选择系统的硬件结构示意图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

请参阅图1,本发明提供一种深度学习中参数交换方式的动态选择方法,包括以下步骤:

S100,从用于深度学习的配置文件中读取可以使用的设备数量和数据量;

S200,获取一个数据量大小的数据,根据所述一个数据量大小的数据运行一个完整的深度学习网络,并在整个深度学习网络运行完成后交换该深度学习网络的参数,记录完成一个完整的深度学习网络所使用的时间和参数交换的时间,记为第一计算时间和第一参数交换时间;

S300,根据所述一个数据量大小的数据运行一个完整的深度学习网络,且在该深度学习网络每运行完一层后就交换一次参数,并记录计算使用的时间和参数交换的总时间,记为第二计算时间和第二参数交换时间;

S400,将所述第一计算时间与所述第二计算时间进行比对,以及将所述第一参数交换时间与所述第二参数交换时间进行比对,并根据比对结果动态选择深度学习的参数交换方式。

本方法可以使深度学习框架能够自己判断哪种参数交换方式比较快,达到自适应的效果,从而在深度学习过程中发挥最佳性能。本方法可以自动采取效率更高的参数交换方式,达到提高深度学习性能的效果。

在一示例性实施例中,还包括获取所述第一参数交换时间与所述第二参数交换时间的比对结果;根据所述比对结果获取所述第一参数交换时间与所述第二参数交换时间的差值;若所述差值与所述第一参数交换时间的比值高于预设阈值,则不适合采用深度学习网络每运行完一层后就交换一次参数的参数交换方式;反之,则适合采用深度学习网络每运行完一层后就交换一次参数的参数交换方式。

在一示例性实施例中,还包括获取确定出的参数交换方式,并将该参数交换方式放至全局设置中,使后续训练中的深度学习网络自适应选择参数交换方式。

如图2所示,本申请实施例提供一种深度学习中参数交换方式的动态选择方法,包括以下步骤:

步骤1:在每个迭代完成后交换参数;即读取一个迭代的数据,计算完成后再交换数据,同时记录计算和参数交换所耗费的时间。

步骤2:在每层计算完成后交换参数;即读取一个迭代的数据,每层计算完成后再交换数据,同时记录计算和参数交换总共耗费的时间。

步骤3:比较步骤1和步骤2中两种方式在时间上的区别;即比较参数交换的时间,从而判断需要采取哪种参数交换方式。

步骤4:正式的训练过程都采用步骤3中确定出的参数交换方式。

根据上述记载,具体地:

步骤a:从配置文件读取可以使用的设备数量和数据量(batchsize)

步骤b:读取一个batchsize大小的数据,运行一个完整的网络,在运行完后交换参数;并记录下计算使用的时间和参数交换的时间。

步骤c:读取同样一个batchsize大小的数据,运行一个完整的网络,在运行完每一层后都交换一次参数;记录下计算使用的时间和参数交换的总时间。

步骤d:对比步骤a和步骤b计算所得到的时间结果。如果步骤b和步骤c中的参数交换时间差值与步骤b的参数交换时间的比例高于预设阈值,则不适合采用每层都交换参数的方式,反之,则适合。本申请实施例中,预设阈值可以按照实际情况进行设置。

步骤e:根据步骤d的对比结果确定参数的交换方式,并将该交换方式放到全局设置中,以后的每次参数交换都使用这种方式。

综上所述,本方法可以使深度学习框架能够自己判断哪种参数交换方式比较快,达到自适应的效果,从而在深度学习过程中发挥最佳性能。本方法可以自动采取效率更高的参数交换方式,达到提高深度学习性能的效果。

如图3所示,本发明还提供一种深度学习中参数交换方式的动态选择系统,包括有:

第一采集模块M10,用于从配置文件中读取可以使用的设备数量和数据量;所述配置文件用于深度学习中;

第二采集模块M20,用于获取一个数据量大小的数据;

第一参数交换模块M30,用于根据所述一个数据量大小的数据运行一个完整的深度学习网络,并在整个深度学习网络运行完成后交换该深度学习网络的参数;

第一记录模块M40,用于记录所述第一参数模块完成一个完整的深度学习网络所使用的时间和参数交换的时间,并记为第一计算时间和第一参数交换时间;

第二参数交换模块M50,用于根据所述一个数据量大小的数据运行一个完整的深度学习网络,且在该深度学习网络每运行完一层后就交换一次参数;

第二参数交换模块M60,用于记录计算使用的时间和参数交换的总时间,并记为第二计算时间和第二参数交换时间;

动态选择模块M70,用于将所述第一计算时间与所述第二计算时间进行比对,以及将所述第一参数交换时间与所述第二参数交换时间进行比对,并根据比对结果动态选择深度学习的参数交换方式。

本系统可以使深度学习框架能够自己判断哪种参数交换方式比较快,达到自适应的效果,从而在深度学习过程中发挥最佳性能。本系统可以自动采取效率更高的参数交换方式,达到提高深度学习性能的效果。

在一示例性实施例中,还包括获取所述第一参数交换时间与所述第二参数交换时间的比对结果;根据所述比对结果获取所述第一参数交换时间与所述第二参数交换时间的差值;若所述差值与所述第一参数交换时间的比值高于预设阈值,则不适合采用深度学习网络每运行完一层后就交换一次参数的参数交换方式;反之,则适合采用深度学习网络每运行完一层后就交换一次参数的参数交换方式。

在一示例性实施例中,还包括获取确定出的参数交换方式,并将该参数交换方式放至全局设置中,使后续训练中的深度学习网络自适应选择参数交换方式。

本申请实施例提供一种深度学习中参数交换方式的动态选择系统,包括有:

步骤1:在每个迭代完成后交换参数;即读取一个迭代的数据,计算完成后再交换数据,同时记录计算和参数交换所耗费的时间。

步骤2:在每层计算完成后交换参数;即读取一个迭代的数据,每层计算完成后再交换数据,同时记录计算和参数交换总共耗费的时间。

步骤3:比较步骤1和步骤2中两种方式在时间上的区别;即比较参数交换的时间,从而判断需要采取哪种参数交换方式。

步骤4:正式的训练过程都采用步骤3中确定出的参数交换方式。

根据上述记载,具体地:

步骤a:从配置文件读取可以使用的设备数量和数据量(batchsize)

步骤b:读取一个batchsize大小的数据,运行一个完整的网络,在运行完后交换参数;并记录下计算使用的时间和参数交换的时间。

步骤c:读取同样一个batchsize大小的数据,运行一个完整的网络,在运行完每一层后都交换一次参数;记录下计算使用的时间和参数交换的总时间。

步骤d:对比步骤a和步骤b计算所得到的时间结果。如果步骤b和步骤c中的参数交换时间差值与步骤b的参数交换时间的比例高于预设阈值,则不适合采用每层都交换参数的方式,反之,则适合。本申请实施例中,预设阈值可以按照实际情况进行设置。

步骤e:根据步骤d的对比结果确定参数的交换方式,并将该交换方式放到全局设置中,以后的每次参数交换都使用这种方式。

综上所述,本系统可以使深度学习框架能够自己判断哪种参数交换方式比较快,达到自适应的效果,从而在深度学习过程中发挥最佳性能。本系统可以自动采取效率更高的参数交换方式,达到提高深度学习性能的效果。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

相关技术
  • 一种深度学习中参数交换方式的动态选择方法及系统
  • 一种基于人工智能深度学习和多参数动态博弈的银行贷款发放与贷后管理决策支持系统
技术分类

06120112984911