public void SetRightAdjacentLayer(Layer al) { for (int i = 0; i < al.neurons.Count; i++) { al.neurons[i].AddConnections(this.neurons); } }
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>(); }