Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

ディープ ネットワーク デザイナーからの MATLAB コードの生成

ディープ ネットワーク デザイナー アプリを使用すると、アプリにおけるネットワークの構築、編集、学習を再作成する MATLAB® コードを生成できます。

[デザイナー] タブでは、次を行うライブ スクリプトを生成できます。

  • ネットワーク内の層の再作成。[エクスポート][コード生成] を選択します。

  • すべての初期パラメーターを含むネットワーク内の層の再作成。[エクスポート][初期パラメーターを使ったコード生成] を選択します。

[学習] タブでは、次のライブ スクリプトを生成できます。

  • ディープ ネットワーク デザイナーで作成したネットワークの構築と学習の再作成。[エクスポート][学習用コードの生成] を選択します。

ネットワーク層を再作成する MATLAB コードの生成

ディープ ネットワーク デザイナーで構築したネットワークを再作成する MATLAB コードを生成します。[デザイナー] タブで次のオプションのいずれかを選択します。

  • ネットワークに層を再作成するには、[エクスポート][コード生成] を選択します。このネットワークには、事前学習済みの重みなどの初期パラメーターが含まれません。

  • すべての初期パラメーターを含む層をネットワークに再作成するには、[エクスポート][初期パラメーターを使ったコード生成] を選択します。アプリによって、ネットワークからライブ スクリプトと、初期パラメーター (重みとバイアス) を含む MAT ファイルが作成されます。スクリプトを実行して、MAT ファイルからの学習可能なパラメーターを含むネットワーク層を再作成します。転移学習を実行する場合、このオプションを使用して重みを保持します。

生成されたスクリプトを実行すると、ネットワーク アーキテクチャがワークスペースの変数として返されます。ネットワーク アーキテクチャによって、変数は lgraph という名前の層グラフ、または layers という名前の層配列になります。ディープ ネットワーク デザイナーからエクスポートしたネットワークに学習させる例については、ディープ ネットワーク デザイナーを使用したシンプルなシーケンス分類ネットワークの作成を参照してください。

ネットワークに学習させる MATLAB コードの生成

ネットワークの構築と学習をディープ ネットワーク デザイナーで再作成するには、学習後に MATLAB コードを生成します。ディープ ネットワーク デザイナーを使用してイメージ分類ネットワークに学習させる例については、ディープ ネットワーク デザイナーを使用した転移学習を参照してください。

学習が完了したら、[学習] タブの [エクスポート][学習用コードの生成] を選択します。アプリによって、ネットワークからライブ スクリプトと、初期パラメーター (重みとバイアス) を含む MAT ファイルが作成されます。データをワークスペースからディープ ネットワーク デザイナーにインポートする場合、これも生成される MAT ファイルに含まれます。

生成されたスクリプトを実行すると、ネットワークの構築 (MAT ファイルからの学習可能なパラメーターを含む)、データのインポート、学習オプションの設定、およびネットワークの学習が行われます。生成されたスクリプトを調べて、ネットワークの構築と学習をコマンド ラインで行う方法を確認します。

メモ

ネットワーク、学習データおよび検証データ、または学習オプションを変更する場合は、ライブ スクリプトを生成する前に [学習] をクリックします。

生成したスクリプトは、ハイパーパラメーター値の範囲のスイープ、またはベイズ最適化の使用による最適な学習オプションの検出を行う深層学習実験を作成するための開始点としても使用できます。ディープ ネットワーク デザイナーで学習させたネットワークのハイパーパラメーターを調整するために実験マネージャーを使用する方法を示す例については、Adapt Code Generated in Deep Network Designer for Use in Experiment Managerを参照してください。

ネットワークを使用した予測

学習済みのネットワークが変数 net に含まれているとします。学習済みネットワークを予測に使用するには、関数 predict を使用します。たとえば、学習済みイメージ分類ネットワークがあるとします。エクスポートされたネットワークを使用して peppers.png のクラスを予測します。

img = imread("peppers.png");
img = imresize(img, net.Layers(1).InputSize(1:2));
label = predict(net, img);
imshow(img);
title(label);

参照

[1] Kudo, Mineichi, Jun Toyama, and Masaru Shimbo. “Multidimensional Curve Classification Using Passing-through Regions.” Pattern Recognition Letters 20, no. 11–13 (November 1999): 1103–11. https://doi.org/10.1016/S0167-8655(99)00077-X.

[2] Kudo, Mineichi, Jun Toyama, and Masaru Shimbo. Japanese Vowels Data Set. Distributed by UCI Machine Learning Repository. https://archive.ics.uci.edu/ml/datasets/Japanese+Vowels.

参考

| |

関連するトピック