深度学习批处理作业发送到集群
这个例子展示了如何深度学习培训批处理作业发送到一个集群,这样你就可以继续工作或关闭MATLAB在训练。
深层神经网络训练往往要花上数小时或数天。有效使用时间,您可以训练神经网络作为批处理作业和获取集群的结果当他们准备好了。你可以继续工作在MATLAB计算或关闭MATLAB和获得结果后使用监控的工作。这个示例发送参数扫描在平行使用parfor训练多个深度学习网络作为批处理作业。在工作完成之后,您可以获取培训网络和比较他们的精度。
需求
在运行这个例子之前,您需要配置一个集群和上传数据到云上。在MATLAB中,您可以在云中创建集群直接从MATLAB桌面。在家选项卡,平行菜单中,选择创建和管理集群。在集群配置文件管理器,单击创建云计算集群。或者,您可以使用MathWorks云中心创建和访问计算集群。有关更多信息,请参见开始使用云计算中心。对于这个示例,确保您的集群在MATLAB是设置为默认家选项卡,在平行>选择一个默认的集群。之后,上传数据到一个Amazon S3 bucket和直接从MATLAB使用它。这个示例使用的副本CIFAR-10已经存储在Amazon S3数据集。说明,请参阅深度学习的数据上传到云。
提交批处理作业
发送一个脚本作为一个集群使用批处理作业批处理
函数。集群分配一名工人执行脚本的内容。如果并行代码脚本中受益于额外的工人,例如,它包括自动并行支持或parfor循环,需要显式地请求工人。万博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,然后检索工作后使用findJob
函数。
检索工作,首先创建一个集群通过使用集群对象parcluster
函数。然后,提供任务IDfindJob
。在这种情况下,任务ID1
。
c = parcluster (“MyClusterInTheCloud”);工作= findJob (c,“ID”1);
删除当你完成的工作。从工作中删除监控的工作。
删除(job1);
使用工作监控获取结果
当你提交批处理作业,所有的计算集群中发生,您可以安全地关闭MATLAB。你可以检查你的工作通过使用工作的状态监测在另一个MATLAB会话。
当任务完成时,您可以检索的结果监控工作。在环境上节家选项卡上,选择平行>监控工作打开监控工作。然后右键单击上下文菜单显示工作。从这个菜单,您可以:
到工作区中通过单击加载工作显示详细信息
通过单击加载所有变量在工作负载变量
当你通过点击删除工作删除
另请参阅
批处理
(并行计算工具箱)
相关的例子
更多关于
- 批处理(并行计算工具箱)