Main Content

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

実験マネージャーを使用したネットワークの並列学習

既定では、実験マネージャーは実験の試行を 1 つの CPU で一度に 1 つ実行します。Parallel Computing Toolbox™ がある場合は、複数の GPU、1 つのクラスター、またはクラウドで複数の試行を同時に実行したり、試行を一度に 1 つずつ実行したりするように実験を構成できます。

学習シナリオ推奨
各試行において、1 つの並列ワーカーを使用して複数の試行を同時に実行する。

実験を実行する前に、並列環境をセットアップし、[並列の使用] オプションを有効にします。実験マネージャーは、並列プールにあるワーカーと同じ数の同時試行を実行します。

GPU が複数ある場合、並列実行では、通常、実験の速度が上がります。ただし、GPU が 1 つの場合、すべてのワーカーがその GPU を共有するため、学習を高速化できず、GPU のメモリ不足が発生する可能性が高まります。

複数の並列ワーカーで一度に 1 つの試行を実行する。

組み込みの学習実験:

カスタムの学習実験:

ヒント

MATLAB Online を使用して実験を並列実行するには、Cloud Center クラスターにアクセスできなければなりません。詳細については、MATLAB Online における Cloud Center クラスターとの Parallel Computing Toolbox の使用 (Parallel Computing Toolbox)を参照してください。

並列環境の設定

複数の GPU での学習

GPU が複数ある場合、並列実行では、通常、実験の速度が上がります。深層学習で GPU を使用するには、Parallel Computing Toolbox とサポートされている GPU デバイスが必要です。詳細については、リリース別の GPU サポート (Parallel Computing Toolbox)を参照してください。

  • 組み込みの学習実験の場合、GPU は自動的にサポートされます。GPU が利用できる場合、既定では GPU を使用して実験が行われます。

  • カスタムの学習実験の場合、既定では CPU で計算が行われます。GPU で学習を行うには、データを gpuArray オブジェクトに変換します。使用可能な GPU が存在するかどうかを調べるには、関数 canUseGPU を呼び出します。

最良の結果を得るには、実験を実行する前に、GPU と同じ数のワーカーで並列プールを作成します。関数 gpuDeviceCount (Parallel Computing Toolbox) を使用することで、使用可能な GPU の数を確認できます。

numGPUs = gpuDeviceCount("available");
parpool(numGPUs)

クラスターまたはクラウドでの学習

ローカル マシンで実験を行うと時間がかかる場合、オンサイトのネットワークにあるコンピューター クラスターを使用するか、クラウドにある高性能 GPU をレンタルすることで、学習を高速化できます。初期設定が完了した後、コードに最小限の変更を加えるだけで実験を実行できます。クラスターまたはクラウドで処理するには、MATLAB® Parallel Server™ が必要です。詳細については、Deep Learning in the Cloudを参照してください。

複数の試行の並列実行

実験の複数の試行を並列実行するには、[実験マネージャー] ツールストリップで、[並列の使用] [実行] の順にクリックします。現在の並列プールがない場合、実験マネージャーは既定のクラスター プロファイルを使用して並列プールを起動します。

実験マネージャーは、並列プールにあるワーカーと同じ数の同時試行を実行します。実験における他のすべての試行は、後で評価するためにキューに入れられます。結果テーブルに、各試行のステータスと進行状況が表示されます。

Results table for experiment running in parallel.

実験の実行中、各試行の学習プロットを表示することにより、実験の進行状況を追跡できます。パフォーマンスが低下していると思われる試行を停止することもできます。詳細については、学習の停止と再開を参照してください。

メモ

学習オプション ExecutionEnvironment"multi-gpu" または "parallel" に設定するか、学習オプション DispatchInBackground を有効にした場合、実験マネージャーは複数の試行の並列実行をサポートしません。実験の試行を一度に 1 つずつ実行する場合にのみ、これらのオプションを使用して学習を高速化するようにしてください。詳細については、Scale Up Deep Learning in Parallel, on GPUs, and in the Cloudおよび並列学習およびバックグラウンド ディスパッチへのデータストアの使用を参照してください。

参考

アプリ

関数

オブジェクト

関連するトピック