このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Stateful Classify
ライブラリ:
Deep Learning Toolbox /
Deep Neural Networks
説明
Stateful Classify ブロックは、ブロック パラメーターで指定された学習済み再帰型ニューラル ネットワークを使用して、入力におけるデータのクラス ラベルを予測します。このブロックを使用すると、MAT ファイルまたは MATLAB® 関数から Simulink® モデルに事前学習済みのネットワークを読み込ませることができます。このブロックは、予測のたびにネットワークの状態を更新します。
再帰型ニューラル ネットワークの状態を初期状態にリセットするには、Stateful Classify ブロックを Resettable Subsystem (Simulink) ブロック内に配置し、トリガーとして制御信号 Reset
を使用します。
例
Simulink でのネットワークの状態の分類と更新
この例では、Stateful Classify
ブロックを使用して、Simulink® で学習済みの再帰型ニューラル ネットワークのデータを分類する方法を説明します。この例では、事前学習済みの長短期記憶 (LSTM) ネットワークを使用します。
制限
dlnetwork
オブジェクトを使用する Stateful Classify ブロックでは、Intel® の MKL-DNN ライブラリを使用した CPU 高速化、および NVIDIA® の CuDNN ライブラリまたは TensorRT ライブラリを使用した GPU 高速化はサポートされていません。Stateful Classify ブロックは MAT ファイルのログ記録をサポートしていません。
端子
入力
input — シーケンス データまたは時系列データ
数値配列
入力の形式は、データのタイプによって異なります。
入力 | 説明 |
---|---|
ベクトル シーケンス | s 行 c 列の行列。ここで、s はシーケンス長、c はシーケンスの特徴の数です。 |
2 次元イメージ シーケンス | h x w x c x s の配列。ここで、h、w、および c は、それぞれイメージの高さ、幅、およびチャネル数に対応します。s はシーケンス長です。 |
出力
ypred — 予測クラス ラベル
列挙型
スコアが最も高い予測クラス ラベル。ラベルから成る N 行 1 列の列挙型ベクトルとして返されます。ここで、N は観測値の数です。
scores — 予測クラス スコア
行列
予測スコア。K 行 N 列の行列として返されます。ここで、K はクラスの数、N は観測値の数です。
labels — 予測スコアのクラス ラベル
行列
予測スコアに関連付けられたラベル。N 行 K 列の行列として返されます。ここで、N は観測値の数、K はクラスの数です。
パラメーター
ネットワーク — 学習済み再帰型ニューラル ネットワークのソース
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' |
分類 — スコアが最も高い予測ラベルの出力
on
(既定値) | off
スコアが最も高いラベルを出力する出力端子 ypred
を有効にします。
プログラムでの使用
ブロック パラメーター: Classification |
タイプ: 文字ベクトル、string |
値: 'off' | 'on' |
既定値: 'on' |
予測 — すべてのスコアおよび関連するラベルの出力
off
(既定値) | on
すべての予測スコアおよび関連するクラス ラベルを出力する出力端子 scores
および labels
を有効にします。
プログラムでの使用
ブロック パラメーター: Predictions |
タイプ: 文字ベクトル、string |
値: 'off' | 'on' |
既定: 'off' |
入力データの形式 — 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を参照してください。 |
クラス名ワークスペース変数 — ネットワーク出力のクラス名が格納されたワークスペース変数
classNames
(既定値) | categorical ベクトル変数 | string 配列変数 | 文字ベクトル変数名の cell 配列
クラス名が格納された変数。categorical ベクトル、string 配列、または文字ベクトルの cell 配列として指定します。
ネットワークの出力サイズはクラスの数と一致しなければなりません。
依存関係
このパラメーターを有効にするには、[ネットワーク] パラメーターを [MAT ファイルからのネットワーク]
に設定して、学習済みの dlnetwork
オブジェクトを MAT ファイルからインポートします。
プログラムでの使用
ブロック パラメーター: classNames |
タイプ: categorical ベクトル、string 配列、または文字ベクトルの cell 配列の変数名。 |
値: クラス名が格納された変数の名前。categorical ベクトル、string 配列、または文字ベクトルの cell 配列として指定します。 |
既定値: ワークスペース変数 classNames 。 |
拡張機能
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 Classify ブロックへの入力も非推奨となります。代わりに、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)