Main Content

このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

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

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

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

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

sseClassificationLayer = sseClassificationLayer('sse');

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

deepNetworkDesigner(googlenet);

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

[デザイナー] タブで最後の全結合層 'loss3-classifier' をクリックします。[プロパティ] ペインの下部で、[層のロックを解除] をクリックします。表示される警告ダイアログで、[ロックの強制解除] をクリックします。これにより層のプロパティのロックが解除され、それらを新しいタスクに適応できるようになります。

R2023b より前: 層のプロパティを編集するには、層のロックを解除するのではなく、層を置き換えなければなりません。

OutputSize を新しいデータのクラス数 (この例では 2) に設定します。

学習率を編集して、新しい層での学習速度を転移層より速くします。WeightLearnRateFactor および BiasLearnRateFactor10 に設定します。

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

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

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

カスタム層を表示または編集するには、[層のコードの編集] をクリックします。

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

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

参考

関連するトピック