OpenCV  4.10.0
开源计算机视觉库
正在加载...
正在搜索...
没有匹配项
静态公共成员函数 | 公共属性 | 所有成员列表

#include <opencv2/dnn/all_layers.hpp>

cv::dnn::SliceLayer 的协作图

静态公共成员函数

static Ptr< SliceLayercreate (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)
 从文件节点读取算法。
 

公共属性

int axis
 
int num_split
 
std::vector< std::vector< Range > > sliceRanges
 切片范围向量。
 
std::vector< std::vector< int > > sliceSteps
 
- 从 cv::dnn::Layer 继承的公共属性
std::vector< Matblobs
 学习的参数列表必须存储在这里,以便使用 Net::getParam() 读取它们。
 
String name
 层实例的名称,可用于日志记录或其他内部目的。
 
int preferableTarget
 层前向传播的首选目标
 
String type
 层工厂用于创建层的类型名称。
 

其他继承的成员

- 从 cv::dnn::Layer 继承的公共成员函数
 Layer ()
 
 Layer (const LayerParams &params)
 仅初始化 nametypeblobs 字段。
 
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< Matfinalize (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)
 给定 input blob,计算输出 blobs
 
virtual void forward (std::vector< Mat * > &input, std::vector< Mat > &output, std::vector< Mat > &internals)
 给定 input blob,计算输出 blobs
 
void forward_fallback (InputArrayOfArrays inputs, OutputArrayOfArrays outputs, OutputArrayOfArrays internals)
 给定 input blob,计算输出 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< 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 >
 尝试将后续的激活层附加到该层,即在部分情况下进行层融合。
 
void setParamsFrom (const LayerParams &params)
 仅初始化 nametypeblobs 字段。
 
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 继承的公共成员函数
 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::Algorithm 继承的受保护成员函数
void writeFormat (FileStorage &fs) const
 

详细描述

切片层有几种模式

  1. Caffe 模式
    参数
    [输入]axis分割操作的轴
    [输入]slice_point分割点的数组
    输出 blob 的数量等于分割点的数量加一。第一个 blob 是从 0 到 slice_point[0] - 1 通过 axis 对输入的切片,第二个输出 blob 是从 slice_point[0] 到 slice_point[1] - 1 通过 axis 对输入的切片,最后一个输出 blob 是从 slice_point[-1] 到 axis 大小末端的输入切片。
  2. TensorFlow 模式
    参数
    begin开始索引的向量
    size大小的向量
    更方便的类似 numpy 的切片。唯一一个输出 blob 是切片 input[begin[0]:begin[0]+size[0], begin[1]:begin[1]+size[1], ...]
  3. Torch 模式
    参数
    axis分割操作的轴
    通过 axis 将输入 blob 分割成相等的部分。

成员函数文档

◆ create()

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

成员数据文档

◆ axis

int cv::dnn::SliceLayer::axis

◆ num_split

int cv::dnn::SliceLayer::num_split

◆ sliceRanges

std::vector<std::vector<Range> > cv::dnn::SliceLayer::sliceRanges

切片范围向量。

第一维等于输出 blob 的数量。内部向量对前几个输入维数具有切片范围。

◆ sliceSteps

std::vector<std::vector<int> > cv::dnn::SliceLayer::sliceSteps

该类的文档从以下文件生成