/// <summary> /// Copy output training data from an array. /// </summary> /// <param name="vector">The target array.</param> /// <param name="config">The configuration instance.</param> public override void SyncTrainingFrom(double[] vector, BasicConfig config) { for (int i = 0; i < _outputTraining.Length && i < vector.Length; i++) { _outputTraining[i] = config.ConvertOutput(vector[i]); } }
/// <summary> /// Instanciates a new pattern. /// </summary> /// <param name="title">The name/title of the pattern.</param> /// <param name="input">The input pattern data (gets copied).</param> /// <param name="numberOfClasses">The count of output neurons.</param> /// <param name="classification">The position of the favoured output neuron in the output layer.</param> /// <param name="config">The network configuration instance (needed to generate an appropriate training vector)</param> public DoublePattern(string title, double[] input, int numberOfClasses, int classification, BasicConfig config) : base(title, classification) { _inputPattern = new double[input.Length]; input.CopyTo(_inputPattern, 0); _outputTraining = new double[numberOfClasses]; for (int i = 0; i < numberOfClasses; i++) { OutputTraining[i] = config.ConvertOutput(i == classification); } }
/// <summary> /// Create a boolean pattern based on this pattern. /// </summary> /// <param name="config">The configuration instance.</param> public BooleanPattern ToBooleanPattern(BasicConfig config) { bool[] input = new bool[_inputPattern.Length]; bool[] output = new bool[_outputTraining.Length]; for (int i = 0; i < input.Length; i++) { input[i] = config.ConvertInput(_inputPattern[i]); } for (int i = 0; i < output.Length; i++) { output[i] = config.ConvertOutput(_outputTraining[i]); } return(new BooleanPattern(Title, input, output, Classification)); }
/// <summary> /// Create a double pattern based on this pattern. /// </summary> /// <param name="config">The configuration instance.</param> public DoublePattern ToDoublePattern(BasicConfig config) { double[] input = new double[_inputPattern.Length]; double[] output = new double[_outputTraining.Length]; for (int i = 0; i < input.Length; i++) { input[i] = config.ConvertInput(_inputPattern[i]); } for (int i = 0; i < output.Length; i++) { output[i] = config.ConvertOutput(_outputTraining[i]); } return(new DoublePattern(Title, input, output, Classification)); }