cv::dnn::RNNLayer Class Reference abstract DNN (深度神经网络) 模块 » Partial List of Implemented Layers


Classical recurrent layer. 更多...

#include <opencv2/dnn/all_layers.hpp>

Inheritance diagram for cv::dnn::RNNLayer:
cv::dnn::Layer cv::Algorithm

Public Member Functions

virtual void  setProduceHiddenOutput (bool produce=false)=0
  If this flag is set to true then layer will produce \( h_t \) as second output. 更多...
 
virtual void  setWeights (const Mat &Wxh, const Mat &bh, const Mat &Whh, const Mat &Who, const Mat &bo)=0
 
-  Public Member Functions inherited from cv::dnn::Layer
  ()
 
  (const LayerParams &params)
  Initializes only name , type and blobs fields. 更多...
 
virtual  ~Layer ()
 
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 void  finalize (const std::vector< Mat *> &input, std::vector< Mat > &output)
  Computes and sets internal parameters according to inputs, outputs and blobs. 更多...
 
virtual void  finalize ( InputArrayOfArrays inputs, OutputArrayOfArrays outputs)
  Computes and sets internal parameters according to inputs, outputs and blobs. 更多...
 
void  finalize (const std::vector< Mat > &inputs, std::vector< Mat > &outputs)
  This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 更多...
 
std::vector< Mat finalize (const std::vector< Mat > &inputs)
  This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 更多...
 
virtual 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 . 更多...
 
virtual int64   getFLOPS (const std::vector< MatShape > &inputs, const std::vector< MatShape > &outputs) const
 
virtual bool  getMemoryShapes (const std::vector< MatShape > &inputs, const int requiredOutputs, std::vector< MatShape > &outputs, std::vector< MatShape > &internals) const
 
virtual void  getScaleShift ( Mat &scale, Mat &shift) const
  Returns parameters of layers with channel-wise multiplication and addition. 更多...
 
virtual Ptr < BackendNode initCUDA (void *context, const std::vector< Ptr < BackendWrapper >> &inputs, const std::vector< Ptr < BackendWrapper >> &outputs)
  Returns a CUDA backend node. 更多...
 
virtual Ptr < BackendNode initHalide (const std::vector< Ptr < BackendWrapper > > &inputs)
  Returns Halide backend node. 更多...
 
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 int  inputNameToIndex ( 字符串 inputName)
  Returns index of input blob into the input array. 更多...
 
virtual int  outputNameToIndex (const 字符串 &outputName)
  Returns index of output blob in output array. 更多...
 
void  run (const std::vector< Mat > &inputs, std::vector< Mat > &outputs, std::vector< Mat > &internals)
  Allocates layer and computes output. 更多...
 
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. 更多...
 
void  setParamsFrom (const LayerParams &params)
  Initializes only name , type and blobs fields. 更多...
 
virtual bool  supportBackend (int backendId)
  Ask layer if it support specific backend for doing computations. 更多...
 
virtual Ptr < BackendNode tryAttach (const Ptr < BackendNode > &node)
  Implement layers fusing. 更多...
 
virtual bool  tryFuse ( Ptr < > &top)
  Try to fuse current layer with a next one. 更多...
 
virtual void  unsetAttached ()
  "Deattaches" all the layers, attached to particular layer. 更多...
 
-  Public Member Functions inherited from cv::Algorithm
  Algorithm ()
 
virtual  ~Algorithm ()
 
virtual void  clear ()
  Clears the algorithm state. 更多...
 
virtual bool  empty () const
  返回 true 若 Algorithm is empty (e.g. in the very beginning or after unsuccessful read. 更多...
 
virtual 字符串   getDefaultName () const
 
virtual void  read (const FileNode &fn)
  Reads algorithm parameters from a file storage. 更多...
 
virtual void  save (const 字符串 &filename) const
 
virtual void  write ( FileStorage &fs) const
  Stores algorithm parameters in a file storage. 更多...
 
void  write (const Ptr < FileStorage > &fs, const 字符串 &name= 字符串 ()) const
  simplified API for language bindings This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 更多...
 

Static Public Member Functions

static Ptr < RNNLayer create (const LayerParams &params)
 
-  Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr < _Tp >  load (const 字符串 &filename, const 字符串 &objname= 字符串 ())
  Loads algorithm from the file. 更多...
 
template<typename _Tp >
static Ptr < _Tp >  loadFromString (const 字符串 &strModel, const 字符串 &objname= 字符串 ())
  Loads algorithm from a String. 更多...
 
template<typename _Tp >
static Ptr < _Tp >  read (const FileNode &fn)
  Reads algorithm from the file node. 更多...
 

额外继承成员

-  Public Attributes inherited from cv::dnn::Layer
std::vector< Mat blobs
  List of learned parameters must be stored here to allow read them by using Net::getParam() . 更多...
 
字符串   name
  Name of the layer instance, can be used for logging or other internal purposes. 更多...
 
int  preferableTarget
  prefer target for layer forwarding 更多...
 
字符串   type
  Type name which was used for creating layer by layer factory. 更多...
 
-  Protected Member Functions inherited from 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: should contain packed input \(x_t\).
  • output: should contain output \(o_t\) (and \(h_t\) if setProduceHiddenOutput() is set to true).

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.

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*}

参数
Wxh is \( W_{xh} \) matrix
bh is \( b_{h} \) vector
Whh is \( W_{hh} \) matrix
Who is \( W_{xo} \) matrix
bo is \( b_{o} \) vector

The documentation for this class was generated from the following file: