这个示例展示了如何将深度学习训练批作业发送到集群,以便您可以在训练期间继续工作或关闭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会话中使用作业监视器检查作业的状态。
当工作完成后,你可以从作业监视器的结果。在里面环境上一节家选项卡,选中平行>监视作业打开作业监视器。然后右键单击作业以显示上下文菜单。从这个菜单,你可以:
加载作业分成通过单击工作区显示详细信息
加载所有变量中通过单击工作加载变量
删除作业时被点击完成删除