public Neural_Network Copy() { Neural_Network_Copy_Reference reference = new Neural_Network_Copy_Reference(Structure.Length - 1); input.InputCopyData(reference, 0); return(new Neural_Network(reference, Structure)); }
public void InputCopyData(Neural_Network_Copy_Reference reference, int depth) { reference.biases[depth] = biases; reference.weights[depth] = weights; if (child != null) { child.InputCopyData(reference, depth + 1); } }
public Layer(Neural_Network_Copy_Reference reference, int depth) { biases = (double[])Neural_Network.DeepClone(reference.biases[depth]); weights = (double[, ])Neural_Network.DeepClone(reference.weights[depth]); this.depth = ++depth; if (depth < reference.biases.GetLength(0)) { child = new Layer(reference, depth); } }
public Neural_Network(Neural_Network_Copy_Reference reference, int[] structure) { Structure = (int[])DeepClone(structure); input = new Layer(reference, 0); }