public override List <string> DescribeSelf() { List <String> output = new List <string>(); var pair = states.FirstOrDefault(); output.Add("Classification using neural network [" + pair.Value.machine.GetType().Name + "] with " + pair.Value.machine.Layers.Count() + " layers."); output.Add("Supervised learning [" + teacherRef.GetType().Name + "] with LearningRate = " + setup.neuralnetwork.learningRate + " and Momentum = " + setup.neuralnetwork.momentum + "."); output.Add("Learning in max. iterations [" + setup.neuralnetwork.learningIterationsMax + "], terminated earlier if error rate is lower then [" + setup.neuralnetwork.errorLowerLimit.ToString("F5") + "]"); // output.Add("Input layer [0] -> [" + pair.Value.data.NumberOfInputs + "]"); for (int i = 0; i < pair.Value.machine.Layers.Length; i++) { Layer l = pair.Value.machine.Layers[i]; output.Add("Layer [" + (i) + "] -> In[" + l.InputsCount + "] -> Neurons[" + l.Neurons.Length + "] -> Out[" + l.Output.Length + "]"); } output.Add("Output layer [" + (pair.Value.machine.Layers.Length) + "] -> [" + pair.Value.data.NumberOfClasses + "]"); output.Add("Neuron function [" + activationFunction.GetType().Name + "]. Trained with [" + pair.Value.data.NumberOfCases + "] cases."); return(output); }