ディープ ネットワーク デザイナーへのカスタム層のインポート
この例では、ディープ ネットワーク デザイナーで残差平方和 (SSE) 損失を含むカスタム分類出力層をインポートし、それを事前学習済みのネットワークに追加する方法を示します。
カスタム分類出力層を定義します。この層を作成するには、ファイル sseClassificationLayer.m
を現在のフォルダーに保存します。この層の作成の詳細については、カスタム分類出力層の定義を参照してください。
層のインスタンスを作成します。
sseClassificationLayer = sseClassificationLayer('sse');
事前学習済みの GoogLeNet ネットワークでディープ ネットワーク デザイナーを開きます。
deepNetworkDesigner(googlenet);
事前学習済みのネットワークを適応させるには、最後の学習可能な層と最終分類層を新しいデータ セットに適応させた新しい層に置き換えます。GoogLeNet では、これらの層の名前はそれぞれ 'loss3-classifier'
と 'output'
です。
[デザイナー] ペインで、新しい fullyConnectedLayer
を [層のライブラリ] からキャンバスにドラッグします。OutputSize
を新しいクラス数 (この例では 2
) に設定します。
学習率を編集して、新しい層での学習速度を転移層より速くします。WeightLearnRateFactor
および BiasLearnRateFactor
を 10
に設定します。最後の全結合層を削除し、代わりに新しい層を結合します。
次に、出力層をカスタム分類出力層に置き換えます。[デザイナー] ペインで [新規] をクリックします。[ワークスペースから] で一時停止し、[インポート] をクリックします。カスタム分類層をインポートするには、sseClassificationLayer
を選択して [OK] をクリックします。
[追加] をクリックして、その層を GoogLeNet の現在の事前学習済みのネットワークに追加します。アプリによって [デザイナー] ペインの上部にカスタム層が追加されます。新しい層を表示するには、マウスを使用してズームインするか、[ズームイン] をクリックします。
カスタム層を [デザイナー] ペインの下部にドラッグします。出力層を新しい分類出力層に置き換え、新しい層と結合します。
カスタム層を表示または編集するには、[層のコードの編集] をクリックします。
[解析] をクリックしてネットワークを確認します。深層学習ネットワーク アナライザーによってエラー 0 が報告されていれば、ネットワークの学習の準備は整っています。
ネットワークの作成が完了すれば、データのインポートと学習を行うことができます。ディープ ネットワーク デザイナーでデータをインポートして学習させる方法の詳細については、ディープ ネットワーク デザイナーを使用した転移学習を参照してください。
Copyright 2020—2022 The MathWorks, Inc.