![]() |
OpenCV 4.12.0
开源计算机视觉
|
此函数根据爱因斯坦求和约定执行数组求和。该函数允许使用下标简洁地表达各种数学运算。 更多...
#include <opencv2/dnn/all_layers.hpp>
静态公共成员函数 | |
| static Ptr< EinsumLayer > | create (const LayerParams ¶ms) |
继承自 cv::Algorithm 的静态公共成员函数 | |
| 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()) |
| 从字符串加载算法。 | |
| template<typename _Tp > | |
| static Ptr< _Tp > | read (const FileNode &fn) |
| 从文件节点读取算法。 | |
附加继承成员 | |
继承自 cv::dnn::Layer 的公共成员函数 | |
| Layer () | |
| Layer (const LayerParams ¶ms) | |
| 仅初始化 name, type 和 blobs 字段。 | |
| 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) |
| 根据输入、输出和块计算并设置内部参数。 | |
| 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) |
| 根据输入、输出和块计算并设置内部参数。 | |
| virtual void | forward (InputArrayOfArrays inputs, OutputArrayOfArrays outputs, OutputArrayOfArrays internals) |
给定 input 块,计算输出 blobs。 | |
| virtual void | forward (std::vector< Mat * > &input, std::vector< Mat > &output, std::vector< Mat > &internals) |
给定 input 块,计算输出 blobs。 | |
| void | forward_fallback (InputArrayOfArrays inputs, OutputArrayOfArrays outputs, OutputArrayOfArrays internals) |
给定 input 块,计算输出 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 |
| 返回带有通道乘法和加法层的参数。 | |
| virtual void | getScaleZeropoint (float &scale, int &zeropoint) const |
| 返回层的缩放和零点。 | |
| virtual Ptr< BackendNode > | initCann (const std::vector< Ptr< BackendWrapper > > &inputs, const std::vector< Ptr< BackendWrapper > > &outputs, const std::vector< Ptr< BackendNode > > &nodes) |
| 返回一个 CANN 后端节点。 | |
| virtual Ptr< BackendNode > | initCUDA (void *context, const std::vector< Ptr< BackendWrapper > > &inputs, const std::vector< Ptr< BackendWrapper > > &outputs) |
| 返回一个 CUDA 后端节点。 | |
| virtual Ptr< BackendNode > | initHalide (const std::vector< Ptr< BackendWrapper > > &inputs) |
| 返回 Halide 后端节点。 | |
| virtual Ptr< BackendNode > | initNgraph (const std::vector< Ptr< BackendWrapper > > &inputs, const std::vector< Ptr< BackendNode > > &nodes) |
| virtual Ptr< BackendNode > | initTimVX (void *timVxInfo, const std::vector< Ptr< BackendWrapper > > &inputsWrapper, const std::vector< Ptr< BackendWrapper > > &outputsWrapper, bool isLast) |
| 返回一个 TimVX 后端节点。 | |
| virtual Ptr< BackendNode > | initVkCom (const std::vector< Ptr< BackendWrapper > > &inputs, std::vector< Ptr< BackendWrapper > > &outputs) |
| virtual Ptr< BackendNode > | initWebnn (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 ¶ms) |
| 仅初始化 name, type 和 blobs 字段。 | |
| virtual bool | supportBackend (int backendId) |
| 询问层是否支持特定的后端进行计算。 | |
| virtual Ptr< BackendNode > | tryAttach (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 ¶ms) |
| 尝试量化给定层并计算定点实现所需的量化参数。 | |
| virtual void | unsetAttached () |
| “分离”所有附加到特定层的层。 | |
| virtual bool | updateMemoryShapes (const std::vector< MatShape > &inputs) |
继承自 cv::Algorithm 的公共成员函数 | |
| Algorithm () | |
| virtual | ~Algorithm () |
| virtual void | clear () |
| 清除算法状态。 | |
| virtual bool | empty () const |
| 如果 Algorithm 为空(例如,在最开始或读取不成功后),则返回 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 |
此函数根据爱因斯坦求和约定执行数组求和。该函数允许使用下标简洁地表达各种数学运算。
默认情况下,标签按字母顺序放置在输出的末尾。例如:如果 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...") 使用每个操作数的前两个索引而不是后两个执行矩阵乘法。当只有一个操作数、没有轴被求和且没有输出参数时,此函数返回操作数的视图而不是创建副本。
|
static |