Ejemplo n.º 1
0
 public override double TestOnDataSet(SamplesSet testSet)
 {
     for (int i = 0; i < testSet.Count; i++)
     {
         var sample = testSet.samples[i];
         Calculate(ref sample);
         sample.processOutput();
     }
     return(testSet.ErrorsCount());
 }
Ejemplo n.º 2
0
        public SamplesSet GenerateSet()
        {
            SamplesSet res = new SamplesSet();

            for (int i = 0; i < Config.current.figures.Count; i++)
            {
                var sel  = Config.current.figures[i];
                int take = Math.Min(files[sel].Length, Config.current.training_size);
                //foreach(var el in files[sel].OrderBy(x => rand.Next()).Take(take))
                Parallel.ForEach(files[sel].OrderBy(x => rand.Next()).Take(take), el =>
                {
                    res.AddSample(process_output(fillImage(new Bitmap(el)), i));
                });
            }
            res.samples = res.samples.OrderBy(x => rand.Next()).ToList();
            return(res);
        }
Ejemplo n.º 3
0
        public override double TrainOnDataSet(SamplesSet samplesSet, int epochs_count, double acceptable_erorr, bool parallel = true)
        {
            double error = 0;

            stopWatch.Restart();
            for (int i = 0; i < epochs_count; i++)
            {
                error = 0;
                for (int j = 0; j < samplesSet.Count; j++)
                {
                    var sample = samplesSet[j];
                    Calculate(ref sample, parallel);
                    sample.processOutput();
                    error += sample.EstimatedError();
                    BackwardError(sample, parallel);
                }
                if (error < acceptable_erorr)
                {
                    break;
                }
            }
            return(error);
        }
Ejemplo n.º 4
0
 public abstract double TestOnDataSet(SamplesSet testSet);
Ejemplo n.º 5
0
 public abstract double TrainOnDataSet(SamplesSet samplesSet, int epochs_count, double acceptable_erorr, bool parallel = true);