このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
実験マネージャーを使用したネットワークの並列学習
既定では、実験マネージャーは実験の試行を 1 つの CPU で一度に 1 つ実行します。Parallel Computing Toolbox™ がある場合は、複数の GPU、1 つのクラスター、またはクラウドで複数の試行を同時に実行したり、試行を一度に 1 つずつ実行したりするように実験を構成できます。
学習シナリオ | 推奨 |
---|---|
各試行において、1 つの並列ワーカーを使用して複数の試行を同時に実行する。 | 並列環境をセットアップし、[モード] を あるいは、実験をバッチ ジョブとしてオフロードするには、[モード] を 学習オプション |
複数の並列ワーカーで一度に 1 つの試行を実行する。 | 組み込みの学習実験: 実験セットアップ関数で、学習オプション 分割可能なデータストアを使用している場合、学習オプション 並列環境をセットアップし、[モード] を あるいは、実験をバッチ ジョブとしてオフロードするには、[モード] を |
カスタムの学習実験: 実験学習関数で、並列環境をセットアップし、 [モード] を あるいは、実験をバッチ ジョブとしてオフロードするには、[モード] を |
組み込みの学習実験では、各試行が単一の CPU、単一の GPU、複数の CPU、複数の GPU のいずれで実行されたかが結果テーブルに表示されます。この情報を表示するには、結果テーブルの上にある列の表示/非表示ボタン をクリックし、[実行環境] を選択します。
ヒント
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 で並列プールを作成した場合、すべてのワーカーがその GPU を共有するため、学習を高速化できず、GPU のメモリ不足が発生する可能性が高まります。
クラスターまたはクラウドでの学習
ローカル マシンで実験を行うと時間がかかる場合、オンサイトのネットワークにあるコンピューター クラスターを使用するか、クラウドにある高性能 GPU をレンタルすることで、学習を高速化できます。初期設定が完了した後、コードに最小限の変更を加えるだけで実験を実行できます。クラスターまたはクラウドで処理するには、MATLAB Parallel Server™ が必要です。詳細については、Deep Learning in the Cloudを参照してください。
参考
アプリ
関数
trainingOptions
|canUseGPU
|gpuDeviceCount
(Parallel Computing Toolbox) |parpool
(Parallel Computing Toolbox) |spmd
(Parallel Computing Toolbox)
オブジェクト
gpuArray
(Parallel Computing Toolbox)