// training and testing data providers
String inputPath = Thread.currentThread().getContextClassLoader().getResource("IRISinput.txt").getPath();
String targetPath = Thread.currentThread().getContextClassLoader().getResource("IRIStarget.txt").getPath();
TrainingInputProviderImpl trainInputProvider = new CSVInputProvider(new File(inputPath), new File(targetPath));
trainInputProvider.addInputModifier(new ScalingInputFunction(trainInputProvider));
TrainingInputProviderImpl testInputProvider = new CSVInputProvider(new File(inputPath), new File(targetPath));
testInputProvider.addInputModifier(new ScalingInputFunction(testInputProvider));
OutputError outputError = new MultipleNeuronsOutputError();
// trainer
BackPropagationTrainer<?> bpt = TrainerFactory.backPropagation(mlp, trainInputProvider, testInputProvider, outputError, new NNRandomInitializer(new MersenneTwisterRandomInitializer(-0.01f, 0.01f), 0.5f), 0.02f, 0.7f, 0f, 0f, 0f, 150, 1, 2000);