このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
ディープ ネットワーク デザイナー
深層学習ネットワークの設計と可視化
説明
ディープ ネットワーク デザイナー アプリでは、深層学習ネットワークのインポート、構築、可視化、および編集ができます。このアプリを使って次のことを実行できます。
ネットワークを構築、編集、および結合する。
事前学習済みのネットワークを読み込み、転移学習用に編集する。
PyTorch® および TensorFlow™ からネットワークをインポートする。
ネットワークを解析してアーキテクチャの定義が正しいことを確認する。
圧縮技術を使用してメモリ削減のためにネットワークを解析する。
ネットワークを Simulink® にエクスポートする。
ネットワークを構築するための MATLAB® コードを生成する。

ディープ ネットワーク デザイナー アプリを開く
MATLAB ツールストリップ: [アプリ] タブの [機械学習および深層学習] にあるアプリ アイコンをクリックします。
MATLAB コマンド プロンプト:
deepNetworkDesigner
と入力します。
例
数値特徴量データのための分類ネットワークを作成します。
ディープ ネットワーク デザイナーを開きます。
deepNetworkDesigner
空のネットワークを作成するには、[空のネットワーク] で [新規] をクリックします。層をドラッグ アンド ドロップできる空のキャンバスが開きます。
[層のライブラリ] から featureInputLayer
をキャンバスにドラッグします。[層のライブラリ] フィルターを使用すると、層を簡単に見つけることができます。層を選択します。[プロパティ] ペインで、Normalization
を "zscore"
に設定し、InputSize
をデータの特徴数に設定します。次に、fullyConnectedLayer
をキャンバスにドラッグします。層を結合するには、featureInputLayer
で out
端子をクリックします。fullyConnectedLayer
の in
端子に矢印をドラッグします。
layerNormalizationLayer
およびそれに続く reluLayer
をキャンバスに追加し、それらを順番に結合します。
最後に、fullyConnectedLayer
およびそれに続く softmaxLayer
を追加し、それらを結合します。最後の fullyConnectedLayer
で、層を選択して OutputSize
をデータのクラス数に設定します。
層を自動的に整列させるには、[自動調整] をクリックします。
ネットワークの学習の準備が整っていることを確認するには、[解析] を選択します。ネットワークに関する警告とエラーが存在しないことが、深層学習ネットワーク アナライザーに示されます。
ネットワークをワークスペースにエクスポートするには、[エクスポート] をクリックします。ネットワークを再作成するためのコードを生成するには、[エクスポート]、[パラメーターなしでネットワーク コードを生成] をクリックします。
ディープ ネットワーク デザイナーで転移学習用のネットワークを編集して、準備します。
転移学習は、事前学習済みの深層学習ネットワークを利用して、新しいタスクを学習するように微調整するプロセスです。少ない数の学習イメージを使用して、新しいタスクに学習済みの特徴を高速に転移できます。そのため、多くの場合、転移学習を使用する方が、ネットワークにゼロから学習させるよりもはるかに簡単で時間がかかりません。転移学習に事前学習済みネットワークを使用するには、新しいデータセットに一致するようにクラス数を変更しなければなりません。
ディープ ネットワーク デザイナーには、事前学習済みのさまざまなイメージ ネットワークやオーディオ ネットワークが用意されています。事前学習済みのネットワークを検討するには、ディープ ネットワーク デザイナーを開きます。
deepNetworkDesigner
この例では、SqueezeNet で [開く] をクリックします。
転移学習用のネットワークを準備するために、最後の学習可能なパラメーターの層を編集します。SqueezeNet の最後の学習可能な層は、2 次元畳み込み層 'conv10'
です。
'conv10'
層を選択します。[プロパティ] ペインの下部で、[層のロックを解除] をクリックします。層のロックを解除すると、その層のすべての学習可能なパラメーターが削除されます。表示される警告ダイアログで、[そのままロックを解除] をクリックします。これにより、層のプロパティのロックが解除され、それらを新しいタスクに適応できるようになります。[NumFilters] プロパティを新しいクラス数に設定します。[WeightLearnRateFactor] および [BiasLearnRateFactor] の値を 10 に増やして学習率を変更し、新しい層での学習速度を転移層より速くします。
R2023b より前: 新しいタスク用に層のプロパティを編集するには、ロックの解除ではなく層の置き換えを行わなければなりません。
[解析] をクリックしてネットワークを確認します。"深層学習ネットワーク アナライザー" によってエラー 0 が報告されていれば、ネットワークの学習の準備は整っています。準備したネットワークをワークスペースにエクスポートするには、[エクスポート] をクリックします。ネットワークを作成するための MATLAB コードを生成するには、[ネットワーク コードを生成] をクリックします。
新しいイメージを分類するためにネットワークに学習させる方法を示す例については、ディープ ネットワーク デザイナーを使用した転移学習用のネットワークの準備を参照してください。
PyTorch® または TensorFlow™ からニューラル ネットワークをインポートします。
この例では、MNASNet (Copyright© Soumith Chintala 2016) PyTorch モデルをインポートします。MathWorks の Web サイトから、mnasnet1_0
ファイルをダウンロードします。ファイルのサイズは約 17 MB です。
modelfile = matlab.internal.examples.downloadSupportFile("nnet", ... "data/PyTorchModels/mnasnet1_0.pt");
modelfile = 'C:\Users\jwelding\OneDrive - MathWorks\Documents\MATLAB\Examples\R2025a\supportfiles\nnet\data\PyTorchModels\mnasnet1_0.pt'
外部のプラットフォームからネットワークをインポートするには、ディープ ネットワーク デザイナーを使用します。
deepNetworkDesigner
PyTorch® または TensorFlow™ からモデルをインポートできます。
PyTorch® モデルの場合は [PyTorch から] アイコンをクリックします。[PyTorch モデルのインポート] ダイアログ ボックスで、モデル ファイルの場所をコピーして [インポート] をクリックします。
ディープ ネットワーク デザイナーを使用して PyTorch ネットワークをインポートする場合、ネットワークの入力サイズを指定することができます。このオプションは、入力サイズを指定することで、カスタム層の数が減少するなどの理由によってインポートの成功率が上がる可能性がある場合にのみ使用できます。
ネットワークがインポートされて [インポート レポート] が生成されます。ネットワークを学習または推論に使用する前に注意を要する問題がネットワークで発生した場合、[インポート レポート] にその問題が表示されます。たとえば、アプリが入力サイズを推定できない場合や、プレースホルダー層を完了させる必要がある場合、このレポートに警告が表示されます。
PyTorch® ネットワークをディープ ネットワーク デザイナーにインポートする方法、および問題がある場合にそれを解決する方法を示す例については、Import PyTorch Model Using Deep Network Designerを参照してください。
ディープ ネットワーク デザイナーから学習済みネットワークを Simulink® にエクスポートします。
ディープ ネットワーク デザイナーを開きます。
deepNetworkDesigner
アプリには 2 種類の Simulink エクスポートがあります。
単一のネットワーク ブロック (たとえば、Predict ブロック) へのエクスポート
複数の層ブロックへのエクスポート
すべての層が層ブロックとしてサポートされている小規模ネットワークの場合は、層ブロックへのエクスポートを推奨します。大規模なネットワークや、層ブロックとしてサポートされていない層を含むネットワークの場合は、単一のネットワーク ブロックへのエクスポートを推奨します。層ブロックとしてサポートされていない層がネットワークにある場合は、警告が表示されます。
層ブロックとしてエクスポート
この例では、[LSTM] で [開く] をクリックします。ネットワークを Simulink にエクスポートするには、[エクスポート]、[Simulink にエクスポート] を選択します。[Simulink にエクスポート] ダイアログで、[出力形式] として [複数の層ブロック] を選択します。ネットワーク パラメーターを含む Simulink ファイルを保存する場所を選択し、[エクスポート] をクリックします。ネットワークが初期化されていない場合、エクスポート時にネットワークの初期化が試みられます。
アプリによって Simulink モデルが作成されます。
my_model_1
内をクリックすると、個々の層ブロックが表示されます。
層ブロックとしてサポートされる層の一覧については、List of Deep Learning Layer Blocks and Subsystemsを参照してください。
ネットワーク ブロックとしてエクスポート
モデルを単一のネットワーク ブロックとしてエクスポートすることもできます。ディープ ネットワーク デザイナーで、[出力形式] として [単一ネットワーク ブロック] を選択します。この例では、アプリはネットワークを Stateful Predict
ブロックとしてエクスポートします。
ディープ ネットワーク デザイナー アプリを使用すると、ネットワーク アーキテクチャを再作成する MATLAB® コードを生成できます。
すべての初期パラメーターを含めてネットワーク内の層を再作成するには、[エクスポート]、[ネットワーク コードを生成] を選択します。アプリによって、ネットワークからライブ スクリプトと、初期パラメーター (重みとバイアス) を含む MAT ファイルが作成されます。スクリプトを実行して、MAT ファイルからの学習可能なパラメーターを含むネットワーク層を再作成します。転移学習を実行する場合、このオプションを使用して重みを保持します。
ネットワーク内の層のみを再作成するには、[エクスポート]、[パラメーターなしでネットワーク コードを生成] を選択します。このネットワークには、事前学習済みの重みなどの初期パラメーターが含まれません。
生成されたスクリプトを実行すると、ネットワーク アーキテクチャが dlnetwork
オブジェクトとして返されます。ディープ ネットワーク デザイナーからエクスポートしたネットワークに学習させる例については、ディープ ネットワーク デザイナー入門を参照してください。コード生成の詳細については、ディープ ネットワーク デザイナーから MATLAB コードを生成を参照してください。
関連する例
プログラムでの使用
deepNetworkDesigner
は、ディープ ネットワーク デザイナー アプリを開きます。ディープ ネットワーク デザイナーが既に開いている場合、deepNetworkDesigner
はアプリにフォーカスを移動します。
deepNetworkDesigner(
は、ディープ ネットワーク デザイナー アプリを開き、指定されたネットワークをアプリに読み込みます。ネットワークには、層の配列、または net
)dlnetwork
オブジェクトを使用できます。DAGNetwork
オブジェクトまたは SeriesNetwork
オブジェクトをインポートした場合、ネットワークから dlnetwork
オブジェクトへの変換が試みられます。詳細については、dag2dlnetwork
を参照してください。LayerGraph
オブジェクトをインポートした場合、dlnetwork
オブジェクトへの変換が試みられます。
ディープ ネットワーク デザイナーが既に開いている場合、deepNetworkDesigner(net)
はアプリにフォーカスを移動し、既存のネットワークに追加するか置き換えるかを尋ねるメッセージを表示します。
deepNetworkDesigner(___,
は、古い (R2024a より前の) バージョンのアプリを開きます。このバージョンは、"-v1"
)DAGNetwork
オブジェクト、SeriesNetwork
オブジェクト、および LayerGraph
オブジェクトをサポートします。詳細については、既定の動作の変更を参照してください。
バージョン履歴
R2018b で導入入れ子層の内部を表示するには、ディープ ネットワーク デザイナーを使用します。たとえば、NetworkLayer
オブジェクトの内部を表示できるようになりました。入れ子層は、PyTorch や TensorFlow などの外部プラットフォームからネットワークをインポートするときによく使用されます。入れ子層の内部を表示するには、層をダブルクリックします。入れ子層をもつネットワークの構築、可視化、学習の方法を示す例については、Create and Train Network with Nested Layersを参照してください。
R2025a 以降、ディープ ネットワーク デザイナーは既定で、NetworkLayer
オブジェクトを使用して PyTorch および TensorFlow のネットワーク構成を表します。R2025a より前では、アプリは入れ子のカスタム層を使用してネットワーク構成を表します。
ディープ ネットワーク デザイナーを使用して、深層ニューラル ネットワークを Simulink 層ブロックにエクスポートします。アプリは、ネットワーク内の層に対応するブロックを含む Simulink モデルを返します。サポートされている層の詳細については、List of Deep Learning Layer Blocks and Subsystemsを参照してください。
R2025a 以降、ネットワークを Simulink にエクスポートするときに、アプリはネットワーク アーキテクチャに基づいて既定の動作を選択します。すべての層が層ブロックとしてサポートされている場合、既定のエクスポート タイプは層ブロックになります。それ以外の場合、既定のエクスポート タイプは、Predict ブロックや Stateful Predict ブロックなどのネットワーク ブロックになります。
R2025a 以降、[圧縮用の解析] オプションからのレポートに量子化に関する情報が含まれるようになりました。
圧縮解析レポートに次の内容が含まれるようになりました。
量子化によって可能になる最大メモリ削減量
ネットワークの層に対する量子化のサポート
ニューラル ネットワークの圧縮手法の詳細については、Reduce Memory Footprint of Deep Neural Networksを参照してください。
ディープ ネットワーク デザイナーに、アプリ使用時のユーザー エクスペリエンスを向上させるいくつかの機能が追加されました。
キーボード ショートカットを使用してダイアログ ボックスを確認または閉じる。
ネットワークのエクスポート名を指定する。
ネットワーク解析情報をアプリ内で直接表示する。
ディープ ネットワーク デザイナーのスタート ページに、多層パーセプトロン (MLP) ニューラル ネットワークのテンプレートが追加されました。このテンプレートを使用すると、特徴分類タスクに適した MLP ネットワークをすばやく作成できます。
ディープ ネットワーク デザイナーを使用して、ニューラル ネットワークの圧縮率を解析できるようになりました。たとえば、テイラー枝刈りまたは投影を使用して、ネットワーク層の最大メモリ削減量を確認できます。
ディープ ネットワーク デザイナーでネットワークを開きます。次に、[圧縮用の解析] をクリックします。
圧縮解析レポートには、次の情報が含まれます。
可能な最大メモリ削減量
枝刈りと投影のサポート
個々の層を枝刈りする能力に対するネットワーク アーキテクチャの影響
層メモリ
ディープ ネットワーク デザイナーのスタート ページに、1 次元畳み込みニューラル ネットワークのテンプレートが追加されました。テンプレートを使用すると、sequence-to-label や sequence-to-sequence の分類タスクに適した 1 次元畳み込みニューラル ネットワークをすばやく作成できます。
R2024a 以降、ディープ ネットワーク デザイナーは、既定で dlnetwork
オブジェクトを作成します。DAGNetwork
オブジェクトまたは SeriesNetwork
オブジェクトをインポートした場合、ネットワークから dlnetwork
オブジェクトへの変換が試みられます。詳細については、dag2dlnetwork
を参照してください。LayerGraph
オブジェクトをインポートした場合、dlnetwork
オブジェクトへの変換が試みられます。
dlnetwork
オブジェクトにはいくつかの利点があるため、DAGNetwork
オブジェクト、SeriesNetwork
オブジェクト、または LayerGraph
オブジェクトの代わりにこのオブジェクトを使うことを推奨します。
dlnetwork
オブジェクトは、ネットワークの構築、予測、組み込み学習、可視化、圧縮、検証、およびカスタム学習ループをサポートする統合されたデータ型です。dlnetwork
オブジェクトは、ユーザーが作成したり外部のプラットフォームからインポートしたりできる、さまざまなネットワーク アーキテクチャをサポートしています。関数
trainnet
はdlnetwork
オブジェクトをサポートしているため、損失関数を簡単に指定できます。組み込みの損失関数を選択するか、カスタム損失関数を指定できます。dlnetwork
オブジェクトを使用した学習と予測は、通常、LayerGraph
とtrainNetwork
を使用したワークフローよりも高速です。
R2024a より前のアプリの動作を再現するには、"-v1"
フラグを使用します。
deepNetworkDesigner("-v1") deepNetworkDesigner(net,"-v1")
ディープ ネットワーク デザイナーの動作の比較
非推奨 | 推奨 |
---|---|
古いバージョンのディープ ネットワーク デザイナーでは、
| R2024a 以降のディープ ネットワーク デザイナーでは、
|
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)