package net.woodyfolsom.msproj.ann;

import java.io.IOException;
import java.util.List;
import java.util.Set;

import org.encog.ml.data.MLData;
import org.encog.ml.data.MLDataPair;
import org.encog.ml.data.MLDataSet;
import org.encog.neural.networks.BasicNetwork;

public interface NeuralNetFilter {
	BasicNetwork getNeuralNetwork();
	
	int getActualTrainingEpochs();
	int getInputSize();
	int getMaxTrainingEpochs();
	int getOutputSize();
	
	void learn(MLDataSet trainingSet);
	void learn(Set<List<MLDataPair>> trainingSet);
	
	void load(String fileName) throws IOException;
	void reset();
	void reset(int seed);
	void save(String fileName) throws IOException;
	void setMaxTrainingEpochs(int max);

	MLData compute(MLData input);
}