Beispiel #1
0
        public void PerformEpochAndAssert()
        {
            var trainingData = TrainingDataSet.For(inputs, outputs);
            var errorRate    = trainingMethod.PerformSingleEpochProducingErrorRate(trainingData);

            AssertResultOfTrainingEpoch(errorRate);
        }
        public BackPropagationPerformanceComparisonContainer()
        {
            var neuralNetworkUnderTest =
                NeuralNetwork
                .For(NeuralNetworkContext.MaximumPrecision)
                .WithInputLayer(neuronCount: 5, activationType: ActivationType.Sigmoid)
                .WithHiddenLayer(neuronCount: 100, activationType: ActivationType.Sigmoid)
                .WithHiddenLayer(neuronCount: 70, activationType: ActivationType.TanH)
                .WithHiddenLayer(neuronCount: 40, activationType: ActivationType.TanH)
                .WithHiddenLayer(neuronCount: 100, activationType: ActivationType.Sigmoid)
                .WithOutputLayer(neuronCount: 2, activationType: ActivationType.Sigmoid)
                .Build();

            trainingData = new[] {
                TrainingDataSet.For(new [] { 0.78, 0.99, 0.67, 0.72, 0.22 }, new [] { 0.12, 0.14 })
            };

            multiThreadedController = TrainingController.For(
                BackPropagation
                .WithConfiguration(neuralNetworkUnderTest, ParallelOptionsExtensions.UnrestrictedMultiThreadedOptions));

            singleThreadedController = TrainingController.For(
                BackPropagation
                .WithConfiguration(neuralNetworkUnderTest, ParallelOptionsExtensions.SingleThreadedOptions));
        }
        public static TrainingDataSet TrainingDataFromRow(IrisDataRow row)
        {
            var species = Enumerable.Repeat(0.0, 3).ToArray();

            species[Convert.ToInt32(row.Species) - 1] = 1.0;

            return(TrainingDataSet.For(
                       row.PredictionDataPoints,
                       species.ToArray()));
        }
        public static TrainingDataSet ToTrainingData(this BankTransaction bankTransaction)
        {
            var inputs = bankTransaction.ToNetworkInputData();

            var outputs = Enumerable.Repeat(0.0, 2).ToList();

            outputs[Convert.ToInt32(bankTransaction.Class)] = 1;

            return(TrainingDataSet.For(inputs.ToArray(), outputs.ToArray()));
        }
        private static List <TrainingDataSet> GetMyTrainingData()
        {
            // 2 tableaux
            // inputs : double[22][64]
            // outputs : double[22][3]

            string filename = BASEFOLDER + "Base.txt";

            string[] lines = File.ReadAllLines(filename); // lines va contenir 44 lines

            int nbSamples = lines.Length / 2;             // 22 exemples

            double[][] inputs  = new double[nbSamples][];
            double[][] outputs = new double[nbSamples][];

            for (int i = 0; i < nbSamples; i++)
            {
                inputs[i]  = new double[64];    // inputs[i] est de type double[]
                outputs[i] = new double[3];

                // lines[2*i+0] contient la string "0000010101001001001010101010"
                // lines[2*i+1] contient la string "C"

                int k = 0;
                foreach (char c in lines[2 * i])
                {
                    if (c == '0')
                    {
                        inputs[i][k] = 0.0;
                    }

                    if (c == '1')
                    {
                        inputs[i][k] = 1.0;
                    }

                    k++;
                }

                if (lines[2 * i + 1] == "A")
                {
                    outputs[i][0] = 1.0; outputs[i][1] = 0.0; outputs[i][2] = 0.0;
                }
                if (lines[2 * i + 1] == "B")
                {
                    outputs[i][0] = 0.0; outputs[i][1] = 1.0; outputs[i][2] = 0.0;
                }
                if (lines[2 * i + 1] == "C")
                {
                    outputs[i][0] = 0.0; outputs[i][1] = 0.0; outputs[i][2] = 1.0;
                }
            }

            return(inputs.Select((input, i) => TrainingDataSet.For(input, outputs[i])).ToList());
        }
Beispiel #6
0
        private static List <TrainingDataSet> GetXorTrainingData()
        {
            var inputs = new[]
            {
                new[] { 0.0, 0.0 }, new[] { 0.0, 1.0 }, new[] { 1.0, 0.0 }, new[] { 1.0, 1.0 }
            };

            var outputs = new[]
            {
                new[] { 0.0 }, new[] { 1.0 }, new[] { 1.0 }, new[] { 0.0 }
            };

            return(inputs.Select((input, i) => TrainingDataSet.For(input, outputs[i])).ToList());
        }
 public static IEnumerable <TrainingDataSet> BuildTrainingDataForAllInputs(
     IEnumerable <double[]> inputs,
     IEnumerable <double[]> outputs)
 {
     return(inputs.Zip(outputs, (input, output) => TrainingDataSet.For(input, output)));
 }