public void testSpaceMaximizable () { Pipe p = makeSpacePredictionPipe (); InstanceList training = new InstanceList (p); // String[] data = { TestMEMM.data[0], }; // TestMEMM.data[1], TestMEMM.data[2], TestMEMM.data[3], }; // String[] data = { "ab" }; training.addThruPipe (new ArrayIterator (data)); // CRF4 memm = new CRF4 (p, null); MEMM memm = new MEMM (p, null); memm.addFullyConnectedStatesForLabels (); memm.addStartState(); memm.setWeightsDimensionAsIn(training); MEMMTrainer memmt = new MEMMTrainer (memm); // memm.gatherTrainingSets (training); // ANNOYING: Need to set up per-instance training sets memmt.train (training, 1); // Set weights dimension, gathers training sets, etc. // memm.print(); // memm.printGradient = true; // memm.printInstanceLists(); // memm.setGaussianPriorVariance (Double.POSITIVE_INFINITY); Optimizable.ByGradientValue mcrf = memmt.getOptimizableMEMM(training); TestOptimizable.setNumComponents (150); TestOptimizable.testValueAndGradient (mcrf); }
public void testSpaceMaximizable () { Pipe p = makeSpacePredictionPipe (); InstanceList training = new InstanceList (p); // String[] data = { TestMEMM.data[0], }; // TestMEMM.data[1], TestMEMM.data[2], TestMEMM.data[3], }; // String[] data = { "ab" }; training.addThruPipe (new ArrayIterator (data)); // CRF4 memm = new CRF4 (p, null); MEMM memm = new MEMM (p, null); memm.addFullyConnectedStatesForLabels (); memm.addStartState(); memm.setWeightsDimensionAsIn(training); MEMMTrainer memmt = new MEMMTrainer (memm); // memm.gatherTrainingSets (training); // ANNOYING: Need to set up per-instance training sets memmt.train (training, 1); // Set weights dimension, gathers training sets, etc. // memm.print(); // memm.printGradient = true; // memm.printInstanceLists(); // memm.setGaussianPriorVariance (Double.POSITIVE_INFINITY); Optimizable.ByGradientValue mcrf = memmt.getOptimizableMEMM(training); TestOptimizable.setNumComponents (150); TestOptimizable.testValueAndGradient (mcrf); }