このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Stateful Predict
ライブラリ:
Deep Learning Toolbox /
Deep Neural Networks
説明
Stateful Predict ブロックは、ブロック パラメーターで指定された学習済み再帰型ニューラル ネットワークを使用して、入力におけるデータの応答を予測します。このブロックを使用すると、MAT ファイルまたは MATLAB® 関数から Simulink® モデルに事前学習済みのネットワークを読み込ませることができます。このブロックは、予測のたびにネットワークの状態を更新します。
再帰型ニューラル ネットワークの状態を初期状態にリセットするには、Stateful Predict ブロックを Resettable Subsystem (Simulink) ブロック内に配置し、トリガーとして制御信号 Reset
を使用します。
例
Simulink でのネットワークの状態の予測と更新
この例では、Stateful Predict
ブロックを使用して、学習済みの再帰型ニューラル ネットワークの応答を Simulink® で予測する方法を説明します。この例では、事前学習済みの長短期記憶 (LSTM) ネットワークを使用します。
制限
dlnetwork
オブジェクトを使用する Stateful Predict ブロックでは、Intel® の MKL-DNN ライブラリを使用した CPU 高速化、および NVIDIA® の CuDNN ライブラリまたは TensorRT ライブラリを使用した GPU 高速化はサポートされていません。
端子
入力
input — シーケンス データまたは時系列データ
数値配列
Stateful Predict ブロックの入力端子は、読み込まれたネットワークの入力層の名前を取ります。予測ブロックへの入力には、読み込まれたネットワークに応じて、シーケンス データまたは時系列データを使用できます。
シーケンスが含まれる数値配列の次元は、データのタイプによって異なります。
入力 | 説明 |
---|---|
ベクトル シーケンス | s 行 c 列の行列。ここで、s はシーケンス長、c はシーケンスの特徴の数です。 |
2 次元イメージ シーケンス | h x w x c x s の配列。ここで、h、w、および c は、それぞれイメージの高さ、幅、およびチャネル数に対応します。s はシーケンス長です。 |
出力
output — 予測スコアまたは応答
数値配列
Stateful Predict ブロックの出力端子は、読み込まれたネットワークの出力層の名前を取ります。Stateful Predict の出力は、読み込まれたネットワークに応じて、予測スコアまたは応答を表すことができます。
sequence-to-label 分類の場合、出力は K 行 N 列の行列になります。ここで、K はクラスの数、N は観測値の数です。
sequence-to-sequence 分類問題の場合、出力は K 行 S 列のスコア行列になります。ここで、K はクラスの数、S は対応する入力シーケンスに含まれるタイム ステップの総数です。
パラメーター
ネットワーク — 学習済み再帰型ニューラル ネットワークのソース
MAT ファイルからのネットワーク
(既定値) | MATLAB 関数からのネットワーク
学習済み再帰型ニューラル ネットワークのソースを指定します。この学習済みネットワークには、少なくとも 1 つの再帰層 (LSTM ネットワークなど) を含めなければなりません。次のいずれかを選択します。
Network from MAT-file
—dlnetwork
オブジェクトを含む MAT ファイルから学習済みの再帰型ニューラル ネットワークをインポートします。Network from MATLAB function
— MATLAB 関数から事前学習済みの再帰型ニューラル ネットワークをインポートします。
プログラムでの使用
ブロック パラメーター: 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 関数名
untitled
(既定値) | MATLAB 関数名
このパラメーターは、事前学習済みの再帰型ニューラル ネットワークに関する MATLAB 関数の名前を指定します。
依存関係
このパラメーターを有効にするには、[ネットワーク] パラメーターを [MATLAB 関数からのネットワーク]
に設定します。
プログラムでの使用
ブロック パラメーター: NetworkFunction |
タイプ: 文字ベクトル、string |
値: MATLAB 関数名 |
既定: 'untitled' |
サンプル時間 — 出力のサンプル周期およびオプションの時間オフセット
-1
(既定値) | スカラー | ベクトル
[サンプル時間] パラメーターは、シミュレーション中にブロックが新しい出力値をいつ計算するかを指定します。詳細については、サンプル時間の指定 (Simulink)を参照してください。
出力に時間オフセットをもたせない場合は、[サンプル時間] パラメーターをスカラーとして指定します。出力に時間オフセットを追加するには、[サンプル時間] パラメーターを 1
行 2
列のベクトルとして指定します。ここで、最初の要素はサンプリング周期で、2 番目の要素はオフセットです。
既定では、[サンプル時間] パラメーターの値は -1
です (値を継承します)。
プログラムでの使用
ブロック パラメーター: SampleTime |
タイプ: 文字ベクトル |
値: スカラー | ベクトル |
既定: '-1' |
入力データの形式 — 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を参照してください。 |
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
使用上の注意および制限:
サードパーティのライブラリに依存しない汎用の C コードを生成するには、[コンフィギュレーション パラメーター]、[コード生成] 全般カテゴリで、[言語] パラメーターを
[C]
に設定します。C++ コードを生成するには、[コンフィギュレーション パラメーター]、[コード生成] 全般カテゴリで、[言語] パラメーターを
[C++]
に設定します。コード生成用のターゲット ライブラリを指定するには、[コード生成]、[インターフェイス] カテゴリで、[ターゲット ライブラリ] パラメーターを設定します。このパラメーターを[なし]
に設定すると、サードパーティのライブラリに依存しない汎用の C++ コードが生成されます。ERT ベースのターゲットの場合、[コード生成]、[インターフェイス] ペインの [サポート: 可変サイズの信号] パラメーターを有効にしなければなりません。
コード生成でサポートされているネットワークと層の一覧については、コード生成でサポートされているネットワークとレイヤー (MATLAB Coder)を参照してください。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意および制限:
[コンフィギュレーション パラメーター]、[コード生成] 全般カテゴリの [言語] パラメーターを
[C++]
に設定しなければなりません。GPU コード生成は、cuDNN ライブラリをターゲットとする場合のみ、このブロックをサポートします。
バージョン履歴
R2021a で導入R2024a: SeriesNetwork
および DAGNetwork
は非推奨
R2024a 以降、SeriesNetwork
オブジェクトおよび DAGNetwork
オブジェクトは非推奨となりました。この推奨により、SeriesNetwork
および DAGNetwork
の Stateful 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)