このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
この例では,実験マネージャーを使用してネットワークの並列学習を行う方法を説明します。実験を並列で実行することにより,異なる学習構成を同時に試すことができます。学習の進行中にMATLAB®を使うこともできます。並列実行には,并行计算工具箱™が必要です。
この例では2つのネットワークに学習させて,0 ~ 9の数字のイメージを分類します。この実験では,ランダムな平行移動と水平方向の反転を数字データセットに適用することで生成された,拡張イメージデータを使用してネットワークの学習を行います。データ拡張は,ネットワークで過適合が発生したり,学習イメージの正確な詳細が記憶されたりすることを防止します。実験を実行すると,実験マネージャーは,並列プールを起動し,使用可能な並列ワーカーの数に応じて,複数の同時試行を実行します。試行ごとに,ネットワークと学習オプションの異なる組み合わせが使用されます。学習の進行状況を監視しながら,パフォーマンスが低下していると思われる試行は停止できます。
代わりに,parfor
またはparfeval
を使用し,複数のネットワークの学習をプログラムによって並列で行うこともできます。詳細については,深層学習ネットワークの並列学習を参照してください。
まず,例を开き。実験マネージャーによって,検证検证実行が可な事前成済み実験を含むプロジェクト読み込ま読み込ま。(実験ブラウザー]ペインで,実験の名前(AugmentedDataExperiment
)をダブルクリックします。
実験実験の定义,说明,ハイハイパーパラメーターの,关关,および実験の结果をするのメトリクス关键词结合(オプション)ででは。深層学習実験の構成を参照してください。
[说明]ボックスには,実験を説明するテキストが表示されます。この例の説明は次のようになります。
使用数据图像增强进行分类以将随机翻译和水平反射应用于数字数据集。
[ハイパーパラメーター]セクションでは,実験で使用する手法(详尽的扫描
)とハイパーパラメーター値を指定します。実験を実行すると,実験マネージャーは,ハイパーパラメーターテーブルで指定されたハイパーパラメーター値のすべての組み合わせを使用してネットワークに学習させます。この例では,网络
およびTrainingOptions
という,2つのハイパーパラメーターをしし。
网络
は,学習を行うネットワークを指定します。このハイパーパラメーターがとり得る値は次のとおりです。
“第七层”
- 7つの層をもつ単純なネットワーク。
、Convolution2Dlayer.
、reluLayer
でで成さされるれるつの畳み込みブロックを含み含みmaxPooling2dLayer
“16层”
- 16層のネットワーク。
、Convolution2Dlayer.
、batchNormalizationLayer
、reluLayer
でそれぞれ成成される3つの畳み込みブロックをます。maxPooling2dLayer
TrainingOptions
は,ネットワークの学習に使用するオプションのセットを示します。このハイパーパラメーターがとり得る値は次のとおりです。
“快速地”
——実験マネージャーは,初期学習率0.1をとして,最大で10エポック,ネットワークの学習を行います。
“减缓”
- 実験マネージャーは,初初习率を0.001として,最大で15エポック,ネットワークの学习行い。
[セットアップ関数)は,実験用の学習データ,ネットワークアーキテクチャ,および学習オプションを構成します。セットアップ関数を検査するには,[セットアップ関数)で[編集]をクリックします。MATLABエディターでセットアップ関数が開きます。
この例では,セットアップ関数への入力は,ハイパーパラメーターテーブルのフィールドをもつ構造体です。このセットアップ関数は,イメージ分類問題用のネットワークに学習させるために使用する3つの出力を返します。このセットアップ関数には3つのセクションがあります。
イメージデータの読み込みは,数字データセットからイメージを読み込み,このデータセットを学習セットと検証セットに分割します。学習データについて,この例では,ランダムな平行移動と水平方向の反転を適用することにより,
オブジェクトを作成します。検証データは,augmentedImageDatastore
imageageAtastore.
オブジェクト内に拡張なしで格納されます。このデータセットの詳細については,イメージデータセットを参照してください。
ネットワークアーキテクチャの定義では,深層学習による分類用の畳み込みニューラルネットワークのアーキテクチャを定義します。この例では,ハイパーパラメーター网络
について指定したネットワークの学習を行います。
学習オプションの指定では,実験用の
オブジェクトオブジェクトを定义しします例で,ハイパーパラメーター培训选项
TrainingOptions
について指定した値により,学習オプション“InitialLearnRate”
および“MaxEpochs”
が決定されます。
学習オプション“ExecutionEnvironment”
を“multi-gpu”
または“平行”
に設定するか,学習オプション'disparctinbackground'
を有効にした場合,実験マネージャーは並列実行をサポートしないことに注意してください。詳細については,深層学習実験の構成を参照してください。
[メトリクス]セクションは,実験結果を評価するオプションの関数を指定します。この例では,カスタムのメトリクス関数は含まれていません。
GPUががあるある合,并列并列行で,通讯,実験の速度が上がり。最良の结果をには,実験を実をは,gpuととのワーカー,gpuとと数号ワーカー并列プールと起ワーカー。关联gpudeviceCount.
を使用することで,利用可能なGPUの数を確認できます。
numGPUs = gpuDeviceCount;parpool (numGPUs);
ただし,GPUが1つの場合,すべてのワーカーがそのGPUを共有するため,学習を高速化できず,GPUのメモリ不足が発生する可能性が高まります。MATLABの使用を継続しながら 1 つの GPU で深層ネットワークの学習を行うには、実験を並列で実行する前に、単一のワーカーで並列プールを起動します。
実験を実行するには,[実験マネージャー]ツールストリップで,[并列の实用]、[実行]の順にクリックします。現在の並列プールがない場合,実験マネージャーは既定のクラスタープロファイルを使用して並列プールを起動します。次に,実験マネージャーは,使用可能な並列ワーカーの数に応じて,複数の同時試行を実行します。試行ごとに,ハイパーパラメーター値の異なる組み合わせが使用されます。
結果テーブルに,各試行の精度と損失が表示されます。
実験の実行中,各試行の学習プロットを表示することにより,実験の進行状況を追跡できます。試行を選択し,[学学习]をクリックします。
実験マネージャーは,並列プールにあるワーカーと同じ数の同時試行を実行します。実験における他のすべての試行は,後で評価するためにキューに入れられます。実験を実行している間,実行中の試行を停止したり,キューに入れられた試行をキャンセルしたりできます。結果テーブルの[進行状況]列で,停止またはキャンセルする各試行の赤い正方形のアイコンをクリックします。
たとえば,“第七层”
ネットワークを使用する試行の検証損失が,わずか数回の反復で未定義となったとします。
これらの試行について学習を継続しても,有益な結果は得られません。そのため,学習の完了前に,これらの試行を停止することができます。実験マネージャーは,残りの試行に対する学習を継続します。
学习が完了すれ,停止またはキャンセルした试を実でき。[進行状況]列で,試行の緑の三角形アイコンをクリックします。
あるいは,[実験マネージャー]ツールストリップで[キャンセルキャンセル済みをすべて开]をクリックすることで,キャンセルした試行をまとめて再実行することもできます。
(実験ブラウザー]ペインでプロジェクトの名前を右クリックし,[プロジェクトを閉じる]を选択します。実験実験マネージャー,プロジェクトに含まれるすべてのと结果が闭じられます。
augmentedImageDatastore
|batchNormalizationLayer
|Convolution2Dlayer.
|maxPooling2dLayer
|reluLayer
|培训选项
|実験マネージャー|gpudeviceCount.
(并行计算工具箱)|parfeval
(并行计算工具箱)|parfor
(并行计算工具箱)|parpool
(并行计算工具箱)