Back to Aurora Vision Library website

You are here: Start » Function Reference » Data Classification » Multilayer Perceptron » MLP_Train

MLP_Train


Header: AVL.h
Namespace: avl
Module: FoundationPro

Creates and trains multilayer perceptron classifier.

Syntax

C++
C#
 
void avl::MLP_Train
(
	const avl::MlpModel& inMlpModel,
	const atl::Array<atl::Array<float>>& inInputVectorArray,
	const atl::Array<atl::Array<float>>& inResponseVectorArray,
	atl::Optional<const atl::Array<atl::Array<float>>&> inTestInputVectorArray,
	atl::Optional<const atl::Array<atl::Array<float>>&> inTestResponseVectorArray,
	int inIterationCount,
	float inLearningRate,
	float inMomentum,
	atl::Optional<int> inRandomSeed,
	avl::MlpModel& outMlpModel,
	avl::Profile& diagErrorChartLearning,
	avl::Profile& diagErrorChartTesting
)

Parameters

Name Type Range Default Description
Input value inMlpModel const MlpModel& Initialized MLP model
Input value inInputVectorArray const Array<Array<float>>& Array of features used to train model
Input value inResponseVectorArray const Array<Array<float>>& Array of answers which classifier should get.
Input value inTestInputVectorArray Optional<const Array<Array<float>>&> NIL Array of features used to test classifier during training process
Input value inTestResponseVectorArray Optional<const Array<Array<float>>&> NIL Array of answers used to test classifier during training process
Input value inIterationCount int 1 - 100 Learning iteration count
Input value inLearningRate float 0.01 - 1.0 1.0f Learning factor
Input value inMomentum float 0.0 - 1.0 0.01f Learning momentum ratio
Input value inRandomSeed Optional<int> 0 - NIL Number used as starting random seed
Output value outMlpModel MlpModel& Trained MlpModel
Diagnostic input diagErrorChartLearning Profile& Mean error of testing results data during learning process
Diagnostic input diagErrorChartTesting Profile& Mean error during learning process

Description

The filter trains multilayer perceptron classifier. The inInputVectorArray contains an array of data used to train classifier.

The size of input vector should be constant for each provided input array. Each input vector size must be the same as input count provided in MLP_Init filter during classifier initialization.

The inResponseVectorArray contains answer for each data vector provided in inInputVectorArray. Size of all response vectors should be the same and equal to output count set in MLP_Init.

The inLearningRate determines step size during following function gradient. Too big step size may cause miss of optimization function minimum. Small values may cause learning process too long.

The parameter inMomentum defines how learning step results should depend on previous step results.

The inIterationCount specifies the number of iterations of the learning process.

Errors

List of possible exceptions:

Error type Description
DomainError Different sizes of answer vectors in inResponseVectorArray in MLP_Train.
DomainError Different sizes of feature vector array and answer vector array on input in MLP_Train.
DomainError Different sizes of feature vectors in inInputVectorArray in MLP_Train.
DomainError Empty feature array on input in MLP_Train.
DomainError Empty inInputVectorArray in MLP_Train
DomainError Empty inResponseVectorArray in MLP_Train
DomainError Incorrect or uninitialized MlpModel in MLP_Train.
DomainError Using uninitialized MlpModel in MLP_Train
DomainError Wrong size of answer vector in inTestResponseVectorArray in MLP_Train.
DomainError Wrong size of feature vector in inTestInputVectorArray in MLP_Train.

See Also

  • MLP_Respond – Calculates multilayer perceptron answer.
  • MLP_Init – Creates multilayer perceptron model.