Class cv::ml::ANN_MLP#
Artificial Neural Networks - Multi-Layer Perceptrons. View details
#include <opencv2/ml.hpp>Collaboration diagram for cv::ml::ANN_MLP:
Public Types#
enum ActivationFunctions {
IDENTITY = 0,
SIGMOID_SYM = 1,
GAUSSIAN = 2,
RELU = 3,
LEAKYRELU = 4
}
enum TrainFlags {
UPDATE_WEIGHTS = 1,
NO_INPUT_SCALE = 2,
NO_OUTPUT_SCALE = 4
}
enum TrainingMethods {
BACKPROP =0,
RPROP = 1,
ANNEAL = 2
}Public Types inherited from cv::ml::StatModel
Return |
Name |
Description |
|---|---|---|
Public Member Functions#
Public Member Functions inherited from cv::ml::StatModel
Return |
Name |
Description |
|---|---|---|
|
|
Computes error on the training or test dataset. |
|
Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. |
|
|
Returns the number of variables in training samples. |
|
|
Returns true if the model is classifier. |
|
|
Returns true if the model is trained. |
|
|
|
Predicts response(s) for the provided sample(s) |
|
Trains the statistical model. |
|
|
|
Trains the statistical model. |
Public Member Functions inherited from cv::Algorithm
Return |
Name |
Description |
|---|---|---|
|
Clears the algorithm state. |
|
|
Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. |
|
|
Reads algorithm parameters from a file storage. |
|
|
||
|
|
|
|
Stores algorithm parameters in a file storage. |
|
|
Static Public Member Functions#
Static Public Member Functions inherited from cv::ml::StatModel
Return |
Name |
Description |
|---|---|---|
|
Create and train model with default parameters. |
Static Public Member Functions inherited from cv::Algorithm
Return |
Name |
Description |
|---|---|---|
|
|
Loads algorithm from the file. |
|
|
Loads algorithm from a String. |
|
Reads algorithm from the file node. |
Additional Inherited Members#
Protected Member Functions inherited from cv::Algorithm
Return |
Name |
Description |
|---|---|---|
|
Detailed Description#
Artificial Neural Networks - Multi-Layer Perceptrons.
Unlike many other models in ML that are constructed and trained at once, in the MLP model these steps are separated. First, a network with the specified topology is created using the non-default constructor or the method ANN_MLP::create. All the weights are set to zeros. Then, the network is trained using a set of input and output vectors. The training procedure can be repeated more than once, that is, the weights can be adjusted based on the new training data.
Additional flags for StatModel::train are available: ANN_MLP::TrainFlags.
See also
ml_intro_ann
Member Enumeration Documentation#
enum ActivationFunctions
|
Identity function: \(f(x)=x\) |
|
Symmetrical sigmoid: \(f(x)=\beta*(1-e^{-\alpha x})/(1+e^{-\alpha x})\) Note If you are using the default sigmoid activation function with the default parameter values fparam1=0 and fparam2=0 then the function used is y = 1.7159*tanh(2/3 * x), so the output will range from [-1.7159, 1.7159], instead of [0,1]. |
|
Gaussian function: \(f(x)=\beta e^{-\alpha x*x}\) |
|
ReLU function: \(f(x)=max(0,x)\) |
|
Leaky ReLU function: for x>0 \(f(x)=x \) and x<=0 \(f(x)=\alpha x \) |
enum TrainFlags
|
Update the network weights, rather than compute them from scratch. In the latter case the weights are initialized using the Nguyen-Widrow algorithm. |
|
Do not normalize the input vectors. If this flag is not set, the training algorithm normalizes each input feature independently, shifting its mean value to 0 and making the standard deviation equal to 1. If the network is assumed to be updated frequently, the new training data could be much different from original one. In this case, you should take care of proper normalization. |
|
Do not normalize the output vectors. If the flag is not set, the training algorithm normalizes each output feature independently, by transforming it to the certain range depending on the used activation function. |
enum TrainingMethods
|
The back-propagation algorithm. |
|
The RPROP algorithm. See [251] for details. |
|
The simulated annealing algorithm. See [166] for details. |
Member Function Documentation#
getAnnealCoolingRatio()#
double cv::ml::ANN_MLP::getAnnealCoolingRatio()
Python:
cv.ml.ANN_MLP.getAnnealCoolingRatio() -> retval
ANNEAL: Update cooling ratio. It must be >0 and less than 1. Default value is 0.95.
See also
getAnnealFinalT()#
double cv::ml::ANN_MLP::getAnnealFinalT()
Python:
cv.ml.ANN_MLP.getAnnealFinalT() -> retval
ANNEAL: Update final temperature. It must be >=0 and less than initialT. Default value is 0.1.
See also
getAnnealInitialT()#
double cv::ml::ANN_MLP::getAnnealInitialT()
Python:
cv.ml.ANN_MLP.getAnnealInitialT() -> retval
ANNEAL: Update initial temperature. It must be >=0. Default value is 10.
See also
getAnnealItePerStep()#
int cv::ml::ANN_MLP::getAnnealItePerStep()
Python:
cv.ml.ANN_MLP.getAnnealItePerStep() -> retval
ANNEAL: Update iteration per step. It must be >0 . Default value is 10.
See also
getBackpropMomentumScale()#
double cv::ml::ANN_MLP::getBackpropMomentumScale()
Python:
cv.ml.ANN_MLP.getBackpropMomentumScale() -> retval
BPROP: Strength of the momentum term (the difference between weights on the 2 previous iterations). This parameter provides some inertia to smooth the random fluctuations of the weights. It can vary from 0 (the feature is disabled) to 1 and beyond. The value 0.1 or so is good enough. Default value is 0.1.
See also
getBackpropWeightScale()#
double cv::ml::ANN_MLP::getBackpropWeightScale()
Python:
cv.ml.ANN_MLP.getBackpropWeightScale() -> retval
BPROP: Strength of the weight gradient term. The recommended value is about 0.1. Default value is 0.1.
See also
getLayerSizes()#
cv::Mat cv::ml::ANN_MLP::getLayerSizes()
Python:
cv.ml.ANN_MLP.getLayerSizes() -> retval
Integer vector specifying the number of neurons in each layer including the input and output layers. The very first element specifies the number of elements in the input layer. The last element - number of elements in the output layer.
See also
getRpropDW0()#
double cv::ml::ANN_MLP::getRpropDW0()
Python:
cv.ml.ANN_MLP.getRpropDW0() -> retval
RPROP: Initial value \(\Delta_0\) of update-values \(\Delta_{ij}\). Default value is 0.1.
See also
getRpropDWMax()#
double cv::ml::ANN_MLP::getRpropDWMax()
Python:
cv.ml.ANN_MLP.getRpropDWMax() -> retval
RPROP: Update-values upper limit \(\Delta_{max}\). It must be >1. Default value is 50.
See also
getRpropDWMin()#
double cv::ml::ANN_MLP::getRpropDWMin()
Python:
cv.ml.ANN_MLP.getRpropDWMin() -> retval
RPROP: Update-values lower limit \(\Delta_{min}\). It must be positive. Default value is FLT_EPSILON.
See also
getRpropDWMinus()#
double cv::ml::ANN_MLP::getRpropDWMinus()
Python:
cv.ml.ANN_MLP.getRpropDWMinus() -> retval
RPROP: Decrease factor \(\eta^-\). It must be <1. Default value is 0.5.
See also
getRpropDWPlus()#
double cv::ml::ANN_MLP::getRpropDWPlus()
Python:
cv.ml.ANN_MLP.getRpropDWPlus() -> retval
RPROP: Increase factor \(\eta^+\). It must be >1. Default value is 1.2.
See also
getTermCriteria()#
TermCriteria cv::ml::ANN_MLP::getTermCriteria()
Python:
cv.ml.ANN_MLP.getTermCriteria() -> retval
Termination criteria of the training algorithm. You can specify the maximum number of iterations (maxCount) and/or how much the error could change between the iterations to make the algorithm continue (epsilon). Default value is TermCriteria(TermCriteria::MAX_ITER + TermCriteria::EPS, 1000, 0.01).
See also
getTrainMethod()#
int cv::ml::ANN_MLP::getTrainMethod()
Python:
cv.ml.ANN_MLP.getTrainMethod() -> retval
Returns current training method
getWeights()#
Mat cv::ml::ANN_MLP::getWeights(int layerIdx)
Python:
cv.ml.ANN_MLP.getWeights(layerIdx) -> retval
setActivationFunction()#
void cv::ml::ANN_MLP::setActivationFunction(
int type,
double param1 = 0,
double param2 = 0 )
Python:
Initialize the activation function for each neuron. Currently the default and the only fully supported activation function is ANN_MLP::SIGMOID_SYM.
Parameters
type— The type of activation function. See ANN_MLP::ActivationFunctions.param1— The first parameter of the activation function, \(\alpha\). Default value is 0.param2— The second parameter of the activation function, \(\beta\). Default value is 0.
setAnnealCoolingRatio()#
void cv::ml::ANN_MLP::setAnnealCoolingRatio(double val)
Python:
cv.ml.ANN_MLP.setAnnealCoolingRatio(val)
See also
setAnnealEnergyRNG()#
void cv::ml::ANN_MLP::setAnnealEnergyRNG(const RNG & rng)
Set/initialize anneal RNG.
setAnnealFinalT()#
void cv::ml::ANN_MLP::setAnnealFinalT(double val)
Python:
cv.ml.ANN_MLP.setAnnealFinalT(val)
See also
setAnnealInitialT()#
void cv::ml::ANN_MLP::setAnnealInitialT(double val)
Python:
cv.ml.ANN_MLP.setAnnealInitialT(val)
See also
setAnnealItePerStep()#
void cv::ml::ANN_MLP::setAnnealItePerStep(int val)
Python:
cv.ml.ANN_MLP.setAnnealItePerStep(val)
See also
setBackpropMomentumScale()#
void cv::ml::ANN_MLP::setBackpropMomentumScale(double val)
Python:
cv.ml.ANN_MLP.setBackpropMomentumScale(val)
See also
setBackpropWeightScale()#
void cv::ml::ANN_MLP::setBackpropWeightScale(double val)
Python:
cv.ml.ANN_MLP.setBackpropWeightScale(val)
See also
setLayerSizes()#
void cv::ml::ANN_MLP::setLayerSizes(InputArray _layer_sizes)
Python:
cv.ml.ANN_MLP.setLayerSizes(_layer_sizes)
Integer vector specifying the number of neurons in each layer including the input and output layers. The very first element specifies the number of elements in the input layer. The last element - number of elements in the output layer. Default value is empty Mat.
See also
setRpropDW0()#
void cv::ml::ANN_MLP::setRpropDW0(double val)
Python:
cv.ml.ANN_MLP.setRpropDW0(val)
See also
setRpropDWMax()#
void cv::ml::ANN_MLP::setRpropDWMax(double val)
Python:
cv.ml.ANN_MLP.setRpropDWMax(val)
See also
setRpropDWMin()#
void cv::ml::ANN_MLP::setRpropDWMin(double val)
Python:
cv.ml.ANN_MLP.setRpropDWMin(val)
See also
setRpropDWMinus()#
void cv::ml::ANN_MLP::setRpropDWMinus(double val)
Python:
cv.ml.ANN_MLP.setRpropDWMinus(val)
See also
setRpropDWPlus()#
void cv::ml::ANN_MLP::setRpropDWPlus(double val)
Python:
cv.ml.ANN_MLP.setRpropDWPlus(val)
See also
setTermCriteria()#
void cv::ml::ANN_MLP::setTermCriteria(TermCriteria val)
Python:
cv.ml.ANN_MLP.setTermCriteria(val)
See also
setTrainMethod()#
void cv::ml::ANN_MLP::setTrainMethod(
int method,
double param1 = 0,
double param2 = 0 )
Python:
cv.ml.ANN_MLP.setTrainMethod(method[, param1[, param2]])
Sets training method and common parameters.
Parameters
method— Default value is ANN_MLP::RPROP. See ANN_MLP::TrainingMethods.param1— passed to setRpropDW0 for ANN_MLP::RPROP and to setBackpropWeightScale for ANN_MLP::BACKPROP and to initialT for ANN_MLP::ANNEAL.param2— passed to setRpropDWMin for ANN_MLP::RPROP and to setBackpropMomentumScale for ANN_MLP::BACKPROP and to finalT for ANN_MLP::ANNEAL.
create()#
static Ptr< ANN_MLP > cv::ml::ANN_MLP::create()
Python:
cv.ml.ANN_MLP.create() -> retval
cv.ml.ANN_MLP_create() -> retval
Creates empty model.
Use StatModel::train to train the model, Algorithm::load<ANN_MLP>(filename) to load the pre-trained model. Note that the train method has optional flags: ANN_MLP::TrainFlags.
load()#
static Ptr< ANN_MLP > cv::ml::ANN_MLP::load(const String & filepath)
Python:
cv.ml.ANN_MLP.load(filepath) -> retval
cv.ml.ANN_MLP_load(filepath) -> retval
Loads and creates a serialized ANN from a file.
Use ANN::save to serialize and store an ANN to disk. Load the ANN from this file again, by calling this function with the path to the file.
Parameters
filepath— path to serialized ANN
Source file#
The documentation for this class was generated from the following file:
opencv2/ml.hpp