发送深度学习批处理作业到集群

这个例子显示了如何发送深学习培训批处理作业到集群,这样就可以继续训练在工作或关闭MATLAB。

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

要求

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

提交批处理作业

通过发送脚本作为批处理作业到集群批量功能。群集分配一个工人来执行你的脚本的内容。如果从更多的工人脚本效益并行代码,例如,它包括自动并行支持或PARFOR循环,你需要明确地要求工人。金宝app批量使用一个工人来运行该脚本的客户端。您可以通过使用“池”的名字 - 值对参数中指定更多的工人。

在这种情况下,发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会话中使用作业监视器检查作业的状态。

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

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

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

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

也可以看看

相关的例子

更多关于