このページの翻訳は最新ではありません。ここをクリックして,英语の最新版を参照してください。
この例では,学习中に作业を継続したりMATLABを闭じたりできるように,深层学习における学习のバッチジョブをクラスターに送信する方法を说明します。
多くの场合,深层ニューラルネットワークの学习には数时间または数日かかります。时间を效率的に使用するため,ニューラルネットワークの学习をバッチジョブとして行い,准备が整ったらクラスターから结果を取得することができます。计算の実行中にMATLABで作业を続行したり,MATLABを闭じて,ジョブモニターを使用して后で结果を取得したりできます。この例では,PARFORを使用した复数の深层学习ネットワークの学习の并列パラメータースイープをバッチジョブとして送信します。ジョブの完了后,学习済みのネットワークを取得して,それらの精度を比较できます。
この例を実行する前に,クラスターを构成し,データをクラウドにアップロードする必要があります.MATLABでは,MATLABデスクトップから直接,クラウドにクラスターを作成できます。[ホーム]タブの[并列]メニューで,[クラスターの作成と管理]を选択します。クラスタープロファイルマネージャーで,[クラウドクラスターの作成]をクリックします。または,MathWorks的云计算中心を使用して计算クラスターを作成し,そのクラスターにアクセスすることもできます。详细については,开始使用云计算中心を参照してください。この例では,MATLABの[ホーム]タブの[并列],[既定のクラスターの选択]で,クラスターが既定として设定されていることを确认します。その后,データを亚马逊S3バケットにアップロードして,MATLABから直接使用します。この例では,亚马逊S3に既に格纳されているCIFAR-10データセットのコピーを使用します。手顺については,クラウドへの深层学习データのアップロードを参照してください。
关节批
を使用してスクリプトをバッチジョブとしてクラスターに送信します。クラスターはスクリプトの内容を実行する1つのワーカーを割り当てます。スクリプトの并列コードにその他のワーカーを使用するメリットがあり,たとえば,自动并列サポートまたはPARFORループが含まれる场合,ワーカーを明示的に要求する必要があります。批
は,スクリプトを実行するクライアントに対して1つのワーカーを使用します。名前と値のペアの引数 '池' を使用して,より多くのワーカーを指定できます。
この场合,trainMultipleNetworks
スクリプトをクラスターに送信します。このスクリプトには,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セッションでジョブモニターを使用することによって,ジョブのステータスを确认できます。
ジョブが完了したら,ジョブモニターから结果を取得できます。[ホーム]タブの[环境]セクションで,[并列],[ジョブの监视]を选択してジョブモニターを开きます。次にジョブを右クリックすると,コンテキストメニューが表示されます。このメニューでは以下が可能です。
[详细を表示]をクリックしてワークスペースにジョブを読み込む
[変数の読み込み]をクリックしてジョブのすべての変数を読み込む
[削除]をクリックして完了したジョブを削除する
批
(并行计算工具箱)