主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을영문으로보려면여기를클릭하십시오。

딥러닝일괄처리작업을클러스터로보내기

이예제에서는계속해서작업을진행하거나훈련중에MATLAB을닫을수있도록딥러닝훈련일괄처리작업을클러스터로보내는방법을보여줍니다。

심층신경망훈련은종종몇시간혹은며칠이소요될수있습니다。신경망을일괄처리작업으로훈련시킨다음준비가되면클러스터에서결과를가져오면시간을효율적으로사용할수있습니다。MATLAB연산이진행되는동안에서계속해서작업할수도있고,MATLAB을닫은다음나중에작업모니터를사용하여결과를얻을수도있습니다。이예제에서는parfor를사용하여다중딥러닝신경망훈련시키기항목의병렬파라미터스윕을일괄처리작업으로보냅니다。작업이완료되면훈련된신경망들을가져온다음각각의정확도를비교할수있습니다。

요구사항

이예제를실행하려면먼저클러스터를구성하고데이터를클라우드로업로드해야합니다。MATLAB MATLAB에서는데스크탑에서직접클라우드에클러스터를만들수있습니다。탭의병렬연산메뉴에서클러스터생성및관리를선택합니다。클러스터프로파일관리자에서클라우드클러스터생성을클릭합니다。또는MathWorks云中心를사용하여계산클러스터를만들고액세스할수도있습니다。자세한내용은云中心入门를참조하십시오。이예제에서는MATLAB탭의병렬연산>디폴트클러스터선택에서방금만든클러스터가디폴트값으로설정되어있는지확인하십시오。그런다음Amazon S3버킷으로데이터를업로드하면MATLAB에서직접사용할수있습니다。이예제에서는기존에Amazon S3에저장되어있는CIFAR-10데이터세트복사본을사용합니다。자세한지침은딥러닝데이터를클라우드로업로드하기항목을참조하십시오。

일괄처리작업제출하기

批处理함수를사용하여스크립트를클러스터에일괄처리작업으로보냅니다。클러스터는스크립트의내용을실행할워커를하나할당합니다。스크립트의병렬코드가워커가더많으면유리한경우,즉일례로자동병렬지원이나parfor루프가포함되어있는경우,워커를명시적으로요청해야합니다。批处理는스크립트를실행하는클라이언트에대해한개의워커를사용합니다。“池”이름——값쌍인수를사용하여더많은워커를지정할수있습니다。

여기서는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함수를사용하여클러스터에대한集群객체를만드십시오。그런다음findJob에작업ID를제공합니다。는여기서작업ID1입니다。

c = parcluster (“MyClusterInTheCloud”);工作= findJob (c,“ID”1);

마쳤으면작업을삭제합니다。작업모니터에서작업이제거됩니다。

删除(job1);

작업모니터를사용하여결과가져오기

일괄처리작업을제출하면연산이모두클러스터에서수행되므로MATLAB을안전하게닫을수있습니다。다른MATLAB세션에서작업모니터를사용하여작업의상태를확인할수있습니다。

작업이완료되면작업모니터에서결과를가져올수있습니다。탭의환경섹션에서병렬연산>작업모니터링을선택하여작업모니터를엽니다。그런다음작업을마우스오른쪽버튼으로클릭하여상황별메뉴를표시합니다。이메뉴에서는다음을수행할수있습니다。

  • 세부정보표시를클릭하여작업공간으로작업불러오기

  • 변수불러오기를클릭하여작업의모든변수불러오기

  • 모두마친후삭제를클릭하여작업삭제

참고항목

(并行计算工具箱)

관련예제

세부정보