主要内容

このページの翻訳は最新ではありません。ここをクリックして,英语の最新版を参照してください。

深层学习バッチジョブのクラスターへの送信

この例では,学习中に作业を継続したり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セッションでジョブモニターを使用することによって,ジョブのステータスを确认できます。

ジョブが完了したら,ジョブモニターから结果を取得できます。[ホーム]タブの[环境]セクションで,[并列][ジョブの监视]を选択してジョブモニターを开きます。次にジョブを右クリックすると,コンテキストメニューが表示されます。このメニューでは以下が可能です。

  • [详细を表示]をクリックしてワークスペースにジョブを読み込む

  • [変数の読み込み]をクリックしてジョブのすべての変数を読み込む

  • [削除]をクリックして完了したジョブを削除する

参考

(并行计算工具箱)

关连する例

详细