Ejemplo n.º 1
0
        public void Build(int inputsCount, 
            int[] hiddenLayersSpec, 
            int outputsCount, 
            ActivationFunction activationFunction,
            double maximumAbsoluteWeight)
        {
            layers = new List<ILayer>();
            inputLayer = new InputLayer();
            for (int i = 0; i < inputsCount; i++)
                inputLayer.AddNeuron(new Neuron());

            isBipolar = activationFunction == Neuron.BipolarActivationFunction;
            layers.Add((Layer)inputLayer);

            if (hiddenLayersSpec != null)
                for (int i = 0; i < hiddenLayersSpec.Length; i++)
                {
                    ILayer layer = new Layer();
                    for (int j = 0; j < hiddenLayersSpec[i]; j++)
                    {
                        layer.AddNeuron(new Neuron(activationFunction));
                    }
                    layers.Add(layer);
                }

            outputLayer = new Layer();
            for (int i = 0; i < outputsCount; i++)
            {
                outputLayer.AddNeuron(new Neuron(activationFunction));
            }
            layers.Add(outputLayer);

            ConnectLayers(maximumAbsoluteWeight);
        }