このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Predict
学習済み深層学習ニューラル ネットワークを使用した応答の予測

ライブラリ:
Deep Learning Toolbox /
Deep Neural Networks
説明
Predict ブロックは、ブロック パラメーターで指定された学習済みネットワークを使用して、入力におけるデータの応答を予測します。このブロックを使用すると、MAT ファイルまたは MATLAB® 関数から Simulink® モデルに事前学習済みのネットワークを読み込ませることができます。
メモ
Predict ブロックを使用して Simulink で予測を行います。MATLAB コードを使用してプログラムで予測を行うには、関数 minibatchpredict
または predict
を使用します。
例
深層学習を使用した Simulink での車線検出と車両検出
この例では、Simulink® モデル内で深層畳み込みニューラル ネットワークを使用して、車線検出と車両検出を実行する方法を示します。この例では、交通量ビデオのフレームを入力として受け取り、自車の左右の車線に対応する 2 つの車線境界線を出力し、フレーム内の車両を検出します。
端子
入力
Predict ブロックの入力端子は、読み込まれたネットワークの入力層の名前を取ります。たとえば、MATLAB function
用の imagePretrainedNetwork
を指定した場合、Predict ブロックの入力端子には data というラベルが付けられます。予測ブロックへの入力には、読み込まれたネットワークに応じて、イメージ、シーケンス、または時系列データを使用できます。
入力のレイアウトは、データのタイプによって異なります。
データ | 予測子のレイアウト |
---|---|
2 次元イメージ | h x w x c x N の数値配列。ここで、h、w、および c は、それぞれイメージの高さ、幅、およびチャネル数です。N はイメージの数です。 |
ベクトル シーケンス | s 行 c 列の行列。ここで、s はシーケンス長、c はシーケンスの特徴の数です。 |
2 次元イメージ シーケンス | h x w x c x s の配列。ここで、h、w、および c は、それぞれイメージの高さ、幅、およびチャネル数に対応します。s はシーケンス長です。 |
特徴 | N 行 numFeatures 列の数値配列。ここで、N は観測値の数、numFeatures は入力データの特徴の数です。 |
配列に NaN
が含まれる場合、ネットワーク全体に伝播されます。
出力
Predict ブロックの出力端子は、読み込まれたネットワークの出力層の名前を取ります。たとえば、MATLAB function
用の imagePretrainedNetwork
を指定した場合、Predict ブロックの出力端子には prob_flatten というラベルが付けられます。Predict の出力は、読み込まれたネットワークに応じて、予測スコアまたは応答を表すことができます。
予測スコアまたは予測応答は、K 行 N 列の配列として返されます。ここで、K はクラスの数、N は観測値の数です。
ネットワーク層の Activations
を有効にした場合、Predict ブロックは、選択したネットワーク層の名前をもつ新しい出力端子を作成します。この端子は、選択したネットワーク層からのアクティベーションを出力します。
ネットワーク層からのアクティベーションは、数値配列として返されます。出力の形式は、入力データのタイプおよび層出力のタイプによって異なります。
2 次元イメージ出力の場合、アクティベーションは h×w×c×n の配列になります。ここで、h、w、および c はそれぞれ選択した層の出力の高さ、幅、およびチャネル数、n はイメージの数です。
ベクトル データを含む単一のタイムステップの場合、アクティベーションは c 行 n 列の行列になります。ここで、c はシーケンスの特徴の数、n はシーケンスの数です。
ベクトル データを含む複数のタイムステップの場合、アクティベーションは c×n×s の行列になります。ここで、c はシーケンスの特徴の数、n はシーケンスの数、s はシーケンス長です。
2 次元イメージ データを含む単一のタイム ステップの場合、アクティベーションは h×w×c×n の配列になります。ここで、n はシーケンスの数、h、w、および c はそれぞれイメージの高さ、幅、およびチャネル数です。
パラメーター
学習済みネットワークの変換元を指定します。次のいずれかを選択します。
MAT ファイルからのネットワーク
—dlnetwork
オブジェクトを含む MAT ファイルから学習済みネットワークをインポートします。MATLAB 関数からのネットワーク
— MATLAB 関数から事前学習済みのネットワークをインポートします。たとえば、事前学習済みの GoogLeNet を使用するには、MATLAB の M ファイルに関数pretrainedGoogLeNet
を作成し、この関数をインポートします。function net = pretrainedGoogLeNet net = imagePretrainedNetwork("googlenet"); end
プログラムでの使用
ブロック パラメーター: Network |
タイプ: 文字ベクトル、string |
値: 'Network from MAT file' | 'Network from MATLAB function' |
既定: 'Network from MAT file' |
このパラメーターは、読み込もうとしている学習済み深層学習ネットワークを含む MAT ファイルの名前を指定します。ファイルが MATLAB のパス上にない場合は、[参照] ボタンを使用してファイルを探します。
依存関係
このパラメーターを有効にするには、[ネットワーク] パラメーターを [MAT ファイルからのネットワーク]
に設定します。
プログラムでの使用
ブロック パラメーター: NetworkFilePath |
タイプ: 文字ベクトル、string |
値: MAT ファイルのパスまたは名前 |
既定: 'untitled.mat'
|
このパラメーターは、事前学習済みの深層学習ネットワークに関する MATLAB 関数の名前を指定します。たとえば、事前学習済みの GoogLeNet を使用するには、MATLAB の M ファイルに関数 pretrainedGoogLeNet
を作成し、この関数をインポートします。
function net = pretrainedGoogLeNet net = imagePretrainedNetwork("googlenet"); end
依存関係
このパラメーターを有効にするには、[ネットワーク] パラメーターを [MATLAB 関数からのネットワーク]
に設定します。
プログラムでの使用
ブロック パラメーター: NetworkFunction |
タイプ: 文字ベクトル、string |
値: MATLAB 関数名 |
既定: 'squeezenet' |
予測に使用するミニバッチのサイズ。正の整数として指定します。ミニバッチのサイズが大きくなるとより多くのメモリが必要になりますが、予測時間が短縮される可能性があります。
プログラムでの使用
ブロック パラメーター: MiniBatchSize |
タイプ: 文字ベクトル、string |
値: 正の整数 |
既定: '128' |
予測スコアまたは応答を返す出力端子を有効にします。
プログラムでの使用
ブロック パラメーター: Predictions |
タイプ: 文字ベクトル、string |
値: 'off' | 'on' |
既定: 'on' |
このパラメーターは、学習済みの dlnetwork
に必要な入力データ形式を指定します。
データ形式。string スカラーまたは文字ベクトルとして指定します。文字列の各文字は、次のいずれかの次元ラベルでなければなりません。
"S"
— 空間"C"
— チャネル"B"
— バッチ"T"
— 時間"U"
— 指定なし
たとえば、シーケンスのバッチを含み、1 番目、2 番目、および 3 番目の次元がそれぞれチャネル、観測値、およびタイム ステップに対応する配列の場合、"CBT"
の形式で指定できます。
"S"
または "U"
のラベルが付いた次元については、複数回指定できます。ラベル "C"
、"B"
、および "T"
はそれぞれ 1 回まで使用できます。ソフトウェアは、2 番目の次元の後ろにある大きさが 1 の "U"
次元を無視します。
詳細については、深層学習のデータ形式を参照してください。
既定では、このパラメーターはネットワークが必要とするデータ形式を使用します。
依存関係
このパラメーターを有効にするには、[ネットワーク] パラメーターを [MAT ファイルからのネットワーク]
に設定して、学習済みの dlnetwork
オブジェクトを MAT ファイルからインポートします。
プログラムでの使用
ブロック パラメーター: InputDataFormats |
タイプ: 文字ベクトル、string |
値: 1 つ以上の入力をもつネットワークの場合は、"{'inputlayerName1', 'SSC'; 'inputlayerName2', 'SSCB'; ...}" の形式でテキストを指定します。入力層がなく複数の入力端子をもつネットワークの場合は、"{'inputportName1/inport1, 'SSC'; 'inputportName2/inport2, 'SSCB'; ...}" の形式でテキストを指定します。 |
既定: ネットワークが必要とするデータ形式。詳細については、深層学習のデータ形式を参照してください。 |
[アクティベーション] リストを使用して、特徴を抽出する層を選択します。選択した層は、Predict ブロックの出力端子として現れます。
プログラムでの使用
ブロック パラメーター: Activations |
タイプ: 文字ベクトル、string |
値: '{'layerName1',layerName2',...}' の形式の文字ベクトル |
既定: '' |
ヒント
Intel® MKL-DNN ライブラリを活用してコードを生成することで、シミュレーションを高速化できます。詳細については、Acceleration for Simulink Deep Learning Modelsを参照してください。
拡張機能
使用上の注意および制限:
サードパーティのライブラリに依存しない汎用の C コードを生成するには、[コンフィギュレーション パラメーター]、[コード生成] 全般カテゴリで、[言語] パラメーターを
[C]
に設定します。C++ コードを生成するには、[コンフィギュレーション パラメーター]、[コード生成] 全般カテゴリで、[言語] パラメーターを
[C++]
に設定します。コード生成用のターゲット ライブラリを指定するには、[コード生成]、[インターフェイス] カテゴリで、[ターゲット ライブラリ] パラメーターを設定します。このパラメーターを[なし]
に設定すると、サードパーティのライブラリに依存しない汎用の C++ コードが生成されます。コード生成でサポートされているネットワークと層の一覧については、コード生成でサポートされているネットワークとレイヤー (MATLAB Coder)を参照してください。
使用上の注意および制限:
[コンフィギュレーション パラメーター]、[コード生成] 全般カテゴリの [言語] パラメーターを
[C++]
に設定しなければなりません。CUDA® コード生成でサポートされているネットワークと層の一覧については、サポートされるネットワーク、層、クラス (GPU Coder)を参照してください。
Predict ブロックを含む Simulink モデルのコード生成に関する詳細については、車線検出と車両検出を実行する深層学習 Simulink モデルのコード生成 (GPU Coder)を参照してください。
バージョン履歴
R2020b で導入R2024a 以降、SeriesNetwork
オブジェクトおよび DAGNetwork
オブジェクトは非推奨となりました。この推奨により、SeriesNetwork
および DAGNetwork
の Predict ブロックへの入力も非推奨となります。代わりに、dlnetwork
オブジェクトを使用してください。dlnetwork
オブジェクトには次の利点があります。
dlnetwork
オブジェクトは、ネットワークの構築、予測、組み込み学習、可視化、圧縮、検証、およびカスタム学習ループをサポートする統合されたデータ型です。dlnetwork
オブジェクトは、ユーザーが作成したり外部のプラットフォームからインポートしたりできる、さまざまなネットワーク アーキテクチャをサポートしています。関数
trainnet
はdlnetwork
オブジェクトをサポートしているため、損失関数を簡単に指定できます。組み込みの損失関数を選択するか、カスタム損失関数を指定できます。dlnetwork
オブジェクトを使用した学習と予測は、通常、LayerGraph
とtrainNetwork
を使用したワークフローよりも高速です。
dlnetwork
オブジェクトをもつ Simulink ブロック モデルは動作が異なります。予測スコアは K 行 N 列の行列として返されます。ここで、K はクラスの数、N は観測値の数です。SeriesNetwork
オブジェクトまたは DAGNetwork
オブジェクトをもつ既存の Simulink ブロック モデルがある場合、代わりに、次の手順に従って dlnetwork
オブジェクトを使用します。
関数
dag2dlnetwork
を使用して、SeriesNetwork
オブジェクトまたはDAGNetwork
オブジェクトをdlnetwork
に変換します。ブロックへの入力がベクトル シーケンスの場合、サイズが s 行 c 列となるように、transpose ブロックを使用して行列を転置します。ここで、s はシーケンス長、c はシーケンスの特徴の数です。
transpose ブロックを使用して、予測スコアを N 行 K 列の配列に転置します。ここで、N は観測値の数、K はクラスの数です。
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)