C# Class Encog.Neural.Networks.Training.Concurrent.ConcurrentTrainingManager

Concurrent training manager. This class allows you to queue up network training tasks to be executed either by the CPU cores or OpenCL devices. This allows the CPU/GPU to train neural networks at the same time.
显示文件 Open project: encog/encog-silverlight-core

Public Methods

Method Description
AddPerformer ( IConcurrentTrainingPerformer performer ) : void

Add a performer.

AddTrainingJob ( TrainingJob job ) : void

Add a training job.

ClearPerformers ( ) : void

Clear all of the performers.

ClearQueue ( ) : void

Clear the workload.

DetectPerformers ( ) : void

Detect performers. Create one performer for each OpenCL device, and another for the CPU's. If there is an OpenCL device already for the CPU, do not create another CPU performer.

DetectPerformers ( bool splitCores, int forceCoreCount ) : void

Detect performers. Create one performer for each OpenCL device, and another for the CPU's. If there is an OpenCL device already for the CPU, do not create another CPU performer.

JobDone ( long time, ConcurrentTrainingPerformerCPU perf ) : void

Report that a job is done.

Join ( ) : void

Wait for all tasks to finish.

Run ( ) : void

Perform the training. Called internally.

Start ( ) : void

Start the manager.

ToString ( ) : String
WaitForFreePerformer ( TrainingJob job ) : IConcurrentTrainingPerformer

Wait for a free performer.

Private Methods

Method Description
ConcurrentTrainingManager ( ) : System

Private constructor.

ReportErrors ( ) : void

If an error has been reported, then throw it as an exception.

ReportStatus ( String str ) : void

Report the status.

Method Details

AddPerformer() public method

Add a performer.
public AddPerformer ( IConcurrentTrainingPerformer performer ) : void
performer IConcurrentTrainingPerformer The performer to add.
return void

AddTrainingJob() public method

Add a training job.
public AddTrainingJob ( TrainingJob job ) : void
job Encog.Neural.Networks.Training.Concurrent.Jobs.TrainingJob The training job to add.
return void

ClearPerformers() public method

Clear all of the performers.
public ClearPerformers ( ) : void
return void

ClearQueue() public method

Clear the workload.
public ClearQueue ( ) : void
return void

DetectPerformers() public method

Detect performers. Create one performer for each OpenCL device, and another for the CPU's. If there is an OpenCL device already for the CPU, do not create another CPU performer.
public DetectPerformers ( ) : void
return void

DetectPerformers() public method

Detect performers. Create one performer for each OpenCL device, and another for the CPU's. If there is an OpenCL device already for the CPU, do not create another CPU performer.
public DetectPerformers ( bool splitCores, int forceCoreCount ) : void
splitCores bool True, if a CPU performer should be created for each core.
forceCoreCount int The core count to be forced.
return void

JobDone() public method

Report that a job is done.
public JobDone ( long time, ConcurrentTrainingPerformerCPU perf ) : void
time long Time took by the job.
perf Encog.Neural.Networks.Training.Concurrent.Performers.ConcurrentTrainingPerformerCPU The perfofmer that did the job.
return void

Join() public method

Wait for all tasks to finish.
public Join ( ) : void
return void

Run() public method

Perform the training. Called internally.
public Run ( ) : void
return void

Start() public method

Start the manager.
public Start ( ) : void
return void

ToString() public method

public ToString ( ) : String
return String

WaitForFreePerformer() public method

Wait for a free performer.
public WaitForFreePerformer ( TrainingJob job ) : IConcurrentTrainingPerformer
job TrainingJob
return IConcurrentTrainingPerformer