OpenCV  4.10.0
开源计算机视觉
加载中...
搜索中...
无匹配
静态公共成员函数 | 所有成员列表
cv::dnn::GatherElementsLayer 类参考

GatherElements 层 GatherElements 接收两个相同秩 r >= 1 的输入数据(data)和索引(indices),以及可选的属性 axis 和工作方式如下:当 axis = 0 且 r = 3 时,output[i][j][k] = data[index[i][j][k]][j][k];当 axis = 1 且 r = 3 时,output[i][j][k] = data[i][index[i][j][k]][k];当 axis = 2 且 r = 3 时,output[i][j][k] = data[i][j][index[i][j][k]]。更多详情请见 [详情]。

#include <opencv2/dnn/all_layers.hpp>

cv::dnn::GatherElementsLayer 的协作图

静态公共成员函数

static Ptr< GatherElementsLayercreate (const LayerParams &params)
 
- 从 cv::Algorithm 继承的静态公共成员函数
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 从文件中加载算法。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 从字符串中加载算法。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 从文件节点中读取算法。
 

继承的额外成员

- 从 cv::dnn::Layer 继承的公共成员函数
 Layer ()
 
 Layer (const LayerParams &params)
 仅初始化 名称类型学习到的参数列表 字段。
 
virtual ~Layer ()
 
virtual void applyHalideScheduler (Ptr< BackendNode > &node, const std::vector< Mat * > &inputs, const std::vector< Mat > &outputs, int targetId) const
 根据层超参数进行自动 Halide 调度。
 
virtual void finalize (const std::vector< Mat * > &input, std::vector< Mat > &output)
 根据输入、输出和blob,计算并设置内部参数。
 
std::vector< Mat >finalize (const std::vector< Mat > &inputs)
 这是重载成员函数,出于方便提供。它与上面的函数仅在接受的参数上有所不同。
 
void finalize (const std::vector< Mat > &inputs, std::vector< Mat > &outputs)
 这是重载成员函数,出于方便提供。它与上面的函数仅在接受的参数上有所不同。
 
virtual void finalize (InputArrayOfArrays inputs, OutputArrayOfArrays outputs)
 根据输入、输出和blob,计算并设置内部参数。
 
virtual void forward (InputArrayOfArrays inputs, OutputArrayOfArrays outputs, OutputArrayOfArrays internals)
 给定输入的blob,计算输出blob。
 
virtual void forward (std::vector< Mat * > &input, std::vector< Mat > &output, std::vector< Mat > &internals)
 给定输入的blob,计算输出blob。
 
void forward_fallback (InputArrayOfArrays inputs, OutputArrayOfArrays outputs, OutputArrayOfArrays internals)
 给定输入的blob,计算输出blob。
 
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
 返回具有通道乘法和加法的层的参数。
 
virtual void getScaleZeropoint (float &scale, int &zeropoint) const
 返回层的缩放和零点。
 
virtual Ptr< BackendNodeinitCann (const std::vector< Ptr< BackendWrapper > > &inputs, const std::vector< Ptr< BackendWrapper > > &outputs, const std::vector< Ptr< BackendNode > > &nodes)
 返回一个CANN后端节点。
 
virtual Ptr< BackendNodeinitCUDA (void *context, const std::vector< Ptr< BackendWrapper > > &inputs, const std::vector< Ptr< BackendWrapper > > &outputs)
 返回一个CUDA后端节点。
 
virtual Ptr< BackendNodeinitHalide (const std::vector< Ptr< BackendWrapper > > &inputs)
 返回Halide后端节点。
 
virtual Ptr< BackendNodeinitNgraph (const std::vector< Ptr< BackendWrapper > > &inputs, const std::vector< Ptr< BackendNode > > &nodes)
 
virtual Ptr< BackendNodeinitTimVX (void *timVxInfo, const std::vector< Ptr< BackendWrapper > > &inputsWrapper, const std::vector< Ptr< BackendWrapper > > &outputsWrapper, bool isLast)
 返回一个TimVX后端节点。
 
virtual Ptr< BackendNodeinitVkCom (const std::vector< Ptr< BackendWrapper > > &inputs, std::vector< Ptr< BackendWrapper > > &outputs)
 
virtual Ptr< BackendNodeinitWebnn (const std::vector< Ptr< BackendWrapper > > &inputs, const std::vector< Ptr< BackendNode > > &nodes)
 
虚函数 int inputNameToIndex (String inputName)
 返回输入blob在输入数组中的索引。
 
虚函数 int outputNameToIndex (const String &outputName)
 返回输出blob在输出数组中的索引。
 
void run (const std::vector< Mat > &inputs, std::vector< Mat > &outputs, std::vector< Mat > &internals)
 分配层并计算输出。
 
virtual bool setActivation (const Ptr< ActivationLayer > &layer)
 尝试将后续激活层附加到层中,即在部分情况下执行层融合。
 
void setParamsFrom (const LayerParams &params)
 仅初始化 名称类型学习到的参数列表 字段。
 
virtual bool supportBackend (int backendId)
 询问层是否支持特定后端进行计算。
 
virtual Ptr< BackendNodetryAttach (const Ptr< BackendNode > &node)
 实现层融合。
 
virtual bool tryFuse (Ptr< Layer > &top)
 尝试将当前层与下一层融合。
 
virtual bool tryQuantize (const std::vector< std::vector< float > > &scales, const std::vector< std::vector< int > > &zeropoints, LayerParams &params)
 尝试量化给定的层并计算固定点实现所需的量化参数。
 
virtual void unsetAttached ()
 "断开"与特定层连接的所有层。
 
virtual bool updateMemoryShapes (const std::vector< MatShape > &inputs)
 
- 从 cv::Algorithm 继承的公共成员函数
 算法 ()
 
virtual ~算法 ()
 
virtual void clear ()
 清除算法状态。
 
virtual bool empty () const
 如果算法为空(例如在最开始或读取失败后),返回 true。
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 从文件存储中读取算法参数。
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
virtual void write (FileStorage &fs) const
 将算法参数存储在文件存储中。
 
void write (FileStorage &fs, const String &name) const
 
- 从 cv::dnn::Layer 继承的公共属性
std::vector< Mat >blobs
 必须在这里存储学习参数列表,以便使用 Net::getParam() 读取。
 
String name
 层实例的名称,可用于日志或其他内部目的。
 
int preferableTarget
 偏好层前向传递的目标
 
String type
 创建层时使用的类型名称,由层工厂创建。
 
- 从 cv::Algorithm 继承的保护成员函数
void writeFormat (FileStorage &fs) const
 

详细描述

元素收集层“GatherElements”接受两个相同秩的输入数据“data”和“indices”(r >= 1),以及一个可选的“axis”属性。其工作原理如下:当axis = 0且r = 3时,output[i][j][k] = data[index[i][j][k]][j][k];当axis = 1且r = 3时,output[i][j][k] = data[i][index[i][j][k]][k];当axis = 2且r = 3时,output[i][j][k] = data[i][j][index[i][j][k]]。

另一方面,“Gather”接受一个秩为r >= 1的数据张量和一个秩为q的索引张量,它的工作原理是:它将与索引一起沿输入数据的axis维度收集元素,并将它们在秩为q + (r - 1)的输出张量中进行连接。例如,如果axis = 0,令k = indices[i_{0}, ..., i_{q-1}],则output[i_{0}, ..., i_{q-1}, j_{0}, ..., j_{r-2}] = input[k , j_{0}, ..., j_{r-2}]。

成员函数文档

◆ create()

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

本类的文档是从以下文件生成的