此示例显示如何向群集发送深度学习培训批处理作业,以便在培训期间继续工作或关闭MATLAB。
培训深度神经网络通常需要数小时或几天。要有效地使用时间,您可以将神经网络作为批处理作业培训并在准备就绪时从群集中获取结果。您可以在计算发生或关闭MATLAB时继续在MATLAB中工作,并使用作业监视器稍后获取结果。此示例发送并行参数扫描使用Parcom来培训多个深度学习网络作为批处理工作。作业完成后,您可以获取培训的网络并比较它们的准确性。
在运行此示例之前,您需要配置群集并将数据上传到云。在MATLAB中,您可以直接从MATLAB桌面创建云中的群集。在这一点家标签,在平行菜单,选择创建和管理群集。在集群配置文件管理器中,单击创建云集群。或者,您可以使用MathWorks云中心来创建和访问计算群集。有关更多信息,请参阅云中心入门。在此示例中,请确保将群集设置为Matlab上的默认值家标签,in.平行>选择默认群集。之后,将数据上传到Amazon S3存储桶,并直接从MATLAB使用它。此示例使用已存储在Amazon S3中的CIFAR-10数据集的副本。有关说明,请参阅将深度学习数据上传到云端。
通过使用批量将脚本作为批处理作业发送到群集批
功能。群集分配一个工人以执行脚本的内容。如果脚本中的并行代码来自额外的工人,例如,它包括自动并行支持或Parcom循环,您需要明确要求工人。万博1manbetx批
使用运行脚本的客户端的一个工作者。您可以使用“池”名称值对参数来指定更多工人。
在这种情况下,发送TrainMultiplenetWorks.
脚本到群集中。此脚本包含并行参数扫描使用Parcom来培训多个深度学习网络。因为脚本包含一个议案
循环,指定4.
额外的工人水池
名称值对参数。
TotalNumberofworkers = 5;Job1 =批处理('trainmultiplenetworks'那......'水池',TotalNumberofWorkers-1);
您可以通过检查作业监视器在群集中看到作业的当前状态。在里面环境一节家选项卡,选择平行>监控工作打开作业监视器。
您可以向群集提交其他作业。如果群集不可用,因为它正在运行其他作业,则在群集可用之前,您提交的任何新作业都会排队。
将作业提交到群集后,您可以在计算进行时继续在MATLAB中工作。如果您的其余代码取决于作业完成,则使用该作业块块MATLAB等待
命令。在这种情况下,等待工作完成。
等待(JOB1);
作业完成后,使用使用来获取结果加载
功能。在这种情况下,从提交的脚本中从并行参数扫描获取训练的网络及其准确性。
加载(Job1,'准确性');精度
精度=4×10.8312 0.8276 0.8288 0.8258
加载(Job1,'训练网络);训练网络
训练网络=4×1个单元阵列{1×1系列网络} {1×1系列网络} {1×1系列网络} {1×1系列网络}
要在批处理作业中加载所有变量,请使用加载
没有参数的函数。
加载(Job1);
如果关闭MATLAB,您仍然可以在集群中恢复作业,以在计算正在进行时或在计算完成后获取结果。在关闭MATLAB之前,请记住作业ID,然后稍后通过使用该作业来检索作业找工作
功能。
要检索作业,请首先使用群集为群集创建群集对象Parcluster.
功能。然后,向工作ID提供找工作
。在这种情况下,作业ID是1
。
c = parcluster('myclusterinthecloud');作业= findjob(c,'ID',1);
完成后删除作业。作业从作业监视器中删除。
删除(Job1);
提交批处理作业时,所有计算会发生在群集中,您可以安全地关闭MATLAB。您可以使用其他MATLAB会话中的作业监视器查看作业的状态。
完成作业后,您可以从作业监视器中检索结果。在里面环境一节家选项卡,选择平行>监控工作打开作业监视器。然后右键单击作业以显示上下文菜单。在此菜单中,您可以:
单击将作业加载到工作区中显示详细资料
通过单击加载作业中的所有变量负载变量
通过单击完成后删除作业删除
批
(并行计算工具箱)