OpenCV453
公開メンバ関数 | 静的公開メンバ関数 | 全メンバ一覧

Classical recurrent layer [詳解]

#include <all_layers.hpp>

cv::dnn::Layerを継承しています。

公開メンバ関数

virtual void setWeights (const Mat &Wxh, const Mat &bh, const Mat &Whh, const Mat &Who, const Mat &bo)=0
 
virtual void setProduceHiddenOutput (bool produce=false)=0
 If this flag is set to true then layer will produce $ h_t $ as second output. [詳解]
 
- 基底クラス cv::dnn::Layer に属する継承公開メンバ関数
virtual CV_DEPRECATED_EXTERNAL void finalize (const std::vector< Mat * > &input, std::vector< Mat > &output)
 Computes and sets internal parameters according to inputs, outputs and blobs. [詳解]
 
virtual CV_WRAP void finalize (InputArrayOfArrays inputs, OutputArrayOfArrays outputs)
 Computes and sets internal parameters according to inputs, outputs and blobs. [詳解]
 
virtual CV_DEPRECATED_EXTERNAL void forward (std::vector< Mat * > &input, std::vector< Mat > &output, std::vector< Mat > &internals)
 Given the input blobs, computes the output blobs. [詳解]
 
virtual void forward (InputArrayOfArrays inputs, OutputArrayOfArrays outputs, OutputArrayOfArrays internals)
 Given the input blobs, computes the output blobs. [詳解]
 
void forward_fallback (InputArrayOfArrays inputs, OutputArrayOfArrays outputs, OutputArrayOfArrays internals)
 Given the input blobs, computes the output blobs. [詳解]
 
CV_DEPRECATED_EXTERNAL void finalize (const std::vector< Mat > &inputs, CV_OUT std::vector< Mat > &outputs)
 これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。 [詳解]
 
CV_DEPRECATED std::vector< Matfinalize (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)
 Allocates layer and computes output. [詳解]
 
virtual int inputNameToIndex (String inputName)
 Returns index of input blob into the input array. [詳解]
 
virtual CV_WRAP int outputNameToIndex (const String &outputName)
 Returns index of output blob in output array. [詳解]
 
virtual bool supportBackend (int backendId)
 Ask layer if it support specific backend for doing computations. [詳解]
 
virtual Ptr< BackendNodeinitHalide (const std::vector< Ptr< BackendWrapper > > &inputs)
 Returns Halide backend node. [詳解]
 
virtual Ptr< BackendNodeinitInfEngine (const std::vector< Ptr< BackendWrapper > > &inputs)
 
virtual Ptr< BackendNodeinitNgraph (const std::vector< Ptr< BackendWrapper > > &inputs, const std::vector< Ptr< BackendNode > > &nodes)
 
virtual Ptr< BackendNodeinitVkCom (const std::vector< Ptr< BackendWrapper > > &inputs)
 
virtual Ptr< BackendNodeinitCUDA (void *context, const std::vector< Ptr< BackendWrapper > > &inputs, const std::vector< Ptr< BackendWrapper > > &outputs)
 Returns a CUDA backend node [詳解]
 
virtual void applyHalideScheduler (Ptr< BackendNode > &node, const std::vector< Mat * > &inputs, const std::vector< Mat > &outputs, int targetId) const
 Automatic Halide scheduling based on layer hyper-parameters. [詳解]
 
virtual Ptr< BackendNodetryAttach (const Ptr< BackendNode > &node)
 Implement layers fusing. [詳解]
 
virtual bool setActivation (const Ptr< ActivationLayer > &layer)
 Tries to attach to the layer the subsequent activation layer, i.e. do the layer fusion in a partial case. [詳解]
 
virtual bool tryFuse (Ptr< Layer > &top)
 Try to fuse current layer with a next one [詳解]
 
virtual void getScaleShift (Mat &scale, Mat &shift) const
 Returns parameters of layers with channel-wise multiplication and addition. [詳解]
 
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 &params)
 Initializes only name, type and blobs fields.
 
void setParamsFrom (const LayerParams &params)
 Initializes only name, type and blobs fields.
 
- 基底クラス cv::Algorithm に属する継承公開メンバ関数
virtual CV_WRAP void clear ()
 Clears the algorithm state [詳解]
 
virtual void write (FileStorage &fs) const
 Stores algorithm parameters in a file storage [詳解]
 
CV_WRAP void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 simplified API for language bindings これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
 
virtual CV_WRAP void read (const FileNode &fn)
 Reads algorithm parameters from a file storage [詳解]
 
virtual CV_WRAP bool empty () const
 Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read [詳解]
 
virtual CV_WRAP void save (const String &filename) const
 
virtual CV_WRAP String getDefaultName () const
 

静的公開メンバ関数

static Ptr< RNNLayercreate (const LayerParams &params)
 
- 基底クラス cv::Algorithm に属する継承静的公開メンバ関数
template<typename _Tp >
static Ptr< _Tp > read (const FileNode &fn)
 Reads algorithm from the file node [詳解]
 
template<typename _Tp >
static Ptr< _Tp > load (const String &filename, const String &objname=String())
 Loads algorithm from the file [詳解]
 
template<typename _Tp >
static Ptr< _Tp > loadFromString (const String &strModel, const String &objname=String())
 Loads algorithm from a String [詳解]
 

その他の継承メンバ

- 基底クラス cv::dnn::Layer に属する継承公開変数類
CV_PROP_RW std::vector< Matblobs
 List of learned parameters must be stored here to allow read them by using Net::getParam().
 
CV_PROP String name
 Name of the layer instance, can be used for logging or other internal purposes.
 
CV_PROP String type
 Type name which was used for creating layer by layer factory.
 
CV_PROP int preferableTarget
 prefer target for layer forwarding
 
- 基底クラス cv::Algorithm に属する継承限定公開メンバ関数
void writeFormat (FileStorage &fs) const
 

詳解

Classical recurrent layer

Accepts two inputs $x_t$ and $h_{t-1}$ and compute two outputs $o_t$ and $h_t$.

input[0] should have shape [T, N, data_dims] where T and N is number of timestamps and number of independent samples of $x_t$ respectively.

output[0] will have shape [T, N, $N_o$], where $N_o$ is number of rows in $ W_{xo} $ matrix.

If setProduceHiddenOutput() is set to true then output[1] will contain a Mat with shape [T, N, $N_h$], where $N_h$ is number of rows in $ W_{hh} $ matrix.

関数詳解

◆ create()

static Ptr< RNNLayer > cv::dnn::RNNLayer::create ( const LayerParams params)
static

Creates instance of RNNLayer

◆ setProduceHiddenOutput()

virtual void cv::dnn::RNNLayer::setProduceHiddenOutput ( bool  produce = false)
pure virtual

If this flag is set to true then layer will produce $ h_t $ as second output.

Shape of the second output is the same as first output.

◆ setWeights()

virtual void cv::dnn::RNNLayer::setWeights ( const Mat Wxh,
const Mat bh,
const Mat Whh,
const Mat Who,
const Mat bo 
)
pure virtual

Setups learned weights.

Recurrent-layer behavior on each step is defined by current input $ x_t $, previous state $ h_t $ and learned weights as follows:

\begin{eqnarray*} h_t &= tanh&(W_{hh} h_{t-1} + W_{xh} x_t + b_h), \\ o_t &= tanh&(W_{ho} h_t + b_o), \end{eqnarray*}

引数
Wxhis $ W_{xh} $ matrix
bhis $ b_{h} $ vector
Whhis $ W_{hh} $ matrix
Whois $ W_{xo} $ matrix
bois $ b_{o} $ vector

このクラス詳解は次のファイルから抽出されました: