private IList <Result> TrainWithSet(ITrainingEntry trainingEntry) { var trainingResultForEntry = new List <IList <double> > { trainingEntry.Inputs }; var j = 0; foreach (var layer in this.Layers) { var trainingData = trainingResultForEntry[j]; var resultsForLayer = layer.Train(trainingData, ActivationFunction); trainingResultForEntry.Add(resultsForLayer); j++; } var resultValues = trainingResultForEntry.Last(); var resultErrors = trainingEntry.CalculateError(resultValues); var results = new List <Result>(); for (var i = 0; i < trainingEntry.Labels.Count; i++) { var result = new Result(resultValues[i], resultErrors[i]); results.Add(result); } return(results); }
private void PresentFooterForSet(IList <Result> results, ITrainingEntry trainingEntry) { Console.WriteLine("- set completed"); for (var i = 0; i < this.OutputLabels.Count(); i++) { Console.WriteLine( $"{this.OutputLabels[i]}: {results[i].Value.ToNonEString()} with error {results[i].Error.ToNonEString()}"); } }
private void PresentHeaderForSet(ITrainingEntry trainingEntry) { Console.WriteLine("- Start set"); for (var i = 0; i < this.InputLabels.Count(); i++) { Console.WriteLine($"\t{this.InputLabels[i]}: {trainingEntry.Inputs[i]}"); } Console.WriteLine($"\tExpected: {trainingEntry.Labels[0]}"); }