/// <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( _numThreads, (int)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); } }
/// <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); } }