このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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 ファイルのログ記録をサポートしていません。
端子
入力
入力の形式は、データのタイプによって異なります。
入力 | 説明 |
---|---|
ベクトル シーケンス | s 行 c 列の行列。ここで、s はシーケンス長、c はシーケンスの特徴の数です。 |
2 次元イメージ シーケンス | h x w x c x s の配列。ここで、h、w、および c は、それぞれイメージの高さ、幅、およびチャネル数に対応します。s はシーケンス長です。 |
出力
スコアが最も高い予測クラス ラベル。ラベルから成る N 行 1 列の列挙型ベクトルとして返されます。ここで、N は観測値の数です。
予測スコア。K 行 N 列の行列として返されます。ここで、K はクラスの数、N は観測値の数です。
予測スコアに関連付けられたラベル。N 行 K 列の行列として返されます。ここで、N は観測値の数、K はクラスの数です。
パラメーター
学習済み再帰型ニューラル ネットワークのソースを指定します。この学習済みネットワークには、少なくとも 1 つの再帰層 (LSTM ネットワークなど) を含めなければなりません。次のいずれかを選択します。
MAT ファイルからのネットワーク
—dlnetwork
オブジェクトを含む MAT ファイルから学習済みの再帰型ニューラル ネットワークをインポートします。MATLAB 関数からのネットワーク
— MATLAB 関数から事前学習済みの再帰型ニューラル ネットワークをインポートします。
プログラムでの使用
ブロック パラメーター: Network |
タイプ: 文字ベクトル、string |
値: 'Network from MAT file' | 'Network from MATLAB function' |
既定: 'Network from MAT file' |
このパラメーターは、読み込もうとしている学習済み再帰型ニューラル ネットワークを含む MAT ファイルの名前を指定します。ファイルが MATLAB のパス上にない場合は、[参照] ボタンを使用してファイルを探します。
依存関係
このパラメーターを有効にするには、[ネットワーク] パラメーターを [MAT ファイルからのネットワーク]
に設定します。
プログラムでの使用
ブロック パラメーター: NetworkFilePath |
タイプ: 文字ベクトル、string |
値: MAT ファイルのパスまたは名前 |
既定: 'untitled.mat'
|
このパラメーターは、事前学習済みの再帰型ニューラル ネットワークに関する MATLAB 関数の名前を指定します。
依存関係
このパラメーターを有効にするには、[ネットワーク] パラメーターを [MATLAB 関数からのネットワーク]
に設定します。
プログラムでの使用
ブロック パラメーター: NetworkFunction |
タイプ: 文字ベクトル、string |
値: MATLAB 関数名 |
既定: 'untitled' |
[サンプル時間] パラメーターは、シミュレーション中にブロックが新しい出力値をいつ計算するかを指定します。詳細については、サンプル時間の指定 (Simulink)を参照してください。
出力に時間オフセットをもたせない場合は、[サンプル時間] パラメーターをスカラーとして指定します。出力に時間オフセットを追加するには、[サンプル時間] パラメーターを 1
行 2
列のベクトルとして指定します。ここで、最初の要素はサンプリング周期で、2 番目の要素はオフセットです。
既定では、[サンプル時間] パラメーターの値は -1
です (値を継承します)。
プログラムでの使用
ブロック パラメーター: SampleTime |
タイプ: 文字ベクトル |
値: スカラー | ベクトル |
既定: '-1' |
スコアが最も高いラベルを出力する出力端子 ypred
を有効にします。
プログラムでの使用
ブロック パラメーター: Classification |
タイプ: 文字ベクトル、string |
値: 'off' | 'on' |
既定: 'on' |
すべての予測スコアおよび関連するクラス ラベルを出力する出力端子 scores
および labels
を有効にします。
プログラムでの使用
ブロック パラメーター: Predictions |
タイプ: 文字ベクトル、string |
値: 'off' | 'on' |
既定: 'off' |
このパラメーターは、学習済みの 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'; ...}' の形式の文字ベクトルを使用します。 |
既定: ネットワークが必要とするデータ形式。詳細については、深層学習のデータ形式を参照してください。 |
クラス名が格納された変数。categorical ベクトル、string 配列、または文字ベクトルの cell 配列として指定します。
ネットワークの出力サイズはクラスの数と一致しなければなりません。
依存関係
このパラメーターを有効にするには、[ネットワーク] パラメーターを [MAT ファイルからのネットワーク]
に設定して、学習済みの dlnetwork
オブジェクトを MAT ファイルからインポートします。
プログラムでの使用
ブロック パラメーター: classNames |
タイプ: categorical ベクトル、string 配列、または文字ベクトルの cell 配列の変数名。 |
値: クラス名が格納された変数の名前。categorical ベクトル、string 配列、または文字ベクトルの cell 配列として指定します。 |
既定: ワークスペース変数 classNames 。 |
拡張機能
使用上の注意および制限:
サードパーティのライブラリに依存しない汎用の C コードを生成するには、[コンフィギュレーション パラメーター]、[コード生成] 全般カテゴリで、[言語] パラメーターを
[C]
に設定します。C++ コードを生成するには、[コンフィギュレーション パラメーター]、[コード生成] 全般カテゴリで、[言語] パラメーターを
[C++]
に設定します。コード生成用のターゲット ライブラリを指定するには、[コード生成]、[インターフェイス] カテゴリで、[ターゲット ライブラリ] パラメーターを設定します。このパラメーターを[なし]
に設定すると、サードパーティのライブラリに依存しない汎用の C++ コードが生成されます。コード生成でサポートされているネットワークと層の一覧については、コード生成でサポートされているネットワークとレイヤー (MATLAB Coder)を参照してください。
使用上の注意および制限:
[コンフィギュレーション パラメーター]、[コード生成] 全般カテゴリの [言語] パラメーターを
[C++]
に設定しなければなりません。GPU コード生成は、cuDNN ライブラリをターゲットとする場合のみ、このブロックをサポートします。
バージョン履歴
R2021a で導入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 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)