OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
无匹配项
cv::ml::ANN_MLP 类参考抽象类

人工神经网络 - 多层感知器。更多…

#include <opencv2/ml.hpp>

cv::ml::ANN_MLP 协作图

公共类型

枚举  ActivationFunctions(激活函数) {
  IDENTITY(恒等函数) = 0 ,
  SIGMOID_SYM(对称S型函数) = 1 ,
  GAUSSIAN(高斯函数) = 2 ,
  RELU(线性整流函数) = 3 ,
  LEAKYRELU(带泄漏的线性整流函数) = 4
}
 
枚举  TrainFlags(训练标志) {
  UPDATE_WEIGHTS(更新权重) = 1 ,
  NO_INPUT_SCALE(无输入缩放) = 2 ,
  NO_OUTPUT_SCALE(无输出缩放) = 4
}
 
枚举  TrainingMethods(训练方法) {
  BACKPROP(反向传播) =0 ,
  RPROP(弹性反向传播) = 1 ,
  ANNEAL(模拟退火) = 2
}
 
- 继承自 cv::ml::StatModel 的公共类型
枚举  Flags(标志) {
  UPDATE_MODEL(更新模型) = 1 ,
  RAW_OUTPUT(原始输出) =1 ,
  COMPRESSED_INPUT(压缩输入) =2 ,
  PREPROCESSED_INPUT(预处理输入) =4
}
 

公共成员函数

virtual double getAnnealCoolingRatio () const =0
 
virtual double getAnnealFinalT () const =0
 
virtual double getAnnealInitialT () const =0
 
virtual int getAnnealItePerStep () const =0
 
virtual double getBackpropMomentumScale () const =0
 
virtual double getBackpropWeightScale () const =0
 
virtual cv::Mat getLayerSizes () const =0
 
virtual double getRpropDW0 () const =0
 
virtual double getRpropDWMax () const =0
 
virtual double getRpropDWMin () const =0
 
virtual double getRpropDWMinus () const =0
 
virtual double getRpropDWPlus () const =0
 
virtual TermCriteria getTermCriteria () const =0
 
virtual int getTrainMethod () const =0
 
virtual Mat getWeights (int layerIdx) const =0
 
virtual void setActivationFunction (int type, double param1=0, double param2=0)=0
 
virtual void setAnnealCoolingRatio (double val)=0
 
virtual void setAnnealEnergyRNG (const RNG &rng)=0
 设置/初始化模拟退火RNG
 
virtual void setAnnealFinalT (double val)=0
 
virtual void setAnnealInitialT (double val)=0
 
virtual void setAnnealItePerStep (int val)=0
 
virtual void setBackpropMomentumScale (double val)=0
 
virtual void setBackpropWeightScale (double val)=0
 
virtual void setLayerSizes (InputArray _layer_sizes)=0
 
virtual void setRpropDW0 (double val)=0
 
virtual void setRpropDWMax (double val)=0
 
virtual void setRpropDWMin (double val)=0
 
virtual void setRpropDWMinus (double val)=0
 
virtual void setRpropDWPlus (double val)=0
 
virtual void setTermCriteria (TermCriteria val)=0
 
virtual void setTrainMethod (int method, double param1=0, double param2=0)=0
 
- 继承自 cv::ml::StatModel 的公共成员函数
virtual float calcError (const Ptr< TrainData > &data, bool test, OutputArray resp) const
 计算训练或测试数据集上的误差。
 
virtual bool empty () const CV_OVERRIDE
 如果Algorithm为空(例如,在开始时或读取不成功后),则返回true。
 
virtual int getVarCount () const =0
 返回训练样本中变量的数量。
 
virtual bool isClassifier () const =0
 如果模型是分类器,则返回true。
 
virtual bool isTrained () const =0
 如果模型已训练,则返回true。
 
virtual float predict (InputArray samples, OutputArray results=noArray(), int flags=0) const =0
 预测提供的样本的响应。
 
virtual bool train (const Ptr< TrainData > &trainData, int flags=0)
 训练统计模型。
 
virtual bool train (InputArray samples, int layout, InputArray responses)
 训练统计模型。
 
- 继承自 cv::Algorithm 的公共成员函数
 Algorithm(算法) ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 清除算法状态。
 
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
 

静态公共成员函数

static Ptr< ANN_MLPcreate ()
 创建空模型。
 
static Ptr< ANN_MLPload (const String &filepath)
 从文件中加载并创建一个序列化的ANN。
 
- 继承自 cv::ml::StatModel 的静态公共成员函数
template<typename _Tp >
static Ptr< _Tptrain (const Ptr< TrainData > &data, int flags=0)
 使用默认参数创建并训练模型。
 
- 继承自 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)
 从文件节点读取算法。
 

其他继承成员

- 继承自 cv::Algorithm 的保护成员函数
void writeFormat (FileStorage &fs) const
 

详细描述

人工神经网络 - 多层感知器。

与ML中许多其他一次构建和训练的模型不同,在MLP模型中,这些步骤是分开的。首先,使用非默认构造函数或方法ANN_MLP::create创建一个具有指定拓扑结构的网络。所有权重都设置为零。然后,使用一组输入和输出向量训练网络。训练过程可以重复多次,也就是说,可以根据新的训练数据调整权重。

提供了StatModel::train的其他标志:ANN_MLP::TrainFlags

另请参阅
神经网络

成员枚举文档

◆ ActivationFunctions

可能的激活函数

枚举器
IDENTITY 

恒等函数:\(f(x)=x\)

SIGMOID_SYM 

对称 sigmoid:\(f(x)=\beta*(1-e^{-\alpha x})/(1+e^{-\alpha x})\)

注意
如果您使用的是具有默认参数值 fparam1=0 和 fparam2=0 的默认 sigmoid 激活函数,则使用的函数为 y = 1.7159*tanh(2/3 * x),因此输出范围为 [-1.7159, 1.7159],而不是 [0,1]。
GAUSSIAN 

高斯函数:\(f(x)=\beta e^{-\alpha x*x}\)

RELU 

ReLU 函数:\(f(x)=max(0,x)\)

LEAKYRELU 

Leaky ReLU 函数:对于 x>0 \(f(x)=x \) 以及 x<=0 \(f(x)=\alpha x \)

◆ TrainFlags

训练选项

枚举器
UPDATE_WEIGHTS 

更新网络权重,而不是从头开始计算它们。在后一种情况下,权重使用 Nguyen-Widrow 算法初始化。

NO_INPUT_SCALE 

不规范化输入向量。如果未设置此标志,则训练算法会独立地规范化每个输入特征,将其平均值移至 0,并将标准偏差设为 1。如果假设网络经常更新,则新的训练数据可能与原始数据大相径庭。在这种情况下,您应该注意正确的规范化。

NO_OUTPUT_SCALE 

不规范化输出向量。如果未设置此标志,则训练算法会独立地规范化每个输出特征,将其转换为取决于所用激活函数的特定范围。

◆ TrainingMethods

可用的训练方法

枚举器
BACKPROP 

反向传播算法。

RPROP 

RPROP 算法。有关详细信息,请参阅 [226]

ANNEAL 

模拟退火算法。有关详细信息,请参阅 [146]

成员函数文档

◆ create()

static Ptr< ANN_MLP > cv::ml::ANN_MLP::create ( )
static
Python
cv.ml.ANN_MLP.create() -> 返回值
cv.ml.ANN_MLP_create() -> 返回值

创建空模型。

使用 StatModel::train 训练模型,Algorithm::load<ANN_MLP>(filename) 加载预训练模型。注意,train 方法有可选标志:ANN_MLP::TrainFlags

◆ getAnnealCoolingRatio()

virtual double cv::ml::ANN_MLP::getAnnealCoolingRatio ( ) const
纯虚函数
Python
cv.ml.ANN_MLP.getAnnealCoolingRatio() -> 返回值

模拟退火:更新冷却比率。必须大于 0 且小于 1。默认值为 0.95。

另请参阅
setAnnealCoolingRatio

◆ getAnnealFinalT()

virtual double cv::ml::ANN_MLP::getAnnealFinalT ( ) const
纯虚函数
Python
cv.ml.ANN_MLP.getAnnealFinalT() -> 返回值

模拟退火:更新最终温度。必须 >=0 且小于 initialT。默认值为 0.1。

另请参阅
setAnnealFinalT

◆ getAnnealInitialT()

virtual double cv::ml::ANN_MLP::getAnnealInitialT ( ) const
纯虚函数
Python
cv.ml.ANN_MLP.getAnnealInitialT() -> 返回值

模拟退火:更新初始温度。必须 >=0。默认值为 10。

另请参阅
setAnnealInitialT

◆ getAnnealItePerStep()

virtual int cv::ml::ANN_MLP::getAnnealItePerStep ( ) const
纯虚函数
Python
cv.ml.ANN_MLP.getAnnealItePerStep() -> 返回值

模拟退火:更新每步迭代次数。必须 >0。默认值为 10。

另请参阅
setAnnealItePerStep

◆ getBackpropMomentumScale()

virtual double cv::ml::ANN_MLP::getBackpropMomentumScale ( ) const
纯虚函数
Python
cv.ml.ANN_MLP.getBackpropMomentumScale() -> 返回值

反向传播:动量项的强度(两次迭代之间权重的差异)。此参数提供一定的惯性来平滑权重的随机波动。它可以从 0(禁用此功能)变化到 1 及以上。0.1 左右的值就足够好了。默认值为 0.1。

另请参阅
setBackpropMomentumScale

◆ getBackpropWeightScale()

virtual double cv::ml::ANN_MLP::getBackpropWeightScale ( ) const
纯虚函数
Python
cv.ml.ANN_MLP.getBackpropWeightScale() -> 返回值

反向传播:权重梯度项的强度。推荐值为约 0.1。默认值为 0.1。

另请参阅
setBackpropWeightScale

◆ getLayerSizes()

virtual cv::Mat cv::ml::ANN_MLP::getLayerSizes ( ) const
纯虚函数
Python
cv.ml.ANN_MLP.getLayerSizes() -> 返回值

指定每一层神经元数量的整数向量,包括输入层和输出层。第一个元素指定输入层中的元素数量。最后一个元素 - 输出层中的元素数量。

另请参阅
setLayerSizes

◆ getRpropDW0()

virtual double cv::ml::ANN_MLP::getRpropDW0 ( ) const
纯虚函数
Python
cv.ml.ANN_MLP.getRpropDW0() -> 返回值

RPROP:更新值 \(\Delta_0\) 的初始值 \(\Delta_{ij}\)。默认值为 0.1。

另请参阅
setRpropDW0

◆ getRpropDWMax()

virtual double cv::ml::ANN_MLP::getRpropDWMax ( ) const
纯虚函数
Python
cv.ml.ANN_MLP.getRpropDWMax() -> 返回值

RPROP:更新值上限 \(\Delta_{max}\)。必须 >1。默认值为 50。

另请参阅
setRpropDWMax

◆ getRpropDWMin()

virtual double cv::ml::ANN_MLP::getRpropDWMin ( ) const
纯虚函数
Python
cv.ml.ANN_MLP.getRpropDWMin() -> 返回值

RPROP:更新值下限 \(\Delta_{min}\)。必须为正数。默认值为 FLT_EPSILON。

另请参阅
setRpropDWMin

◆ getRpropDWMinus()

virtual double cv::ml::ANN_MLP::getRpropDWMinus ( ) const
纯虚函数
Python
cv.ml.ANN_MLP.getRpropDWMinus() -> 返回值

RPROP:减少因子 \(\eta^-\)。必须 <1。默认值为 0.5。

另请参阅
setRpropDWMinus

◆ getRpropDWPlus()

virtual double cv::ml::ANN_MLP::getRpropDWPlus ( ) const
纯虚函数
Python
cv.ml.ANN_MLP.getRpropDWPlus() -> 返回值

RPROP:增加因子 \(\eta^+\)。必须 >1。默认值为 1.2。

另请参阅
setRpropDWPlus

◆ getTermCriteria()

virtual TermCriteria cv::ml::ANN_MLP::getTermCriteria ( ) const
纯虚函数
Python
cv.ml.ANN_MLP.getTermCriteria() -> 返回值

训练算法的终止条件。您可以指定最大迭代次数 (maxCount) 和/或迭代之间误差变化量(epsilon)来使算法继续。默认值为 TermCriteria(TermCriteria::MAX_ITER + TermCriteria::EPS, 1000, 0.01)。

另请参阅
setTermCriteria

◆ getTrainMethod()

virtual int cv::ml::ANN_MLP::getTrainMethod ( ) const
纯虚函数
Python
cv.ml.ANN_MLP.getTrainMethod() -> 返回值

返回当前训练方法

◆ getWeights()

virtual Mat cv::ml::ANN_MLP::getWeights ( int layerIdx) const
纯虚函数
Python
cv.ml.ANN_MLP.getWeights(layerIdx) -> 返回值

◆ load()

static Ptr< ANN_MLP > cv::ml::ANN_MLP::load ( const String & filepath)
static
Python
cv.ml.ANN_MLP.load(filepath) -> 返回值
cv.ml.ANN_MLP_load(filepath) -> 返回值

从文件中加载并创建一个序列化的ANN。

使用 ANN::save 将 ANN 序列化并存储到磁盘。通过使用文件的路径调用此函数,再次从该文件加载 ANN。

参数
filepath序列化 ANN 的路径

◆ setActivationFunction()

virtual void cv::ml::ANN_MLP::setActivationFunction ( int 类型,
double param1 = 0,
double param2 = 0 )
纯虚函数
Python
cv.ml.ANN_MLP.setActivationFunction(type[, param1[, param2]]) ->

为每个神经元初始化激活函数。目前,默认的也是唯一完全支持的激活函数是 ANN_MLP::SIGMOID_SYM

参数
类型激活函数的类型。参见 ANN_MLP::ActivationFunctions
param1激活函数的第一个参数,\(\alpha\)。默认值为 0。
param2激活函数的第二个参数,\(\beta\)。默认值为 0。

◆ setAnnealCoolingRatio()

virtual void cv::ml::ANN_MLP::setAnnealCoolingRatio ( double val)
纯虚函数
Python
cv.ml.ANN_MLP.setAnnealCoolingRatio(val) ->

另请参阅
getAnnealCoolingRatio

◆ setAnnealEnergyRNG()

virtual void cv::ml::ANN_MLP::setAnnealEnergyRNG ( const RNG & rng)
纯虚函数

设置/初始化模拟退火RNG

◆ setAnnealFinalT()

virtual void cv::ml::ANN_MLP::setAnnealFinalT ( double val)
纯虚函数
Python
cv.ml.ANN_MLP.setAnnealFinalT(val) ->

另请参阅
getAnnealFinalT

◆ setAnnealInitialT()

virtual void cv::ml::ANN_MLP::setAnnealInitialT ( double val)
纯虚函数
Python
cv.ml.ANN_MLP.setAnnealInitialT(val) ->

另请参阅
getAnnealInitialT

◆ setAnnealItePerStep()

virtual void cv::ml::ANN_MLP::setAnnealItePerStep ( int val)
纯虚函数
Python
cv.ml.ANN_MLP.setAnnealItePerStep(val) ->

另请参阅
getAnnealItePerStep

◆ setBackpropMomentumScale()

virtual void cv::ml::ANN_MLP::setBackpropMomentumScale ( double val)
纯虚函数
Python
cv.ml.ANN_MLP.setBackpropMomentumScale(val) ->

◆ setBackpropWeightScale()

virtual void cv::ml::ANN_MLP::setBackpropWeightScale ( double val)
纯虚函数
Python
cv.ml.ANN_MLP.setBackpropWeightScale(val) ->

◆ setLayerSizes()

virtual void cv::ml::ANN_MLP::setLayerSizes ( 输入数组 (InputArray) _layer_sizes)
纯虚函数
Python
cv.ml.ANN_MLP.setLayerSizes(_layer_sizes) ->

指定每一层神经元数量的整数向量,包括输入层和输出层。第一个元素指定输入层元素数量,最后一个元素指定输出层元素数量。默认值为空 Mat

另请参阅
getLayerSizes

◆ setRpropDW0()

virtual void cv::ml::ANN_MLP::setRpropDW0 ( double val)
纯虚函数
Python
cv.ml.ANN_MLP.setRpropDW0(val) ->

另请参阅
getRpropDW0

◆ setRpropDWMax()

virtual void cv::ml::ANN_MLP::setRpropDWMax ( double val)
纯虚函数
Python
cv.ml.ANN_MLP.setRpropDWMax(val) ->

另请参阅
getRpropDWMax

◆ setRpropDWMin()

virtual void cv::ml::ANN_MLP::setRpropDWMin ( double val)
纯虚函数
Python
cv.ml.ANN_MLP.setRpropDWMin(val) ->

另请参阅
getRpropDWMin

◆ setRpropDWMinus()

virtual void cv::ml::ANN_MLP::setRpropDWMinus ( double val)
纯虚函数
Python
cv.ml.ANN_MLP.setRpropDWMinus(val) ->

另请参阅
getRpropDWMinus

◆ setRpropDWPlus()

virtual void cv::ml::ANN_MLP::setRpropDWPlus ( double val)
纯虚函数
Python
cv.ml.ANN_MLP.setRpropDWPlus(val) ->

另请参阅
getRpropDWPlus

◆ setTermCriteria()

virtual void cv::ml::ANN_MLP::setTermCriteria ( 终止条件 (TermCriteria) val)
纯虚函数
Python
cv.ml.ANN_MLP.setTermCriteria(val) ->

另请参阅
getTermCriteria

◆ setTrainMethod()

virtual void cv::ml::ANN_MLP::setTrainMethod ( int 方法 (method),
double param1 = 0,
double param2 = 0 )
纯虚函数
Python
cv.ml.ANN_MLP.setTrainMethod(method[, param1[, param2]]) ->

设置训练方法和常用参数。

参数
方法 (method)默认值为 ANN_MLP::RPROP。参见 ANN_MLP::TrainingMethods
param1传递给 ANN_MLP::RPROP 的 setRpropDW0,传递给 ANN_MLP::BACKPROP 的 setBackpropWeightScale,以及传递给 ANN_MLP::ANNEAL 的 initialT。
param2传递给 ANN_MLP::RPROP 的 setRpropDWMin,传递给 ANN_MLP::BACKPROP 的 setBackpropMomentumScale,以及传递给 ANN_MLP::ANNEAL 的 finalT。

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