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

此函数根据爱因斯坦求和约定执行数组求和。函数允许使用下标简洁地表达各种数学运算。更多信息...

#include <opencv2/dnn/all_layers.hpp>

cv::dnn::EinsumLayer 算法协作图

静态公共成员函数

template<typename _Tp>static Ptr<_Tp
 
create (const LayerParams &params)
- 从 cv::Algorithm 继承的静态公共成员函数
template<typename _Tp>static Ptr<_Tp
 load (const String &filename, const String &objname=String())
 
- 从 cv::Algorithm 继承的静态公共成员函数
template<typename _Tp>从文件加载算法。
 loadFromString (const String &strModel, const String &objname=String())
 
- 从 cv::Algorithm 继承的静态公共成员函数
template<typename _Tp>从字符串加载算法。
 read (const FileNode &fn)
 

从文件节点中读取算法。

其他继承成员
 - 从 cv::dnn::Layer 继承的公共成员函数 ()
 
 Layer
 Layer (const LayerParams &params)
 
仅初始化 nametypeblobs 字段。virtual  ()
 
~Layervirtual void 
 applyHalideScheduler (Ptr<BackendNode> &node, const std::vector<Mat * > &inputs, const std::vector<Mat > &outputs, int targetId) const
 
~Layer根据层的超参数自动进行 Halide 调度。
 finalize (const std::vector< Mat * > &input, std::vector< Mat > &output)
 
根据输入、输出和 blob 计算并设置内部参数。finalize (const std::vector< Mat > &inputs)
 这是一个为方便而提供的重载成员函数,它与上述函数的区别仅在于它接受的参数。
 
void finalize (const std::vector< Mat > &inputs, std::vector< Mat > &outputs)
 这是一个为方便而提供的重载成员函数,它与上述函数的区别仅在于它接受的参数。
 
~Layerfinalize (InputArrayOfArrays inputs, OutputArrayOfArrays outputs)
 finalize (const std::vector< Mat * > &input, std::vector< Mat > &output)
 
~Layerforward (InputArrayOfArrays inputs, OutputArrayOfArrays outputs, OutputArrayOfArrays internals)
 给定输入的 blob,计算输出的 blob
 
~Layerforward (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
 
~LayergetScaleShift (Mat &scale, Mat &shift) const
 返回具有通道乘法和加法的层的参数。
 
~LayergetScaleZeropoint (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)
 
virtual int inputNameToIndex (String inputName)
 返回输入blob在输入数组中的索引。
 
virtual 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)
 Layer (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)
 尝试量化指定的层并计算对于定点实现所需的量化参数。
 
~LayerunsetAttached ()
 "Detaches"所有附加到特定层的层。
 
virtual bool 更新内存形状:updateMemoryShapes (const std::vector< MatShape > &inputs)
 
- 从cv::Algorithm继承的公共成员函数
 算法 ()
 
仅初始化 nametypeblobs 字段。~算法 ()
 
~Layer清除 ()
 清除算法状态。
 
virtual bool 布尔值 empty () const
 如果Algorithm为空(例如在开始或读取失败后返回true。
 
字符串getDefaultName () const
 
~Layer从文件存储中读取算法参数:read (const FileNode &fn)
 从文件存储中读取算法参数。
 
~Layer将算法参数保存到文件存储中:save (const String &filename) const
 
void 将算法参数保存到文件存储中:write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
~Layer将算法参数保存到文件存储中:write (FileStorage &fs) const
 将算法参数保存到文件存储中。
 
void 将算法参数保存到文件存储中:write (FileStorage &fs, const String &name) const
 
- 从cv::dnn::Layer继承的公共属性
根据输入、输出和 blob 计算并设置内部参数。blobs
 必须在此处存储学习参数列表,以便可以通过Net::getParam()读取它们。
 
字符串name
 层的实例名称,可用于日志记录或其他内部用途。
 
整型preferableTarget
 首选层前向传播的目标
 
字符串type
 创建层时所使用的类型名称,通过层工厂创建层。
 
- 从cv::Algorithm继承的受保护成员函数
void writeFormat (FileStorage &fs) const
 

详细描述

此函数根据Einstein求和约定执行数组求和。该函数允许使用下标简洁地表达各种数学运算。

默认情况下,标签将按字母顺序放置在输出末尾。例如:如果 c = einsum("i,j", a, b),则 c[i,j] == a[i]*b[j]。然而,如果 c = einsum("j,i", a, b),则 c[i,j] = a[j]*b[i]。或者,您可以通过提供输出索引来控制输出顺序或防止轴求和/强制求和轴。例如:diag(a) ——> einsum("ii->i", a) sum(a, axis=0) ——> einsum("i...->", a) 在首尾指定的下标可以用中间的省略号 "..." 表示。例如,该函数 einsum("i...i", a) 获取操作数的第一和最后一维度的对角线,而 einsum("ij...,jk...->ik...") 使用每个操作数的前两个索引而不是最后两个索引进行矩阵乘法。当只有一个操作数,没有求和轴,并且没有输出参数时,此函数返回操作数的视图而不是创建一个副本。

成员函数文档

◆ create()

静态 Ptr< EinsumLayer > cv::dnn::EinsumLayer::create ( const LayerParams params)
静态

此类文档是由以下文件生成的