C# Class Encog.Engine.Network.Train.Prop.TrainFlatNetworkProp

Train a flat network using multithreading, and GPU support. The training data must be indexable, it will be broken into groups for each thread to process. At the end of each iteration the training from each thread is aggregated back to the neural network.
Inheritance: ITrainFlatNetwork
Exibir arquivo Open project: encog/encog-silverlight-core Class Usage Examples

Protected Properties

Property Type Description
currentError double
gradients double[]
indexable IEngineIndexableSet
iteration int
lastGradient double[]
network Encog.Engine.Network.Flat.FlatNetwork
numThreads int
reportedException System.Exception
totalError double
training IEngineDataSet
workers IFlatGradientWorker[]

Public Methods

Method Description
CalculateGradients ( ) : void

Calculatee the gradients.

FinishTraining ( ) : void
Iteration ( ) : void
Iteration ( int count ) : void

Perform the specified number of training iterations. This is a basic implementation that just calls iteration the specified number of times. However, some training methods, particularly with the GPU, benefit greatly by calling with higher numbers than 1.

Report ( double gradients, double error, Exception ex ) : void

Called by the worker threads to report the progress at each step.

TrainFlatNetworkProp ( FlatNetwork network, IEngineDataSet training ) : Encog.Engine

Train a flat network multithreaded.

UpdateWeight ( double gradient, double lastGradient, int index ) : double

Update a weight, the means by which weights are updated vary depending on the training.

Protected Methods

Method Description
Learn ( ) : void

Apply and learn.

LearnLimited ( ) : void

Apply and learn. This is the same as learn, but it checks to see if any of the weights are below the limit threshold. In this case, these weights are zeroed out. Having two methods allows the regular learn method, which is what is usually use, to be as fast as possible.

Private Methods

Method Description
CopyContexts ( ) : void

Copy the contexts to keep them consistent with multithreaded training.

Init ( ) : void

Method Details

CalculateGradients() public method

Calculatee the gradients.
public CalculateGradients ( ) : void
return void

FinishTraining() public method

public FinishTraining ( ) : void
return void

Iteration() public method

public Iteration ( ) : void
return void

Iteration() public method

Perform the specified number of training iterations. This is a basic implementation that just calls iteration the specified number of times. However, some training methods, particularly with the GPU, benefit greatly by calling with higher numbers than 1.
public Iteration ( int count ) : void
count int The number of training iterations.
return void

Learn() protected method

Apply and learn.
protected Learn ( ) : void
return void

LearnLimited() protected method

Apply and learn. This is the same as learn, but it checks to see if any of the weights are below the limit threshold. In this case, these weights are zeroed out. Having two methods allows the regular learn method, which is what is usually use, to be as fast as possible.
protected LearnLimited ( ) : void
return void

Report() public method

Called by the worker threads to report the progress at each step.
public Report ( double gradients, double error, Exception ex ) : void
gradients double The gradients from that worker.
error double The error for that worker.
ex System.Exception The exception.
return void

TrainFlatNetworkProp() public method

Train a flat network multithreaded.
public TrainFlatNetworkProp ( FlatNetwork network, IEngineDataSet training ) : Encog.Engine
network Encog.Engine.Network.Flat.FlatNetwork The network to train.
training IEngineDataSet The training data to use.
return Encog.Engine

UpdateWeight() public abstract method

Update a weight, the means by which weights are updated vary depending on the training.
public abstract UpdateWeight ( double gradient, double lastGradient, int index ) : double
gradient double The gradients.
lastGradient double The last gradients.
index int The index.
return double

Property Details

currentError protected_oe property

The current error is the average error over all of the threads.
protected double currentError
return double

gradients protected_oe property

The gradients.
protected double[] gradients
return double[]

indexable protected_oe property

The network in indexable form.
protected IEngineIndexableSet indexable
return IEngineIndexableSet

iteration protected_oe property

The iteration.
protected int iteration
return int

lastGradient protected_oe property

The last gradients, from the last training iteration.
protected double[] lastGradient
return double[]

network protected_oe property

The network to train.
protected FlatNetwork,Encog.Engine.Network.Flat network
return Encog.Engine.Network.Flat.FlatNetwork

numThreads protected_oe property

The number of threads to use.
protected int numThreads
return int

reportedException protected_oe property

Reported exception from the threads.
protected Exception,System reportedException
return System.Exception

totalError protected_oe property

The total error. Used to take the average of.
protected double totalError
return double

training protected_oe property

The training data.
protected IEngineDataSet training
return IEngineDataSet

workers protected_oe property

The workers.
protected IFlatGradientWorker[] workers
return IFlatGradientWorker[]