Main Content

ディープ ネットワーク デザイナーへのカスタム層のインポート

この例では、ディープ ネットワーク デザイナーで残差平方和 (SSE) 損失を含むカスタム分類出力層をインポートし、それを事前学習済みのネットワークに追加する方法を示します。

カスタム分類出力層を定義します。この層を作成するには、ファイル sseClassificationLayer.m を現在のフォルダーに保存します。この層の作成の詳細については、カスタム分類出力層の定義を参照してください。

層のインスタンスを作成します。

sseClassificationLayer = sseClassificationLayer('sse');

事前学習済みの GoogLeNet ネットワークでディープ ネットワーク デザイナーを開きます。

deepNetworkDesigner(googlenet);

事前学習済みのネットワークを適応させるには、最後の学習可能な層と最終分類層を新しいデータ セットに適応させた新しい層に置き換えます。GoogLeNet では、これらの層の名前はそれぞれ 'loss3-classifier''output' です。

[デザイナー] ペインで、新しい fullyConnectedLayer[層のライブラリ] からキャンバスにドラッグします。OutputSize を新しいクラス数 (この例では 2) に設定します。

学習率を編集して、新しい層での学習速度を転移層より速くします。WeightLearnRateFactor および BiasLearnRateFactor10 に設定します。最後の全結合層を削除し、代わりに新しい層を結合します。

次に、出力層をカスタム分類出力層に置き換えます。[デザイナー] ペインで [新規] をクリックします。[ワークスペースから] で一時停止し、[インポート] をクリックします。カスタム分類層をインポートするには、sseClassificationLayer を選択して [OK] をクリックします。

[追加] をクリックして、その層を GoogLeNet の現在の事前学習済みのネットワークに追加します。アプリによって [デザイナー] ペインの上部にカスタム層が追加されます。新しい層を表示するには、マウスを使用してズームインするか、[ズームイン] をクリックします。

カスタム層を [デザイナー] ペインの下部にドラッグします。出力層を新しい分類出力層に置き換え、新しい層と結合します。

[解析] をクリックしてネットワークを確認します。深層学習ネットワーク アナライザーによってエラー 0 が報告されていれば、ネットワークの学習の準備は整っています。

ネットワークの作成が完了すれば、データのインポートと学習を行うことができます。ディープ ネットワーク デザイナーでデータをインポートして学習させる方法の詳細については、ディープ ネットワーク デザイナーを使用した転移学習を参照してください。

参考

関連するトピック