![]() |
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 |