コード例 #1
0
 public static void AssertActivationFunctionsEqual(Neuron.ActivationFunction left,
                                                   Neuron.ActivationFunction right, params double[] values)
 {
     foreach (var value in values)
     {
         Assert.AreEqual(left(value), right(value));
     }
 }
コード例 #2
0
ファイル: Layer.cs プロジェクト: Fylipp/mlp-cs
        public static Layer Generate(int dimension, int inputDimension, double minimumWeight = -1.0,
                                     double maximumWeight = 1, [CanBeNull] Neuron.ActivationFunction activation = null)
        {
            if (dimension < 1)
            {
                throw new ArgumentException("The layer dimension must be at least 1", nameof(dimension));
            }

            var neurons = new Neuron[dimension];

            for (var i = 0; i < dimension; i++)
            {
                neurons[i] = Neuron.Generate(inputDimension, minimumWeight, maximumWeight, activation);
            }

            return(new Layer(neurons));
        }
コード例 #3
0
ファイル: Network.cs プロジェクト: Fylipp/mlp-cs
        public static Network Generate([NotNull] int[] layerDimensions, double minimumWeight = -1.0,
                                       double maximumWeight = 1.0,
                                       [CanBeNull] Neuron.ActivationFunction activation = null)
        {
            if (layerDimensions.Length == 0)
            {
                throw new ArgumentException("There must be at least one layer", nameof(layerDimensions));
            }

            var layers = new Layer[layerDimensions.Length - 1];

            for (var layerIndex = 1; layerIndex < layerDimensions.Length; layerIndex++)
            {
                var dimension      = layerDimensions[layerIndex];
                var inputDimension = layerDimensions[layerIndex - 1];

                var layer = Layer.Generate(dimension, inputDimension, minimumWeight, maximumWeight, activation);

                layers[layerIndex - 1] = layer;
            }

            return(new Network(layerDimensions[0], layers));
        }