public boolean validateParameters()
    {
	// First check that the provided parameters are
	// valid, i.e. file paths actually lead to a file etc.
	//
	// This class requires the following variables to be correct
	// before proceeding.
	//
	// Requires: Training set, Validation set, a desired 
	// classification accuracy, and path to save the constructed
	// network to.

	// Check the user has passed in a training set
	if(!Common.isPathValid(this.input.getPathToTrainingFile()) | 
		!Common.fileExist(this.input.getPathToTrainingFile()))
	{
	    System.out.println("Error: Training Set invalid");
	    return false;
	}

	// Check the user has passed in a validation set
	if(!Common.isPathValid(this.input.getPathToValidationFile()) | 
		!Common.fileExist(this.input.getPathToValidationFile()))
	{
	    System.out.println("Error: Validation Set invalid");
	    return false;
	}

	// Check the user has supplied a desired network accuracy
	if(input.getDesiredNetworkAccuracy() < 0 | input.getDesiredNetworkAccuracy() >= 100)
	{
	    System.out.println("Error: Desired Network Accuracy invalid");
	    return false;
	}

	// Check the user has provided a path to which the created neural network can be saved
	if(!Common.isPathValid(this.input.getNetworkSavePath()))
	{
	    System.out.println("Error: The path to save the trained netork to is invalid");
	    return false;
	}

	// Check that the value of K passed in by the user is valid.
	if(input.getK() < 1 | input.getK() > 10)
	{
	    System.out.println("Error: The value of K for the KNN clasifier is invalid");
	    return false;
	}
	
	// If we get here, then all parameters are acceptable.
	return true;
    }