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() ); } }
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()); }