首页> 中国专利> 深度学习任务的处理方法、装置及计算机可读存储介质

深度学习任务的处理方法、装置及计算机可读存储介质

摘要

本发明提供了一种深度学习任务的处理方法、装置及计算机可读存储介质。本发明实施例提供的深度学习任务的处理方法、装置及计算机可读存储介质,在每次模型训练之前导入足够的训练数据,基于已导入本地存储的训练数据进行模型的训练,在模型训练过程中,训练数据的读取和中间模型文件的保存都在本地存储进行,从而保证了模型训练的速度。另外,本发明实施例将模型训练的中间模型文件及时传输到网络存储设备中,可以减少或避免数据因异常事件发生丢失的情况,提高了训练过程的鲁棒性。另外,本发明实施例还可以动态优化本地存储到网络存储以及网络存储到本地存储的数据传输速度,避免对模型训练以及其他节点造成过多的影响。

著录项

  • 公开/公告号CN112306623A

    专利类型发明专利

  • 公开/公告日2021-02-02

    原文格式PDF

  • 申请/专利权人 株式会社理光;

    申请/专利号CN201910701940.6

  • 申请日2019-07-31

  • 分类号G06F9/455(20060101);G06F3/06(20060101);G06K9/62(20060101);

  • 代理机构11243 北京银龙知识产权代理有限公司;

  • 代理人黄灿;姜精斌

  • 地址 日本东京都

  • 入库时间 2023-06-19 09:44:49

说明书

技术领域

本发明涉及深度学习技术领域,具体涉及一种深度学习任务的处理方法、装置及计算机可读存储介质。

背景技术

Docker是一个开源应用程序容器引擎,允许开发人员将他们的应用程序和依赖项打包到一个便携式容器中,然后发布到任何流行的Linux或Windows机器上,或者将它们虚拟化。Docker的镜像(Image)是面向对象中的类,相当于一个模板。从本质上来说,镜像相当于一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。Docker中的容器(Container),是类创建的实例,即依据镜像这个模板创建出来的实体。容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于自己的独立的命名空间。因此容器可以拥有自己的根文件系统、自己的网络配置、自己的进程空间,甚至自己的用户ID空间。

Kubernetes是一个开源系统,用于自动化容器应用程序的部署,扩展和管理。作为容器集群管理工具,Kubernetes已经在生成环境中使用。基于Kubernetes和Docker可以构建深度学习平台,利用深度学习平台可以进行深度学习任务的模型训练,提供诸如人工智能开发等研究的效率。

发明人发现,目前的基于Docker的深度学习系统中,可以将深度学习任务的训练数据和模型文件存储在网络存储中,此时模型训练时需要频繁的从网络读取数据,因此影响了模型的训练效率。如果将训练数据和模型文件存储在本地存储中,等待任务训练结束后,再将训练得到的模型文件拷贝到网络存储中,则可能由于容器出现异常导致本地存储的数据丢失,进而影响训练过程。

发明内容

本发明实施例要解决的技术问题是提供一种深度学习任务的处理方法、装置及计算机可读存储介质,可以优化深度学习任务的训练效率,改善训练过程的鲁棒性。

为解决上述技术问题,本发明实施例提供的深度学习任务的处理方法,包括:

根据深度学习任务,创建应用容器引擎Docker的目标容器;

为所述目标容器挂载本地存储和网络存储设备;

在进行所述深度学习任务的模型训练时,按照模型训练的数据量需求,按批次从所述网络存储设备处导入训练数据和/或中间模型文件至所述本地存储;

基于训练数据和/或中间模型文件,进行模型训练,并将模型训练过程中获得的中间模型文件存储到所述网络存储设备。

可选的,根据深度学习任务,创建基于应用容器引擎Docker的目标容器的步骤,包括:

通过深度学习平台,接收用户为所述深度学习任务设置的资源需求和网络存储路径,所述资源包括中央处理器CPU资源、图形处理器资源和存储资源,所述网络存储路径包括训练数据和中间模型文件的网络存储路径;

根据所述资源需求和网络存储路径,创建所述Docker的目标容器。

可选的,为所述目标容器挂载本地存储和网络存储设备的步骤,包括:

根据所述深度学习任务的资源需求,配置本地存储的资源大小和绑定路径;

将所述本地存储与所述网络存储路径相关联。

可选的,按批次从所述网络存储设备处导入训练数据和/或中间模型文件至所述本地存储的步骤,包括:

按照模型训练的数据量需求,导入第一个批次的训练数据至本地存储,并在网络存储设备存在有中间模型文件时,导入所述中间模型文件至本地存储;

以及,在每次模型训练过程中,从网络存储设备的剩余训练数据中导入至少一个批次的训练数据,直至所有训练数据导入完成。

可选的,在每次模型训练过程中,从网络存储设备的剩余训练数据中导入至少一个批次的训练数据的步骤,包括:

根据第1个批次的训练数据的传输时间,第1个批次的训练数据传输过程中的磁盘使用率和上一次模型训练过程中的磁盘使用率,确定第n个批次的训练数据的计划传输时间,其中,n为大于1的整数;

根据第n个批次的训练数据的数据量和所述计划传输时间,确定第n个批次的训练数据的传输速率;

按照所述传输速率导入第n个批次的训练数据。

可选的,将模型训练过程中获得的中间模型文件存储到所述网络存储设备的步骤,包括:

计算当前节点所在的深度学习平台中的节点的剩余CPU使用率的平均值,与当前节点在第一个中间模型文件传输过程中的CPU使用率的比值,所述当前节点为目标容器所在的节点;

计算所述比值与所述第一个中间模型文件的第一传输速率的乘积,得到第二传输速率,根据所述第二传输速率与当前节点的剩余网络带宽中的较小者,确定当前的第M个中间模型文件的第三传输速度,所述M为大于1的整数;

按照所述第三传输速度,将第M个中间模型文件存储到所述网络存储设备。

可选的,在所述深度学习任务的模型训练完成后,释放所述目标容器,并清除所述本地存储中的数据。

本发明实施例还提供了一种深度学习任务的处理装置,包括:

容器创建单元,用于根据深度学习任务,创建应用容器引擎Docker的目标容器;

存储挂载单元,用于为所述目标容器挂载本地存储和网络存储设备;

数据传输单元,用于在进行所述深度学习任务的模型训练时,按照模型训练的数据量需求,按批次从所述网络存储设备处导入训练数据和/或中间模型文件至所述本地存储;

模型训练单元,用于基于训练数据和/或中间模型文件,进行模型训练,并将模型训练过程中获得的中间模型文件存储到所述网络存储设备。

可选的,所述数据传输单元,还用于按照模型训练的数据量需求,导入第一个批次的训练数据至本地存储,并在网络存储设备存在有中间模型文件时,导入所述中间模型文件至本地存储;以及,在每次模型训练过程中,从网络存储设备的剩余训练数据中导入至少一个批次的训练数据,直至所有训练数据导入完成。

可选的,所述数据传输单元,还用于根据第1个批次的训练数据的传输时间,第1个批次的训练数据传输过程中的磁盘使用率和上一次的模型训练过程中的磁盘使用率,确定第n个批次的训练数据的计划传输时间,其中,n为大于1的整数;根据第n个批次的训练数据的数据量和所述计划传输时间,确定第n个批次的训练数据的传输速率;按照所述传输速率导入第n个批次的训练数据。

可选的,所述模型训练单元,还用于计算当前节点所在的深度学习平台中的节点的剩余CPU使用率的平均值,与当前节点在第一个中间模型文件传输过程中的CPU使用率的比值,所述当前节点为目标容器所在的节点;计算所述比值与所述第一个中间模型文件的第一传输速率的乘积,得到第二传输速率,根据所述第二传输速率与当前节点的剩余网络带宽中的较小者,确定当前的第M个中间模型文件的第三传输速度,所述M为大于1的整数;按照所述第三传输速度,将第M个中间模型文件存储到所述网络存储设备。

本发明实施例还提供了一种深度学习任务的处理装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的深度学习任务的处理方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的深度学习任务的处理方法的步骤。

与现有技术相比,本发明实施例提供的深度学习任务的处理方法、装置及计算机可读存储介质,在每次模型训练之前导入足够的训练数据,基于已导入本地存储的训练数据进行模型的训练,在模型训练过程中,训练数据的读取和中间模型文件的保存都在本地存储进行,从而保证了模型训练的速度。另外,本发明实施例将模型训练的中间模型文件及时传输到网络存储设备中,可以减少或避免数据因异常事件发生丢失的情况,提高了训练过程的鲁棒性。另外,本发明实施例还可以动态优化本地存储到网络存储以及网络存储到本地存储的数据传输速度,避免对模型训练以及其他节点造成过多的影响。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的深度学习任务的处理方法的一种流程示意图;

图2为本发明实施例的深度学习任务的处理方法的一种应用场景示意图;

图3为本发明实施例的深度学习平台的一种结构示意图;

图4为本发明实施例的深度学习任务的处理装置的一种结构示意图;

图5为本发明实施例的深度学习任务的处理装置的另一结构示意图。

具体实施方式

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。在下面的描述中,提供诸如具体的配置和组件的特定细节仅仅是为了帮助全面理解本发明的实施例。因此,本领域技术人员应该清楚,可以对这里描述的实施例进行各种改变和修改而不脱离本发明的范围和精神。另外,为了清楚和简洁,省略了对已知功能和构造的描述。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。

在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

请参照图1,提供了本发明实施例所述深度学习任务的处理方法的一种应用场景。图1中,基于Kubernetes和Docker技术构建的深度学习平台100,包括有:

硬件层110,硬件层110具体包括多个GPU服务器和数据存储(Data Storage)资源。

逻辑控制层120,用于控制和管理GPU等资源。逻辑控制层120包括有数据服务器,用于监控每个集群的状态,如CPU、存储资源和网络状态等。

平台支持的深度学习框架130,具体的,可以包括Tensorflow、Caffe、Pytorch以及MXNet等。

用户接口140,具体可以包括Web用户界面(UI)等。

本发明实施例提供了一种深度学习任务的处理方法,该深度学习任务的处理方法可以提升模型训练的效率和训练过程的可靠性。如图2所示,本发明实施例提供的深度学习任务的处理方法可以包括:

步骤201,根据深度学习任务,创建Docker的目标容器。

这里,可以根据所要训练的深度学习任务,创建Docker容器,为了便于描述,将所创建的容器称为目标容器。具体的,用户可以登录深度学习平台的容器创建页面,然后设置深度学习任务所需的资源,具体可以包括GPU数量,CPU数量,内存等,以及,设置训练数据的网络存储路径和中间模型文件的网络存储路径,所述网络存储路径是网络设备上的存储资源的路径。然后,点击容器创建页面上的“create”按钮,提交容器的创建请求。深度学习平台接收用户设置的资源需求和网络存储路径,并根据所述资源需求和网络存储路径,创建所述Docker的目标容器。

步骤202,为所述目标容器挂载本地存储和网络存储设备。

这里,可以根据步骤201中的资源需求等设置,配置本地存储,具体的,可以包括配置本地存储的资源大小,如10G比特,以及,配置本地存储的绑定路径(与目标容器所在的宿主服务器上的路径之间的绑定关系),如/data/user/xxx:/container_data。可选的,本地存储可以使用HostPath存储卷类型,HostPath存储卷类型在容器被销毁或者异常退出时,其数据仍然存在,可以提高数据存储的可靠性。

本发明实施例中网络存储可以使用分布式存储介质(GlusterFs)或网络文件系统(NFS,Network File System),在挂在网络存储设备时,可以将本地存储与所述网络存储路径相关联。

步骤203,在进行所述深度学习任务的模型训练时,按照模型训练的数据量需求,按批次从所述网络存储设备处导入训练数据和/或中间模型文件至所述本地存储。

本发明实施例将训练数据保存在网络存储中,为了避免模型训练时频繁的网络数据读取对训练效率的影响,本发明实施例采用了一种批量下载训练数据,按批次进行训练的方式,可以根据每批次模型训练所需要的数据量的大小,分批次的从网络存储设备处下载训练数据至本地存储中,这样,模型训练过程中的训练数据读取和中间模型文件的保存都发生在本地存储中,避免了频繁的网络数据读写所造成的模型训练效率低的问题。

具体的,在进行深度学习任务的模型训练时,可以加载相关配置信息,所述相关配置信息通常可以包括本地存储和网络存储设备的配置参数。然后,按照模型训练的数据量需求,导入第一个批次的训练数据至本地存储,并在网络存储设备存在有中间模型文件时,导入所述中间模型文件至本地存储;以及,在每次模型训练过程中,从网络存储设备的剩余训练数据中导入至少一个批次的训练数据,直至所有训练数据导入完成。

这里,每批次导入的训练数据的大小可以根据模型训练所需要的数据量X的大小来确定。考虑到训练数据的数据量Y,可能不是X的整数倍,因此,最后一个批次下载的训练数据可能小于X。

本发明优化了数据存储的读写,具体可以在深度学习平台中增加了数据服务器,当目标容器启动时,数据服务器根据模型训练所需要的数据量大小,分批次的将网络存储上的训练数据传输到本地存储中,这样,模型训练过程中的训练数据的读取和训练模型文件的保存都在本地存储中,从而保证了模型训练的速度。另外,数据服务器可以动态的优化网络存储到本地存储的传输速度,使得每次模型训练过程中至少可以导入一个批次的训练数据到本地存储,从而可以提高训练数据的读取效率,减少或避免了下载训练数据引起的时延。

具体的,在每次模型训练过程中,从网络存储设备的剩余训练数据中导入至少一个批次的训练数据时,本发明实施例可以根据第1个批次的训练数据的传输时间,第1个批次的训练数据传输过程中的磁盘使用率和上一次的模型训练过程中的磁盘使用率,确定第n个批次的训练数据的计划传输时间,其中,n为大于1的整数;然后,根据第n个批次的训练数据的数据量和所述计划传输时间,确定第n个批次的训练数据的传输速率;然后,按照所述传输速率导入第n个批次的训练数据。另外,这里所述的上一次的模型训练过程,是指当前时刻之前最近一次完成的模型训练过程。

通过以上方式进行下一个批次的训练数据的导入,能够减小网络数据下载对模型训练的影响,并且,考虑到模型训练的时长通常较长,上述方式通常能保证在当前的模型训练结束前完成至少一个批次的训练数据下载。

下面给出了基于以上方式计算所述计划传输时间的一个具体计算公式,需要说明的是,以下公式仅为本发明实施例可以采用的一个示例,并不用于限定本发明。

以上公式中,T

从以上公式可以看出,所述计划传输时间与第1个批次的训练数据的传输时间、第1个批次的训练数据传输过程中的磁盘使用率、上一次的模型训练过程中的磁盘使用率均为正相关关系,即,T

步骤204,基于训练数据和/或中间模型文件,进行模型训练,并将模型训练过程中获得的中间模型文件存储到所述网络存储设备

这里,需要说明的是,在进行每次的模型训练时,本发明实施例是基于当前已经下载到本地存储的所有训练数据进行的,而不仅限于最近一个批次所下载的训练数据。

这里,基于训练数据和/或中间模型文件,进行模型训练,具体可以包括:

在训练数据完全导入之前,基于当前已导入的训练数据和/或中间模型文件进行模型训练,并在每次模型训练完成之后,继续基于当前已导入的训练数据和/或中间模型文件进行模型训练;

在训练数据完全导入之后,则可以基于所述训练数据和/或中间模型文件进行模型训练,直至达到预设收敛条件。

为了避免容器异常等因素导致的数据丢失,提高深度学习任务训练的鲁棒性,本发明实施例还可以将模型训练过程中得到的中间模型文件传输至网络存储设备处进行保存,这样,本发明实施例在设备重启/容器异常等情况下,可以通过从网络存储设备处下载中间模型文件,继续后续的模型训练,从而避免从头开始训练,提高了训练效果,改善了训练过程的鲁棒性。

为了减少中间模型数据传输对节点以及平台的影响,本发明实施例还提供一种优化中间模型文件传输的算法,如图3所示,该算法中深度学习平台的各节点的数据服务器包括有一数据监视模块,该数据监视模块监视每个节点的状态和网络状态,如CPU使用率以及剩余网络带宽等。具体的,可以计算当前节点所在的深度学习平台中的节点的剩余CPU使用率的平均值,与当前节点在第一个中间模型文件传输过程中的CPU使用率的比值,所述当前节点为目标容器所在的节点;计算所述比值与所述第一个中间模型文件的第一传输速率的乘积,得到第二传输速率,根据所述第二传输速率与当前节点的剩余网络带宽中的较小者,确定当前的第M个中间模型文件的第三传输速度,所述M为大于1的整数;按照所述第三传输速度,将第M个中间模型文件存储到所述网络存储设备。

所述第三传输速度的计算可以参考以下公式:

其中,s表示中间模型文件的大小,通常同一深度学习任务的中间模型文件都具有相同大小,T

通过以上步骤204,本发明实施例将模型训练所得的中间模型文件传输到网络存储设备中保存,这样,在长时间的模型训练过程中,即使发生容器异常等情况,也不会导致训练的中间结果丢失,提高了训练过程的鲁棒性。

从以上所述可以看出,本发明实施例的深度学习任务的处理方法,当容器启动时,网络存储上的训练数据根据每次训练数据的大小分批次传输到本地存储中,这样,本发明实施例在每批次导入足够的训练数据,基于已导入本地存储的训练数据进行模型的训练,在模型训练过程中,训练数据的读取和中间模型文件的保存都在本地存储进行,保证了模型训练的速度。另外,本发明实施例还可以动态优化本地存储到网络存储以及网络存储到本地存储的数据传输速度,避免对模型训练以及其他节点造成过多的影响。

最后,在所述深度学习任务的模型训练完成后,本发明实施例可以释放所述目标容器,并清除所述本地存储中的数据。另外,在清除本地存储数据之前,本发明实施例还可以将模型训练的最终结果传输到网络存储设备中。

基于以上方法,本发明实施例还提供了实施上述方法的装置,请参考图4,本发明实施例提供的深度学习任务的处理装置400,包括:

容器创建单元401,用于根据深度学习任务,创建应用容器引擎Docker的目标容器;

存储挂载单元402,用于为所述目标容器挂载本地存储和网络存储设备;

数据传输单元403,用于在进行所述深度学习任务的模型训练时,按照模型训练的数据量需求,按批次从所述网络存储设备处导入训练数据和/或中间模型文件至所述本地存储;

模型训练单元404,用于基于训练数据和/或中间模型文件,进行模型训练,并将模型训练过程中获得的中间模型文件存储到所述网络存储设备。

可选的,所述容器创建单元401,还用于通过深度学习平台,接收用户为所述深度学习任务设置的资源需求和网络存储路径,所述资源包括中央处理器CPU资源、图形处理器资源和存储资源,所述网络存储路径包括训练数据和中间模型文件的网络存储路径;根据所述资源需求和网络存储路径,创建所述Docker的目标容器。

可选的,所述存储挂载单元402,还用于根据所述深度学习任务的资源需求,配置本地存储的资源大小和绑定路径;将所述本地存储与所述网络存储路径相关联。

可选的,所述数据传输单元403,还用于按照模型训练的数据量需求,导入第一个批次的训练数据至本地存储,并在网络存储设备存在有中间模型文件时,导入所述中间模型文件至本地存储;以及,在每次模型训练过程中,从网络存储设备的剩余训练数据中导入至少一个批次的训练数据,直至所有训练数据导入完成。

这样,通过上述所述数据传输单元403,本发明实施例可以每批次导入足够的训练数据,基于已导入本地存储的训练数据可以进行模型的训练,从而在训练过程中不必从网络读取数据,提高了模型的训练效率。

可选的,所述数据传输单元403,还用于根据第1个批次的训练数据的传输时间,第1个批次的训练数据传输过程中的磁盘使用率和上一次的模型训练过程中的磁盘使用率,确定第n个批次的训练数据的计划传输时间,其中,n为大于1的整数;根据第n个批次的训练数据的数据量和所述计划传输时间,确定第n个批次的训练数据的传输速率;按照所述传输速率导入第n个批次的训练数据。

可选的,所述模型训练单元404,还用于在训练数据完全导入之前,基于当前已导入的训练数据和/或中间模型文件进行模型训练,并在每次模型训练完成之后,继续基于当前已导入的训练数据和/或中间模型文件进行模型训练;以及,在训练数据完全导入之后,基于所述训练数据和/或中间模型文件进行模型训练,直至达到预设收敛条件。

可选的,所述模型训练单元404,还用于计算当前节点所在的深度学习平台中的节点的剩余CPU使用率的平均值,与当前节点在第一个中间模型文件传输过程中的CPU使用率的比值,所述当前节点为目标容器所在的节点;计算所述比值与所述第一个中间模型文件的第一传输速率的乘积,得到第二传输速率,根据所述第二传输速率与当前节点的剩余网络带宽中的较小者,确定当前的第M个中间模型文件的第三传输速度,所述M为大于1的整数;按照所述第三传输速度,将第M个中间模型文件存储到所述网络存储设备。

这样,通过以上模型训练单元404,本发明实施例及时将模型训练的中间结果传输到网络存储设备中,避免了容器异常等情况下容易发生数据丢失的问题,提高了训练过程的鲁棒性。

另外,本发明实施例的上述处理装置,还可以包括以下单元(图4中未示出):

释放处理单元,用于在所述深度学习任务的模型训练完成后,释放所述目标容器,并清除所述本地存储中的数据。

请参考图5,本发明实施例还提供了深度学习任务的处理装置的一种硬件结构框图,如图5所示,该深度学习任务的处理装置500包括:

处理器502;和

存储器504,在所述存储器504中存储有程序,

其中,在所述程序被所述处理器运行时,使得所述处理器502执行以下步骤:

根据深度学习任务,创建应用容器引擎Docker的目标容器;

为所述目标容器挂载本地存储和网络存储设备;

在进行所述深度学习任务的模型训练时,按照模型训练的数据量需求,按批次从所述网络存储设备处导入训练数据和/或中间模型文件至所述本地存储;

基于训练数据和/或中间模型文件,进行模型训练,并将模型训练过程中获得的中间模型文件存储到所述网络存储设备。

进一步地,如图5所示,该深度学习任务的处理装置500还可以包括网络接口501、输入设备503、硬盘505、和显示设备506。

上述各个接口和设备之间可以通过总线架构互连。总线架构可以是包括任意数量的互联的总线和桥。具体由处理器502代表的一个或者多个中央处理器(CPU),以及由存储器504代表的一个或者多个存储器的各种电路连接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其它电路连接在一起。可以理解,总线架构用于实现这些组件之间的连接通信。总线架构除包括数据总线之外,还包括电源总线、控制总线和状态信号总线,这些都是本领域所公知的,因此本文不再对其进行详细描述。

所述网络接口501,可以连接至网络(如因特网、局域网等),从网络中收集训练数据,并可以将收集到的训练数据保存在硬盘505中。

所述输入设备503,可以接收操作人员输入的各种指令,并发送给处理器502以供执行。所述输入设备503可以包括键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等)。

所述显示设备506,可以将处理器502执行指令获得的结果进行显示,例如显示模型训练的进度等。

所述存储器504,用于存储操作系统运行所必须的程序和数据,以及处理器502计算过程中的中间结果等数据。

可以理解,本发明实施例中的存储器504可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。本文描述的装置和方法的存储器504旨在包括但不限于这些和任意其它适合类型的存储器。

在一些实施方式中,存储器504存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统5041和应用程序5042。

其中,操作系统5041,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序5042,包含各种应用程序,例如浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序5042中。

本发明上述实施例揭示的方法可以应用于处理器502中,或者由处理器502实现。处理器502可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器502中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器502可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器504,处理器502读取存储器504中的信息,结合其硬件完成上述方法的步骤。

可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、现场可编程门阵列(FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。

对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。

可选的,所述程序被处理器502执行时还可实现如下步骤:

通过深度学习平台,接收用户为所述深度学习任务设置的资源需求和网络存储路径,所述资源包括中央处理器CPU资源、图形处理器资源和存储资源,所述网络存储路径包括训练数据和中间模型文件的网络存储路径;

根据所述资源需求和网络存储路径,创建所述Docker的目标容器。

可选的,所述程序被处理器502执行时还可实现如下步骤:

根据所述深度学习任务的资源需求,配置本地存储的资源大小和绑定路径;

将所述本地存储与所述网络存储路径相关联。

可选的,所述程序被处理器502执行时还可实现如下步骤:

按照模型训练的数据量需求,导入第一个批次的训练数据至本地存储,并在网络存储设备存在有中间模型文件时,导入所述中间模型文件至本地存储;以及,在每次模型训练过程中,从网络存储设备的剩余训练数据中导入至少一个批次的训练数据,直至所有训练数据导入完成。

可选的,所述程序被处理器502执行时还可实现如下步骤:

根据第1个批次的训练数据的传输时间,第1个批次的训练数据传输过程中的磁盘使用率和上一次的模型训练过程中的磁盘使用率,确定第n个批次的训练数据的计划传输时间,其中,n为大于1的整数;

根据第n个批次的训练数据的数据量和所述计划传输时间,确定第n个批次的训练数据的传输速率;

按照所述传输速率导入第n个批次的训练数据。

可选的,所述程序被处理器502执行时还可实现如下步骤:

在训练数据完全导入之前,基于当前已导入的训练数据和/或中间模型文件进行模型训练,并在每次模型训练完成之后,继续基于当前已导入的训练数据和/或中间模型文件进行模型训练;

在训练数据完全导入之后,基于所述训练数据和/或中间模型文件进行模型训练,直至达到预设收敛条件。

可选的,所述程序被处理器502执行时还可实现如下步骤:

计算当前节点所在的深度学习平台中的节点的剩余CPU使用率的平均值,与当前节点在第一个中间模型文件传输过程中的CPU使用率的比值,所述当前节点为目标容器所在的节点;

计算所述比值与所述第一个中间模型文件的第一传输速率的乘积,得到第二传输速率,根据所述第二传输速率与当前节点的剩余网络带宽中的较小者,确定当前的第M个中间模型文件的第三传输速度,所述M为大于1的整数;

按照所述第三传输速度,将第M个中间模型文件存储到所述网络存储设备。

可选的,所述程序被处理器502执行时还可实现如下步骤:

在所述深度学习任务的模型训练完成后,释放所述目标容器,并清除所述本地存储中的数据。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的深度学习任务的处理方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁盘或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号