Ejemplo n.º 1
0
        public void OptimumHiddenUnitsCalculatorCalculatesOptimumNumberOfUnitsForTrainingPattern(int numberOfClassifications, int expectedResult) //Log2(distinctClassifications)
        {
            var trainingPatterns = new List <TrainingPattern>
            {
                new TrainingPattern(new double [] { }, new[] { 1d, 0d }),
                new TrainingPattern(new double [] { }, new[] { 1d, 0d }),
                new TrainingPattern(new double [] { }, new[] { 1d, 0d }),
                new TrainingPattern(new double [] { }, new[] { 1d, 0d }),
                new TrainingPattern(new double [] { }, new[] { 1d, 0d }),
            };

            for (var c = 1; c < numberOfClassifications; c++)
            {
                trainingPatterns.Add(new TrainingPattern(new double[] { }, new[] { 1.1d * c, 1d }));
            }

            var optimumNumberOfUnits = OptimumHiddenUnitsCalculator.CalculateFor(trainingPatterns);

            optimumNumberOfUnits.Should().Be(expectedResult);
        }
Ejemplo n.º 2
0
        public IUnitActivationCreatorAndChaining ANewLayerOfHiddenUnitsOptimizedForTrainingPatterns(IEnumerable <TrainingPattern> trainingPatterns)
        {
            var numberOfUnits = OptimumHiddenUnitsCalculator.CalculateFor(trainingPatterns);

            return(ANewLayerOfHiddenUnits(numberOfUnits));
        }