/// <inheritdoc />
public override void Init(BasicNetwork theNetwork, IMLDataSet theTraining)
{
base.Init(theNetwork, theTraining);
int weightCount = theNetwork.Structure.Flat.Weights.Length;
_training = theTraining;
_network = theNetwork;
_hessianMatrix = new Matrix(weightCount, weightCount);
_hessian = _hessianMatrix.Data;
// create worker(s)
var determine = new DetermineWorkload(
ThreadCount, _training.Count);
_workers = new ChainRuleWorker[determine.ThreadCount];
int index = 0;
// handle CPU
foreach (IntRange r in determine.CalculateWorkers())
{
_workers[index++] = new ChainRuleWorker((FlatNetwork) _flat.Clone(),
_training.OpenAdditional(), r.Low,
r.High);
}
}