//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public static void main(String[] args) throws java.io.IOException
        public static void Main(string[] args)
        {
            // path to image directory
            string imageDir = "/home/zoran/Downloads/MihailoHSLTest/trening";

            // image names - used for output neuron labels
            List <string> imageLabels = new ArrayList();

            imageLabels.Add("bird");
            imageLabels.Add("cat");
            imageLabels.Add("dog");


            // create dataset
            IDictionary <string, FractionRgbData> map = ImageRecognitionHelper.getFractionRgbDataForDirectory(new File(imageDir), new Dimension(20, 20));
            DataSet dataSet = ImageRecognitionHelper.createRGBTrainingSet(imageLabels, map);

            // create neural network
            List <int?> hiddenLayers = new List <int?>();

            hiddenLayers.Add(12);
            NeuralNetwork nnet = ImageRecognitionHelper.createNewNeuralNetwork("someNetworkName", new Dimension(20, 20), ColorMode.COLOR_RGB, imageLabels, hiddenLayers, TransferFunctionType.SIGMOID);

            // set learning rule parameters
            MomentumBackpropagation mb = (MomentumBackpropagation)nnet.LearningRule;

            mb.LearningRate = 0.2;
            mb.MaxError     = 0.9;
            mb.Momentum     = 1;

            // traiin network
            Console.WriteLine("NNet start learning...");
            nnet.learn(dataSet);
            Console.WriteLine("NNet learned");
        }
        public virtual void run()
        {
            Console.WriteLine("Creating training and test set from file...");
            string trainingSetFileName = "data_sets/segment challenge.txt";
            string testSetFileName     = "data_sets/segment test.txt";
            int    inputsCount         = 19;
            int    outputsCount        = 7;

            //Create training data set from file
            DataSet trainingSet = DataSet.createFromFile(trainingSetFileName, inputsCount, outputsCount, ",");

            Console.WriteLine("Training set size: " + trainingSet.Rows.Count);
            trainingSet.shuffle();
            trainingSet.shuffle();

            //Normalizing training data set
            Normalizer normalizer = new MaxNormalizer();

            normalizer.normalize(trainingSet);

            //Create test data set from file
            DataSet testSet = DataSet.createFromFile(testSetFileName, inputsCount, outputsCount, ",");

            Console.WriteLine("Test set size: " + testSet.Rows.Count);
            Console.WriteLine("--------------------------------------------------");
            testSet.shuffle();
            testSet.shuffle();

            //Normalizing training data set
            normalizer.normalize(testSet);

            Console.WriteLine("Creating neural network...");
            //Create MultiLayerPerceptron neural network
            MultiLayerPerceptron neuralNet = new MultiLayerPerceptron(inputsCount, 17, 10, outputsCount);
            //attach listener to learning rule
            MomentumBackpropagation learningRule = (MomentumBackpropagation)neuralNet.LearningRule;

            learningRule.addListener(this);

            learningRule.LearningRate  = 0.01;
            learningRule.MaxError      = 0.001;
            learningRule.MaxIterations = 12000;

            Console.WriteLine("Training network...");
            //train the network with training set
            neuralNet.learn(trainingSet);

            Console.WriteLine("Testing network...\n\n");
            testNeuralNetwork(neuralNet, testSet);

            Console.WriteLine("Done.");
            Console.WriteLine("**************************************************");
            //        }
        }
예제 #3
0
        //Creating and saving neural network to file
        public virtual void createNeuralNetwork()
        {
            Console.WriteLine("Creating neural network... ");
            MultiLayerPerceptron    neuralNet    = new MultiLayerPerceptron(config.InputCount, config.FirstHiddenLayerCount, config.SecondHiddenLayerCount, config.OutputCount);
            MomentumBackpropagation learningRule = (MomentumBackpropagation)neuralNet.LearningRule;

            learningRule.LearningRate  = 0.01;
            learningRule.MaxError      = 0.1;
            learningRule.MaxIterations = 1000;
            Console.WriteLine("Saving neural network to file... ");
            neuralNet.save(config.TrainedNetworkFileName);
            Console.WriteLine("Neural network successfully saved!");
        }
예제 #4
0
        public virtual void run()
        {
            Console.WriteLine("Creating training and test set from file...");
            string trainingSetFileName = "data_sets/diabetes.txt";
            int    inputsCount         = 8;
            int    outputsCount        = 2;

            //Create data set from file
            DataSet dataSet = DataSet.createFromFile(trainingSetFileName, inputsCount, outputsCount, ",");

            dataSet.shuffle();

            //Normalizing data set
            Normalizer normalizer = new MaxNormalizer();

            normalizer.normalize(dataSet);

            //Creatinig training set (70%) and test set (30%)
            DataSet[] trainingAndTestSet = dataSet.createTrainingAndTestSubsets(70, 30);
            DataSet   trainingSet        = trainingAndTestSet[0];
            DataSet   testSet            = trainingAndTestSet[1];

            //        for (int i = 0; i < 21; i++) {
            Console.WriteLine("Creating neural network...");
            //Create MultiLayerPerceptron neural network
            MultiLayerPerceptron neuralNet = new MultiLayerPerceptron(inputsCount, 9, outputsCount);
            //            System.out.println("HIDDEN COUNT: " + i);
            //attach listener to learning rule
            MomentumBackpropagation learningRule = (MomentumBackpropagation)neuralNet.LearningRule;

            learningRule.addListener(this);

            learningRule.LearningRate  = 0.05;
            learningRule.MaxError      = 0.01;
            learningRule.MaxIterations = 10000;

            Console.WriteLine("Training network...");
            //train the network with training set
            neuralNet.learn(trainingSet);

            Console.WriteLine("Testing network...\n\n");
            testNeuralNetwork(neuralNet, testSet);

            Console.WriteLine("Done.");
            Console.WriteLine("**************************************************");
            //        }
        }
        public virtual void run()
        {
            Console.WriteLine("Creating training set...");
            string trainingSetFileName = "data_sets/cpu_data.txt";
            int    inputsCount         = 7;
            int    outputsCount        = 1;

            // create training set from file
            DataSet    dataSet    = DataSet.createFromFile(trainingSetFileName, inputsCount, outputsCount, ",", false);
            Normalizer normalizer = new MaxNormalizer();

            normalizer.normalize(dataSet);


            Console.WriteLine("Creating neural network...");
            // create MultiLayerPerceptron neural network
            MultiLayerPerceptron neuralNet = new MultiLayerPerceptron(inputsCount, 16, outputsCount);


            // attach listener to learning rule
            MomentumBackpropagation learningRule = (MomentumBackpropagation)neuralNet.LearningRule;

            learningRule.addListener(this);

            // set learning rate and max error
            learningRule.LearningRate = 0.2;
            learningRule.MaxError     = 0.01;

            Console.WriteLine("Training network...");
            // train the network with training set
            neuralNet.learn(dataSet);

            Console.WriteLine("Training completed.");
            Console.WriteLine("Testing network...");

            testNeuralNetwork(neuralNet, dataSet);

            Console.WriteLine("Saving network");
            // save neural network to file
            neuralNet.save("MyNeuralNetCPU.nnet");

            Console.WriteLine("Done.");
        }
예제 #6
0
        public virtual void train()
        {
            // get the path to file with data
            string inputFileName = "C:\\timeseries\\BSW15";

            // create MultiLayerPerceptron neural network
            neuralNet = new MultiLayerPerceptron(TransferFunctionType.TANH, 5, 10, 1);
            MomentumBackpropagation learningRule = (MomentumBackpropagation)neuralNet.LearningRule;

            learningRule.LearningRate = 0.2;
            learningRule.Momentum     = 0.5;
            // learningRule.addObserver(this);
            learningRule.addListener(this);

            // create training set from file
            trainingSet = DataSet.createFromFile(inputFileName, 5, 1, "\t", false);
            // train the network with training set
            neuralNet.learn(trainingSet);

            System.Console.WriteLine("Done training.");
        }