Esempio n. 1
0
        public void DerivativeAndNandNoRegularizationTest()
        {
            var net    = NetBuilder.CreateAndNandNet();
            var func   = net.CostFunction;
            var inputs = DenseMatrix.OfArray(new double[, ] {
                { 0, 0 }, { 0, 1 }, { 1, 0 }, { 1, 1 }
            });
            {
                var outputIndices = new int[] { 1, 1, 1, 0 };
                func.SetInputsOutputs(inputs, outputIndices, 0);
                int dims = func.DimensionsCount;

                var rand = new Random(0);
                FunctionDerivativeTester.PerformDerivativeTest(func,
                                                               Enumerable.Range(0, 100).Select(x =>
                                                                                               Enumerable.Range(0, dims).Select(y => rand.NextDouble() * 10 - 5).ToArray()
                                                                                               ).ToArray()
                                                               );
            }
            {
                var outputIndices = new int[] { 0, 0, 0, 1 };
                func.SetInputsOutputs(inputs, outputIndices, 0);
                int dims = func.DimensionsCount;

                var rand = new Random(0);
                FunctionDerivativeTester.PerformDerivativeTest(func,
                                                               Enumerable.Range(0, 100).Select(x =>
                                                                                               Enumerable.Range(0, dims).Select(y => rand.NextDouble() * 10 - 5).ToArray()
                                                                                               ).ToArray()
                                                               );
            }
        }
Esempio n. 2
0
        public void DerivativeDeepNetTest()
        {
            var net    = new Net(new NetLayout(5, 10, 5, 7, 2), new SigomidActivationFunc(), new NetCostFunction());
            var inputs = DenseMatrix.OfArray(new double[, ] {
                { 0, 0, 1, 0, 0 },
                { 1, 1, 0, 1, 1 },
                { 1, 0, 0, 1, 0 },
                { 1, 0, 1, 0, 1 },
                { 0, 1, 0, 1, 0 },
            });
            var outputIndices = new int[] { 0, 1, 0, 0, 1 };

            net.CostFunction.SetInputsOutputs(inputs, outputIndices, 0);
            int dims = net.CostFunction.DimensionsCount;

            var rand = new Random(0);

            FunctionDerivativeTester.PerformDerivativeTest(net.CostFunction,
                                                           Enumerable.Range(0, 20).Select(x =>
                                                                                          Enumerable.Range(0, dims).Select(y => rand.NextDouble() * 10 - 5).ToArray()
                                                                                          ).ToArray()
                                                           );
        }
 public void SigomidDerivativeTest()
 {
     FunctionDerivativeTester.PerformDerivativeTest(new SigomidActivationFunc(),
                                                    Enumerable.Range(-100, 200).Select(x => new double[] { x / 10.0 }).ToArray());
 }