public void TestSingleOutput() { BasicNetwork network = new BasicNetwork(); network.AddLayer(new BasicLayer(null, true, 2)); network.AddLayer(new BasicLayer(new ActivationSigmoid(), true, 2)); network.AddLayer(new BasicLayer(new ActivationSigmoid(), false, 1)); network.Structure.FinalizeStructure(); (new ConsistentRandomizer(-1, 1)).Randomize(network); IMLDataSet trainingData = new BasicMLDataSet(XOR.XORInput, XOR.XORIdeal); HessianFD testFD = new HessianFD(); testFD.Init(network, trainingData); testFD.Compute(); HessianCR testCR = new HessianCR(); testCR.Init(network, trainingData); testCR.Compute(); //dump(testFD, "FD"); //dump(testCR, "CR"); Assert.IsTrue(testCR.HessianMatrix.equals(testFD.HessianMatrix, 4)); }
public void TestDualOutput() { BasicNetwork network = new BasicNetwork(); network.AddLayer(new BasicLayer(null, true, 2)); network.AddLayer(new BasicLayer(new ActivationSigmoid(), true, 2)); network.AddLayer(new BasicLayer(new ActivationSigmoid(), false, 2)); network.Structure.FinalizeStructure(); (new ConsistentRandomizer(-1, 1)).Randomize(network); IMLDataSet trainingData = new BasicMLDataSet(XOR.XORInput, XOR.XORIdeal2); HessianFD testFD = new HessianFD(); testFD.Init(network, trainingData); testFD.Compute(); //dump(testFD, "FD"); HessianCR testCR = new HessianCR(); testCR.Init(network, trainingData); testCR.Compute(); //dump(testCR, "CR"); Assert.IsTrue(testCR.HessianMatrix.equals(testFD.HessianMatrix, 4)); }