public Object classify(double[] input) {
		for(int i = 0; i < input.length; i++){
			this.input.get(i).input(input[i]);
		}
		//Propagate stuff
		for(Neuron n : this.input) n.propagate();
		for(List<Neuron> list : this.hidden){
			for(Neuron n : list) n.propagate();
		}
		for(Neuron n : this.output) n.propagate();
		double[] r = new double[this.output.size()];
		int highestIndex = 0;
		double highestVal = Double.MIN_VALUE;
		for(int i = 0; i < r.length; i++){
			r[i] = this.output.get(i).getLatestOutput();
			if(r[i] > highestVal){
				highestIndex = i;
				highestVal = r[i];
			}
		}
		//Find the largest one
		return this.classes[highestIndex];
	}