private void Copy(MultilayerPerceptron other) { foreach (var l in other._hidden) { AddLayer(l.Count); } if (_hidden.Count == 0) { for (int i = 0; i < _output.Count; i++) { _output[i].AddParents(_input, other._output[i]); } } else { for (int i = 0; i < _hidden[0].Count; i++) { _hidden[0][i].AddParents(_input, other._hidden[0][i]); } for (int i = 1; i < _hidden.Count; i++) { for (int j = 0; j < _hidden[i].Count; j++) { _hidden[i][j].AddParents(_hidden[i - 1], other._hidden[i][j]); } } for (int i = 0; i < _output.Count; i++) { _output[i].AddParents(_hidden[_hidden.Count - 1], other._output[i]); } } }
public override NeuralNetwork Copy() { var result = new MultilayerPerceptron(_input.Count, _output.Count, _func); result.Copy(this); return(result); }