OpenCV
4.10.0
Open Source Computer Vision
|
This function performs array summation based on the Einstein summation convention. The function allows for concise expressions of various mathematical operations using subscripts. More...
#include <opencv2/dnn/all_layers.hpp>
Static Public Member Functions | |
static Ptr< EinsumLayer > | create (const LayerParams ¶ms) |
Static Public Member Functions inherited from cv::Algorithm | |
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. | |
template<typename _Tp > | |
static Ptr< _Tp > | read (const FileNode &fn) |
Reads algorithm from the file node. | |
Additional Inherited Members | |
Public Member Functions inherited from cv::dnn::Layer | |
Layer () | |
Layer (const LayerParams ¶ms) | |
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. | |
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. | |
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. | |
virtual void | finalize (InputArrayOfArrays inputs, OutputArrayOfArrays outputs) |
Computes and sets internal parameters according to inputs, outputs and blobs. | |
virtual void | forward (InputArrayOfArrays inputs, OutputArrayOfArrays outputs, OutputArrayOfArrays internals) |
Given the input blobs, computes the output blobs . | |
virtual void | forward (std::vector< Mat * > &input, std::vector< Mat > &output, std::vector< Mat > &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 void | getScaleZeropoint (float &scale, int &zeropoint) const |
Returns scale and zeropoint of layers. | |
virtual Ptr< BackendNode > | initCann (const std::vector< Ptr< BackendWrapper > > &inputs, const std::vector< Ptr< BackendWrapper > > &outputs, const std::vector< Ptr< BackendNode > > &nodes) |
Returns a CANN backend node. | |
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 > | 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) |
Returns a TimVX backend node. | |
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) |
Returns index of input blob into the input array. | |
virtual int | outputNameToIndex (const String &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 ¶ms) |
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< Layer > &top) |
Try to fuse current layer with a next one. | |
virtual bool | tryQuantize (const std::vector< std::vector< float > > &scales, const std::vector< std::vector< int > > &zeropoints, LayerParams ¶ms) |
Tries to quantize the given layer and compute the quantization parameters required for fixed point implementation. | |
virtual void | unsetAttached () |
"Detaches" all the layers, attached to particular layer. | |
virtual bool | updateMemoryShapes (const std::vector< MatShape > &inputs) |
Public Member Functions inherited from cv::Algorithm | |
Algorithm () | |
virtual | ~Algorithm () |
virtual void | clear () |
Clears the algorithm state. | |
virtual bool | empty () const |
Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. | |
virtual String | getDefaultName () const |
virtual void | read (const FileNode &fn) |
Reads algorithm parameters from a file storage. | |
virtual void | save (const String &filename) const |
void | write (const Ptr< FileStorage > &fs, const String &name=String()) const |
virtual void | write (FileStorage &fs) const |
Stores algorithm parameters in a file storage. | |
void | write (FileStorage &fs, const String &name) const |
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(). | |
String | name |
Name of the layer instance, can be used for logging or other internal purposes. | |
int | preferableTarget |
prefer target for layer forwarding | |
String | type |
Type name which was used for creating layer by layer factory. | |
Protected Member Functions inherited from cv::Algorithm | |
void | writeFormat (FileStorage &fs) const |
This function performs array summation based on the Einstein summation convention. The function allows for concise expressions of various mathematical operations using subscripts.
By default, the labels are placed in alphabetical order at the end of the output. For example: if c = einsum("i,j", a, b)
, then c[i,j] == a[i]*b[j]
. However, if c = einsum("j,i", a, b)
, then c[i,j] = a[j]*b[i]
. Alternatively, you can control the output order or prevent an axis from being summed/force an axis to be summed by providing indices for the output. For example: diag(a)
-> einsum("ii->i", a)
sum(a, axis=0)
-> einsum("i...->", a)
Subscripts at the beginning and end may be specified by putting an ellipsis "..." in the middle. For instance, the function einsum("i...i", a)
takes the diagonal of the first and last dimensions of the operand, and einsum("ij...,jk...->ik...")
performs the matrix product using the first two indices of each operand instead of the last two. When there is only one operand, no axes being summed, and no output parameter, this function returns a view into the operand instead of creating a copy.
|
static |