Predict
![](block_icon_predict.png)
ライブラリ:
Deep Learning Toolbox /
Deep Neural Networks
説明
Predict ブロックは、ブロック パラメーターで指定された学習済みネットワークを使用して、入力におけるデータの応答を予測します。このブロックを使用すると、MAT ファイルまたは MATLAB® 関数から Simulink® モデルに事前学習済みのネットワークを読み込ませることができます。
メモ
Predict ブロックを使用して Simulink で予測を行います。MATLAB コードを使用してプログラムで予測を行うには、関数 minibatchpredict
または predict
を使用します。
例
端子
入力
input — イメージ、特徴、シーケンス、または時系列データ
数値配列
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
が含まれる場合、ネットワーク全体に伝播されます。
出力
output — 予測スコア、応答、またはアクティベーション
数値配列
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 ファイルからのネットワーク
(既定値) | MATLAB 関数からのネットワーク
学習済みネットワークの変換元を指定します。次のいずれかを選択します。
MAT ファイルからのネットワーク
—dlnetwork
オブジェクトを含む MAT ファイルから学習済みネットワークをインポートします。Network from MATLAB function
— 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 ファイル
untitled.mat
(既定値) | MAT ファイルのパスまたは名前
このパラメーターは、読み込もうとしている学習済み深層学習ネットワークを含む MAT ファイルの名前を指定します。ファイルが MATLAB のパス上にない場合は、[参照] ボタンを使用してファイルを探します。
依存関係
このパラメーターを有効にするには、[ネットワーク] パラメーターを [MAT ファイルからのネットワーク]
に設定します。
プログラムでの使用
ブロック パラメーター: NetworkFilePath |
タイプ: 文字ベクトル、string |
値: MAT ファイルのパスまたは名前 |
既定: 'untitled.mat' |
MATLAB 関数 — MATLAB 関数名
squeezenet
(既定値) | MATLAB 関数名
このパラメーターは、事前学習済みの深層学習ネットワークに関する MATLAB 関数の名前を指定します。たとえば、事前学習済みの GoogLeNet を使用するには、MATLAB の M ファイルに関数 pretrainedGoogLeNet
を作成し、この関数をインポートします。
function net = pretrainedGoogLeNet net = imagePretrainedNetwork("googlenet"); end
依存関係
このパラメーターを有効にするには、[ネットワーク] パラメーターを [MATLAB 関数からのネットワーク]
に設定します。
プログラムでの使用
ブロック パラメーター: NetworkFunction |
タイプ: 文字ベクトル、string |
値: MATLAB 関数名 |
既定: 'squeezenet' |
ミニバッチのサイズ — ミニバッチのサイズ
128 (既定値) | 正の整数
予測に使用するミニバッチのサイズ。正の整数として指定します。ミニバッチのサイズが大きくなるとより多くのメモリが必要になりますが、予測時間が短縮される可能性があります。
プログラムでの使用
ブロック パラメーター: MiniBatchSize |
タイプ: 文字ベクトル、string |
値: 正の整数 |
既定: '128' |
予測 — 予測スコアまたは応答の出力
on
(既定値) | off
予測スコアまたは応答を返す出力端子を有効にします。
プログラムでの使用
ブロック パラメーター: Predictions |
タイプ: 文字ベクトル、string |
値: 'off' | 'on' |
既定値: 'on' |
入力データの形式 — dlnetwork
の入力データ形式
文字ベクトル | string
このパラメーターは、学習済みの dlnetwork
に必要な入力データ形式を指定します。
データ形式。string スカラーまたは文字ベクトルとして指定します。文字列の各文字は、次のいずれかの次元ラベルでなければなりません。
"S"
— 空間"C"
— チャネル"B"
— バッチ"T"
— 時間"U"
— 指定なし
たとえば、シーケンスのバッチを含み、1 番目、2 番目、および 3 番目の次元がそれぞれチャネル、観測値、およびタイム ステップに対応する配列の場合、"CBT"
の形式で指定できます。
"S"
または "U"
のラベルが付いた次元については、複数回指定できます。"C"
、"B"
、"T"
のラベルについては、1 回のみ使用できます。ソフトウェアは、2 番目の次元の後ろにある大きさが 1 の "U"
次元を無視します。
詳細については、Deep Learning Data Formatsを参照してください。
既定では、このパラメーターはネットワークが必要とするデータ形式を使用します。
依存関係
このパラメーターを有効にするには、[ネットワーク] パラメーターを [MAT ファイルからのネットワーク]
に設定して、学習済みの dlnetwork
オブジェクトを MAT ファイルからインポートします。
プログラムでの使用
ブロック パラメーター: InputDataFormats |
タイプ: 文字ベクトル、string |
値: 1 つ以上の入力をもつネットワークの場合は、"{'inputlayerName1', 'SSC'; 'inputlayerName2', 'SSCB'; ...}" の形式でテキストを指定します。入力層がなく複数の入力端子をもつネットワークの場合は、"{'inputportName1/inport1, 'SSC'; 'inputportName2/inport2, 'SSCB'; ...}" の形式でテキストを指定します。 |
既定値: ネットワークが必要とするデータ形式。詳細については、Deep Learning Data Formatsを参照してください。 |
アクティベーション — 特定の層のネットワーク アクティベーションの出力
ネットワークの層
[アクティベーション] リストを使用して、特徴を抽出する層を選択します。選択した層は、Predict ブロックの出力端子として現れます。
プログラムでの使用
ブロック パラメーター: Activations |
タイプ: 文字ベクトル、string |
値: '{'layerName1',layerName2',...}' の形式の文字ベクトル |
既定値: '' |
ヒント
Intel® MKL-DNN ライブラリを活用してコードを生成することで、シミュレーションを高速化できます。詳細については、Acceleration for Simulink Deep Learning Modelsを参照してください。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
使用上の注意および制限:
サードパーティのライブラリに依存しない汎用の C コードを生成するには、[コンフィギュレーション パラメーター]、[コード生成] 全般カテゴリで、[言語] パラメーターを
[C]
に設定します。C++ コードを生成するには、[コンフィギュレーション パラメーター]、[コード生成] 全般カテゴリで、[言語] パラメーターを
[C++]
に設定します。コード生成用のターゲット ライブラリを指定するには、[コード生成]、[インターフェイス] カテゴリで、[ターゲット ライブラリ] パラメーターを設定します。このパラメーターを[なし]
に設定すると、サードパーティのライブラリに依存しない汎用の C++ コードが生成されます。ERT ベースのターゲットの場合、[コード生成]、[インターフェイス] ペインの [サポート: 可変サイズの信号] パラメーターを有効にしなければなりません。
コード生成でサポートされているネットワークと層の一覧については、コード生成でサポートされているネットワークとレイヤー (MATLAB Coder)を参照してください。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意および制限:
[コンフィギュレーション パラメーター]、[コード生成] 全般カテゴリの [言語] パラメーターを
[C++]
に設定しなければなりません。CUDA® コード生成でサポートされているネットワークと層の一覧については、サポートされるネットワーク、層、クラス (GPU Coder)を参照してください。
Predict ブロックを含む Simulink モデルのコード生成に関する詳細については、車線検出と車両検出を実行する深層学習 Simulink モデルのコード生成 (GPU Coder)を参照してください。
バージョン履歴
R2020b で導入R2024a: SeriesNetwork
および DAGNetwork
は非推奨
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 コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)