private void train(Double[] input, Double[] output) { // inputNodes = new ArrayList<Double>(inputSize + 1); hiddenNodes = new ArrayList<Double>(hiddenLNo); outputNodes = new ArrayList<Double>(outputLNo); sumErrorDerivWeight = new ArrayList<Double>(hiddenLNo * (outputLNo + Adding)); // for (int i = 0; i < input.length - 1; i++) { // inputNodes.add( input[i]); // } // inputNodes.set(input.length - 1, bias); for (int i = 0; i < hiddenLNo; i++) { hiddenNodes.add((double) 0); for (int j = 0; j < outputLNo + Adding; j++) { // Bias sumErrorDeriv will be calculated separately sumErrorDerivWeight.add((double) 0); } } for (int i = 0; i < outputLNo; i++) outputNodes.add((double) 0); forwardProp(input); backProp(input, output); }