Ejemplo n.º 1
0
        private static void Main1()
        {
            var trainPath = @"C:\Programming\ConvolutionNeuralNetwork\Images\Train";
            var testPath  = @"C:\Programming\ConvolutionNeuralNetwork\Images\Test";
            var output    = new List <string> {
                "Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"
            };

            var network = new ConvolutionNN
            {
                InputLayer   = new InputLayer3D(28, 28),
                OutputLayer  = new OutputLayer(10),
                DataProvider = new ClassFolderImageProvider(trainPath, testPath, new Size(28, 28), output),
                Classes      = output
            };

            network.HiddenLayers.Add(new ConvolutionalLayer(3, 2, 2, 3)
            {
                AutoPadding = true
            });
            network.HiddenLayers.Add(new PoolingLayer());
            network.HiddenLayers.Add(new ConvolutionalLayer(3, 2, 2, 3)
            {
                AutoPadding = true
            });
            network.HiddenLayers.Add(new PoolingLayer());
            network.HiddenLayers.Add(new NarrowLayer());
            network.HiddenLayers.Add(new PerceptronLayer(100, 147));
            network.HiddenLayers.Add(new PerceptronLayer(50, 100));
            network.HiddenLayers.Add(new PerceptronLayer(10, 50));
        }
Ejemplo n.º 2
0
        private static void OneData()
        {
            var trainImage = @"C:\Programming\ConvolutionNeuralNetwork\Images\Train\One\One_0.jpg";
            var expected   = new Array3D(0, 1, 0, 0, 0, 0, 0, 0, 0, 0);
            var network    = new ConvolutionNN
            {
                InputLayer   = new InputLayer3D(28, 28),
                OutputLayer  = new OutputLayer(10),
                DataProvider = new OneIP(trainImage, expected)
            };

            network.HiddenLayers.Add(new ConvolutionalLayer(3, 2, 2, 3));
            network.HiddenLayers.Add(new PoolingLayer());
            network.HiddenLayers.Add(new ConvolutionalLayer(3, 2, 2, 3));
            network.HiddenLayers.Add(new PoolingLayer());
            network.HiddenLayers.Add(new NarrowLayer());
            network.HiddenLayers.Add(new PerceptronLayer(100, 147));
            network.HiddenLayers.Add(new PerceptronLayer(50, 100));
            network.HiddenLayers.Add(new PerceptronLayer(10, 50));

            var trainer = new FCTrainer(network, 10, 1, network.DataProvider);

            trainer.Train(1000);
        }