Esempio n. 1
0
 public void SetRightAdjacentLayer(Layer al)
 {
     for (int i = 0; i < al.neurons.Count; i++)
     {
         al.neurons[i].AddConnections(this.neurons);
     }
 }
Esempio n. 2
0
        public MLP(Settings Configuration)
        {
            this.settings = Configuration;
            layers = new List<Layer>();
            try
            {
                this.EpochToStop = (int)Configuration["EpochToStop"];
                this.ErrorToStop = (double)Configuration["ErrorToStop"];
                this.Momentum = (double)Configuration["Momentum"];
                this.LerningRateDownStep = (double)Configuration["LearningRateDownStep"];
                this.LerningRateUpStep = (double)Configuration["LearningRateUpStep"];
                this.ErrorThresholdPercent = (int)Configuration["ErrorThresholdPercent"];
                this.EpochPreventOverfitting = (int)Configuration["EpochPreventOverfitting"];

                ITransferFunction tranferFunc = (ITransferFunction)Assembly.
                    GetExecutingAssembly().CreateInstance("MLP.Network.TransferFunctions."
                    + Configuration["TransferFunction"]);

                int NumberOfLayers = (int)Configuration["NumberOfLayers"];

                for (int i = 1; i <= NumberOfLayers; i++)
                {
                    int NumberOfNeurons = (int)Configuration["NeuronsOfLayer[" + i + "]"];
                    Layer l = new Layer(NumberOfNeurons, tranferFunc);
                    this.layers.Add(l);
                }
                for (int i = 0; i < NumberOfLayers - 1; i++)
                {
                    layers[i].SetRightAdjacentLayer(layers[i + 1]);
                }
                Eta = (double)Configuration["LearningRate"];//1.0E-3; //1.0x10^-3

            }
            catch (Exception e)
            {
                throw e;
            }

            _errorEachEpoch = new List<double>();
            _errorOnValidation = new List<double>();
        }