The Encog Project

org.encog.neural.networks.training.propagation.multi
Class MultiPropagation

java.lang.Object
  extended by org.encog.neural.networks.training.BasicTraining
      extended by org.encog.neural.networks.training.propagation.multi.MultiPropagation
All Implemented Interfaces:
Train

public class MultiPropagation
extends BasicTraining

MPROP - Multipropagation Training. This is a training technique being developed by Jeff Heaton. It is meant to be especially optimal for running on multicore and eventually grid computing systems. MPROP does not currently suppor recurrent networks, this will be addressed in a later release. - Jeff Heaton


Constructor Summary
MultiPropagation(BasicNetwork network, NeuralDataSet training)
          Construct a MPROP trainer that will use the number of available processors plus 1.
MultiPropagation(BasicNetwork network, NeuralDataSet training, int threadCount)
          Construct a multi propagation trainer.
 
Method Summary
 NeuralDataPair createPair()
          Create a new neural data pair object of the correct size for the neural network that is being trained.
 BasicNetwork getNetwork()
          Get the current best network from the training.
 MPROPWorker[] getWorkers()
           
 void iteration()
          Perform one iteration of training.
 
Methods inherited from class org.encog.neural.networks.training.BasicTraining
addStrategy, finishTraining, getError, getStrategies, getTraining, postIteration, preIteration, setError, setTraining
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultiPropagation

public MultiPropagation(BasicNetwork network,
                        NeuralDataSet training)
Construct a MPROP trainer that will use the number of available processors plus 1. If there is only one processor, then threads will not be used and this trainer will fall back to RPROP. Also make sure that there are not so many threads that the training set size per thread becomes two small.

Parameters:
network - The network to train.
training - The training set to use.

MultiPropagation

public MultiPropagation(BasicNetwork network,
                        NeuralDataSet training,
                        int threadCount)
Construct a multi propagation trainer.

Parameters:
network - The network to use.
training - The training set to use.
threadCount - The thread count to use.
Method Detail

createPair

public NeuralDataPair createPair()
Create a new neural data pair object of the correct size for the neural network that is being trained. This object will be passed to the getPair method to allow the neural data pair objects to be copied to it.

Returns:
A new neural data pair object.

getNetwork

public BasicNetwork getNetwork()
Description copied from interface: Train
Get the current best network from the training.

Returns:
The trained neural network. Make sure you call "finishTraining" before attempting to access the neural network. Otherwise you will end up with a reference to a network that is still being updated.

getWorkers

public MPROPWorker[] getWorkers()
Returns:
The thread workers.

iteration

public void iteration()
Perform one iteration of training. No work is actually done by this method, other than providing an indication of what the current error level is. The threads are already running in the background and going about their own iterations.


The Encog Project