|
OpenCV 4.5.3(日本語機械翻訳)
|
LSTM recurrent layer [詳解]
#include <all_layers.hpp>
cv::dnn::Layerを継承しています。
公開メンバ関数 |
|
| virtual CV_DEPRECATED void | setWeights (const Mat &Wh, const Mat &Wx, const Mat &b)=0 |
| LSTMレイヤーに学習済みのウェイトを設定します。[【詳解】(英語]
|
|
| virtual void | setOutShape (const MatShape &outTailShape=MatShape())=0 |
出力blobの形状を指定し、[[T],N] +outTailShape.[【詳解】(英語]
|
|
| virtual CV_DEPRECATED void | setUseTimstampsDim (bool use=true)=0 |
| 入力blobの最初の次元をタイムスタンプ次元として解釈するか、サンプルとして解釈するかを指定します。[【詳解】(英語]
|
|
| virtual CV_DEPRECATED void | setProduceCellOutput (bool produce=false)=0 |
このフラグがtrueに設定されている場合、レイヤーは2番目の出力として を2番目の出力として生成します。[【詳解】(英語]
|
|
| int | inputNameToIndex (String inputName) CV_OVERRIDE |
| 入力blobのインデックスを入力配列に返します。[【詳解】(英語]
|
|
| int | outputNameToIndex (const String &outputName) CV_OVERRIDE |
| 出力配列に出力blobのインデックスを返します。[【詳解】(英語]
|
|
基底クラス
cv::dnn::Layer
に属する継承公開メンバ関数 |
|
| virtual CV_DEPRECATED_EXTERNAL void | finalize (const std::vector< Mat * > &input, std::vector< Mat > &output) |
| 入力、出力、blobに応じて内部パラメータを計算、設定します。[【詳解】(英語]
|
|
| virtual CV_WRAP void | finalize (InputArrayOfArrays inputs, OutputArrayOfArrays outputs) |
| 入力、出力、blobに応じて内部パラメータを計算、設定します。[【詳解】(英語]
|
|
| virtual CV_DEPRECATED_EXTERNAL void | forward (std::vector< Mat * > &input, std::vector< Mat > &output, std::vector< Mat > &internals) |
blobが与えられるとinputblobが与えられると、出力を計算するblobs.[【詳解】(英語]
|
|
| virtual void | forward (InputArrayOfArrays inputs, OutputArrayOfArrays outputs, OutputArrayOfArrays internals) |
blobが与えられるとinputblobが与えられると、出力を計算するblobs.[【詳解】(英語]
|
|
| void | forward_fallback (InputArrayOfArrays inputs, OutputArrayOfArrays outputs, OutputArrayOfArrays internals) |
blobが与えられるとinputblobが与えられると、出力を計算するblobs.[【詳解】(英語]
|
|
| CV_DEPRECATED_EXTERNAL void | finalize (const std::vector< Mat > &inputs, CV_OUT std::vector< Mat > &outputs) |
| これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。[【詳解】(英語]
|
|
| CV_DEPRECATED std::vector< Mat > | finalize (const std::vector< Mat > &inputs) |
| これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。[【詳解】(英語]
|
|
| CV_DEPRECATED CV_WRAP void | run (const std::vector< Mat > &inputs, CV_OUT std::vector< Mat > &outputs, CV_IN_OUT std::vector< Mat > &internals) |
| レイヤーを割り当て、出力を計算します。[【詳解】(英語]
|
|
| virtual bool | supportBackend (int backendId) |
| 計算を行うために特定のバックエンドをサポートしているかどうかをレイヤーに尋ねます。[【詳解】(英語]
|
|
| virtual Ptr< BackendNode > | initHalide (const std::vector< Ptr< BackendWrapper > > &inputs) |
| Halide バックエンドノードを返します。[【詳解】(英語]
|
|
| virtual Ptr< BackendNode > | initInfEngine (const std::vector< Ptr< BackendWrapper > > &inputs) |
| virtual Ptr< BackendNode > | initNgraph (const std::vector< Ptr< BackendWrapper > > &inputs, const std::vector< Ptr< BackendNode > > &nodes) |
| virtual Ptr< BackendNode > | initVkCom (const std::vector< Ptr< BackendWrapper > > &inputs) |
| virtual Ptr< BackendNode > | initCUDA (void *context, const std::vector< Ptr< BackendWrapper > > &inputs, const std::vector< Ptr< BackendWrapper > > &outputs) |
| CUDA バックエンドノードを返します[【詳解】(英語]
|
|
| virtual void | applyHalideScheduler (Ptr< BackendNode > &node, const std::vector< Mat * > &inputs, const std::vector< Mat > &outputs, int targetId) const |
| レイヤーのハイパーパラメータに基づいたHalideの自動スケジューリング[【詳解】(英語]
|
|
| virtual Ptr< BackendNode > | tryAttach (const Ptr< BackendNode > &node) |
| レイヤーフュージングの実装[【詳解】(英語]
|
|
| virtual bool | setActivation (const Ptr< ActivationLayer > &layer) |
| 活性化された後続のレイヤーをそのレイヤーに添付しようとします。つまり、部分的なケースでレイヤーフュージョンを行います。[【詳解】(英語]
|
|
| virtual bool | tryFuse (Ptr< Layer > &top) |
| 現在のレイヤと次のレイヤの融合を試みる[【詳解】(英語]
|
|
| virtual void | getScaleShift (Mat &scale, Mat &shift) const |
| チャネル単位の乗算と加算でレイヤーのパラメータを返します。[【詳解】(英語]
|
|
| virtual void | unsetAttached () |
| "Deattaches" all the layers, attached to particular layer.
|
|
| virtual bool | getMemoryShapes (const std::vector< MatShape > &inputs, const int requiredOutputs, std::vector< MatShape > &outputs, std::vector< MatShape > &internals) const |
| virtual int64 | getFLOPS (const std::vector< MatShape > &inputs, const std::vector< MatShape > &outputs) const |
| virtual bool | updateMemoryShapes (const std::vector< MatShape > &inputs) |
| Layer (const LayerParams ¶ms) | |
| フィールドのみを初期化します。name,typeおよびblobsフィールドだけを初期化します。 |
|
| void | setParamsFrom (const LayerParams ¶ms) |
| フィールドのみを初期化します。name,typeおよびblobsフィールドだけを初期化します。 |
|
基底クラス
cv::Algorithm
に属する継承公開メンバ関数 |
|
| virtual CV_WRAP void | clear () |
| アルゴリズムの状態をクリアする[【詳解】(英語]
|
|
| virtual void | write (FileStorage &fs) const |
| アルゴリズムのパラメーターをファイルストレージに格納[【詳解】(英語]
|
|
| CV_WRAP void | write (const Ptr< FileStorage > &fs, const String &name=String()) const |
| これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。 |
|
| virtual CV_WRAP void | read (const FileNode &fn) |
| アルゴリズム・パラメータをファイル・ストレージから読み込みます。[【詳解】(英語]
|
|
| virtual CV_WRAP bool | empty () const |
| が空の場合はtrueを返します。Algorithmが空の場合は真を返します。[【詳解】(英語]
|
|
| virtual CV_WRAP void | save (const String &filename) const |
| virtual CV_WRAP String | getDefaultName () const |
静的公開メンバ関数 |
|
| static Ptr< LSTMLayer > | create (const LayerParams ¶ms) |
基底クラス
cv::Algorithm
に属する継承静的公開メンバ関数 |
|
| template<typename _Tp > | |
| static Ptr< _Tp > | read (const FileNode &fn) |
| ファイル・ノードからアルゴリズムを読み込む[【詳解】(英語]
|
|
| template<typename _Tp > | |
| static Ptr< _Tp > | load (const String &filename, const String &objname=String()) |
| ファイルからアルゴリズムを読み込む[【詳解】(英語]
|
|
| template<typename _Tp > | |
| static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String()) |
| 文字列からアルゴリズムを読み込む[【詳解】(英語]
|
|
その他の継承メンバ |
|
基底クラス
cv::dnn::Layer
に属する継承公開変数類 |
|
| CV_PROP_RW std::vector< Mat > | blobs |
| 学習したパラメータのリストをここに保存しておくことで、使用者が読み込めるようになります。Net::getParam(). |
|
| CV_PROP String | name |
| レイヤーインスタンスの名前。ログ記録やその他の内部的な目的に使用できます。 |
|
| CV_PROP String | type |
| レイヤファクトリでレイヤを作成する際に使用された名前を入力してください。 |
|
| CV_PROP int | preferableTarget |
| フォワーディングの対象となるレイヤー |
|
基底クラス
cv::Algorithm
に属する継承限定公開メンバ関数 |
|
| void | writeFormat (FileStorage &fs) const |
LSTM再帰層
|
static |
LSTMレイヤーのインスタンスを作成する
|
virtual |
入力blobのインデックスを入力配列に返します。
| inputName | 入力blobのラベル |
各レイヤーの入力と出力には、"%<レイヤー名%>[.出力名]"という表記を使って、簡単に識別できるラベルを付けることができます。このメソッドは、入力blobのラベルを入力ベクトルのインデックスにマッピングします。
cv::dnn::Layerを再実装します。
|
virtual |
|
pure virtual |
出力blobの形状を指定し、[[T],N] +outTailShape.
このパラメーターが空または未設定の場合はoutTailShape= [Wh.size(0)]が使用されます。Whのパラメータです。setWeights().
|
pure virtual |
このフラグがtrueに設定されている場合、レイヤーは2番目の出力として
を2番目の出力として生成します。
use_timestamp_dimを使用します。LayerParams.2番目の出力の形状は、1番目の出力と同じです。
|
pure virtual |
入力blobの最初の次元をタイムスタンプ次元として解釈するか、サンプルとして解釈するかを指定します。
produce_cell_outputを使用します。LayerParams.flagがtrueに設定されている場合、入力blobの形状は、[T,N,[data dims]] と解釈されます。Tは、タイムスタンプの数を指定します。Nは、独立したストリームの数です。この場合、各forward()を呼び出すたびにTタイムスタンプを繰り返し、レイヤーの状態を更新します。T回です。
flagがfalseに設定されている場合、入力blobの形状は、[N,[data dims]]. この場合、各forward()を呼び出すと、1回の反復が行われ、形状が[N,[out dims]].
|
pure virtual |
LSTMレイヤーに学習済みのウェイトを設定します。
各ステップにおけるLSTMの動作は、現在の入力、前回の出力、前回のセルの状態、学習した重みによって定義される。
ここで
を現在の入力とする。
を現在の出力とする。
は現在の状態である。現在の出力と現在のセルの状態は以下のように計算されます。
ここで
は要素ごとの乗算演算であり
は学習した重みを用いて計算される内部ゲートです。
ゲートは以下のように計算されます。
ここで
,
および
は学習した重みで、行列として表されます。
,
,
.
簡略化と性能向上のため,ここでは
(を使用しています(つまり
の垂直連結です。
),
. についても同様です。
と
,
.
| Wh | は,前の出力がどのように内部ゲートに変換されるかを定義する行列である(すなわち,上述の表記法によれば ) |
| Wx | は,現在の入力が内部ゲートにどのように変換されるかを定義する行列である(すなわち,上述の表記法によれば ) |
| b | はバイアスベクトル(上述の表記法によれば ) |