public virtual OutputLayer initLayer(OutputLayer outputLayer) { List <double> listOfWeightOutTemp = new List <double>(); List <Neuron> listOfNeurons = new List <Neuron>(); for (int i = 0; i < outputLayer.NumberOfNeuronsInLayer; i++) { Neuron neuron = new Neuron(); listOfWeightOutTemp.Add(neuron.initNeuron()); neuron.ListOfWeightOut = listOfWeightOutTemp; listOfNeurons.Add(neuron); listOfWeightOutTemp = new List <double>(); } outputLayer.ListOfNeurons = listOfNeurons; return(outputLayer); }
public virtual InputLayer initLayer(InputLayer inputLayer) { List <double> listOfWeightInTemp = new List <double>(); List <Neuron> listOfNeurons = new List <Neuron>(); for (int i = 0; i < inputLayer.NumberOfNeuronsInLayer; i++) { Neuron neuron = new Neuron(); listOfWeightInTemp.Add(neuron.initNeuron()); //listOfWeightInTemp.add( neuron.initNeuron( i ) ); neuron.ListOfWeightIn = listOfWeightInTemp; listOfNeurons.Add(neuron); listOfWeightInTemp = new List <double>(); } inputLayer.ListOfNeurons = listOfNeurons; return(inputLayer); }
public virtual List <HiddenLayer> initLayer(HiddenLayer hiddenLayer, List <HiddenLayer> listOfHiddenLayer, InputLayer inputLayer, OutputLayer outputLayer) { List <double> listOfWeightIn = new List <double>(); List <double> listOfWeightOut = new List <double>(); List <Neuron> listOfNeurons = new List <Neuron>(); int numberOfHiddenLayers = listOfHiddenLayer.Count; for (int hdn_i = 0; hdn_i < numberOfHiddenLayers; hdn_i++) { for (int neuron_i = 0; neuron_i < hiddenLayer.NumberOfNeuronsInLayer; neuron_i++) { Neuron neuron = new Neuron(); int limitIn = 0; int limitOut = 0; if (hdn_i == 0) { // first limitIn = inputLayer.NumberOfNeuronsInLayer; if (numberOfHiddenLayers > 1) { limitOut = listOfHiddenLayer[hdn_i + 1].NumberOfNeuronsInLayer; } else if (numberOfHiddenLayers == 1) { limitOut = outputLayer.NumberOfNeuronsInLayer; } } else if (hdn_i == numberOfHiddenLayers - 1) { // last limitIn = listOfHiddenLayer[hdn_i - 1].NumberOfNeuronsInLayer; limitOut = outputLayer.NumberOfNeuronsInLayer; } else { // middle limitIn = listOfHiddenLayer[hdn_i - 1].NumberOfNeuronsInLayer; limitOut = listOfHiddenLayer[hdn_i + 1].NumberOfNeuronsInLayer; } limitIn = limitIn - 1; // bias no limitOut = limitOut - 1; if (neuron_i >= 1) { for (int k = 0; k <= limitIn; k++) { listOfWeightIn.Add(neuron.initNeuron()); //listOfWeightIn.add(neuron.initNeuron(k, neuron_i, 1)); } } for (int k = 0; k <= limitOut; k++) { listOfWeightOut.Add(neuron.initNeuron()); //listOfWeightOut.add(neuron.initNeuron(k, neuron_i, 2)); } neuron.ListOfWeightIn = listOfWeightIn; neuron.ListOfWeightOut = listOfWeightOut; listOfNeurons.Add(neuron); listOfWeightIn = new List <double>(); listOfWeightOut = new List <double>(); } listOfHiddenLayer[hdn_i].ListOfNeurons = listOfNeurons; listOfNeurons = new List <Neuron>(); } return(listOfHiddenLayer); }