public List <double> UpdateOne(List <double> inputs) { List <double> outPuts = new List <double>(); for (int i = 0; i < mNeuralLayerDataList.Count; i++) { if (i > 0) { inputs = new List <double>(outPuts); } outPuts.Clear(); NeuralLayerData neuralLayer = mNeuralLayerDataList[i]; for (int j = 0; j < neuralLayer.mNeuralDataList.Count; j++) { double netInput = 0; NeuralData ndata = neuralLayer.mNeuralDataList[j]; for (int n = 0; n < ndata._Code.Count - 1; n++) { netInput += ndata._Code[n] * inputs[n]; } netInput += ndata._Code[ndata._Code.Count - 1] * BISDP; ndata.mActivation = GetSigmoid(netInput); outPuts.Add(ndata.mActivation); } } return(outPuts); }
public void CreateNet(int intputNum, int outputNum, int layerNum = 1, int neuralNum = 10) { mIntputNum = intputNum; mOutputNum = outputNum; mLayerNum = layerNum; mNeuralNum = neuralNum; if (layerNum > 0) { NeuralLayerData nld = new NeuralLayerData(neuralNum, intputNum); mNeuralLayerDataList.Add(nld); for (int i = 0; i < layerNum - 1; i++) { nld = new NeuralLayerData(neuralNum, neuralNum); mNeuralLayerDataList.Add(nld); } nld = new NeuralLayerData(outputNum, neuralNum); mNeuralLayerDataList.Add(nld); } else { NeuralLayerData nld = new NeuralLayerData(outputNum, intputNum); mNeuralLayerDataList.Add(nld); } }