将深度学习批处理任务发送到集群

这个示例展示了如何将深度学习训练批作业发送到集群,以便您可以在训练期间继续工作或关闭MATLAB。

训练深层神经网络通常需要数小时或数天。为了有效地利用时间,你可以训练神经网络作为批处理作业,当他们准备取从集群的结果。您可以继续在MATLAB工作时计算发生或接近MATLAB并获得在以后使用作业监视器的结果。本实施例中发送的并行参数扫描使用PARFOR到列车多深学习网络作为批处理作业。这项工作完成后,你可以获取的培训网络,并比较它们的精度。

需求

在可以运行这个例子,你需要配置群集和上传数据到云。在MATLAB中,你可以创建直接从MATLAB桌面的云团。在选项卡,平行菜单中选择创建和管理集群。在集群配置文件管理器中,单击创建云团。或者,您可以使用MathWorks云中心来创建和访问计算集群。有关更多信息,请参见开始使用云计算中心。对于本例,请确保您的集群在MATLAB上设置为默认值选项卡,在平行>选择一个默认的集群。然后,将数据上传到Amazon S3存储桶中,并直接从MATLAB中使用它。这个示例使用已经存储在Amazon S3中的CIFAR-10数据集的副本。说明,请参阅上传深入学习数据到云

提交批处理作业

通过发送脚本作为批处理作业到集群批量函数。集群分配一个worker来执行脚本的内容。如果脚本中的并行代码受益于额外的worker,例如,它包括自动并行支持或parfor循环,那么您需要显式地请求这些workers。万博1manbetx批量使用一个工人来运行该脚本的客户端。您可以通过使用“池”的名字 - 值对参数中指定更多的工人。

在这种情况下,发送trainMultipleNetworks脚本集群。此脚本包含在并行参数扫描使用PARFOR到列车多深学习网络。因为脚本包含PARFOR循环,指定4额外的工人名称 - 值对的参数。

totalNumberOfWorkers = 5;JOB1 =批次('trainMultipleNetworks'...“池”, totalNumberOfWorkers-1);

您可以通过检查作业监视器看到集群中作业的当前状态。在里面环境上一节选项卡,选中平行>监视作业打开作业监视器。

您可以提交其他作业到集群。如果群集,因为它正在运行其他作业不可用,您提交遗骸的新作业排队,直到集群变为可用。

抓取结果编程

提交作业到群集后,您可以继续在MATLAB工作时的计算发生。如果你的代码的其余部分取决于工作的完成,阻断MATLAB使用等待命令。在这种情况下,等待作业完成。

等待(JOB1);

在作业结束后,通过获取结果加载函数。在这种情况下,从提交的脚本中的并行参数扫描中获取训练好的网络及其准确率。

负载(JOB1,“精度”);精度
精度=4×10.8312 0.8276 0.8288 0.8258
负载(JOB1,'trainedNetworks');trainedNetworks
trainedNetworks =4×1单元阵列{1×1 SeriesNetwork} {1×1 SeriesNetwork} {1×1 SeriesNetwork} {1×1 SeriesNetwork}

要加载所有的变量在批处理作业,使用加载功能不带参数。

负载(job1);

如果你关闭MATLAB,你仍然可以恢复工作的集群中,同时计算正在发生或之后计算完成要么获取结果。关闭MATLAB之前,请记下作业ID,然后通过以后检索工作找工作函数。

要检索作业,首先使用属性为集群创建一个集群对象parcluster函数。然后,提供业ID找工作。在本例中,作业ID为1

C = parcluster('MyClusterInTheCloud');作业= findJob(C,'ID',1);

当您完成删除工作。该作业从作业监视器中删除。

删除(job1);

使用作业监视器来获取结果

当您提交批处理作业,所有的计算发生在集群中,你可以安全关闭MATLAB。您可以通过在另一个MATLAB会话中使用作业监视器检查作业的状态。

当工作完成后,你可以从作业监视器的结果。在里面环境上一节选项卡,选中平行>监视作业打开作业监视器。然后右键单击作业以显示上下文菜单。从这个菜单,你可以:

  • 加载作业分成通过单击工作区显示详细信息

  • 加载所有变量中通过单击工作加载变量

  • 删除作业时被点击完成删除

也可以看看

相关的例子

更多关于