private ACRF perTemplateTrain () { Timing timing = new Timing (); boolean hasConverged = false; ACRF miniAcrf = null; if (training == null) setupData (); for (int ti = 0; ti < tmpls.length; ti++) { ACRF.Template[] theseTmpls = new ACRF.Template[ti+1]; System.arraycopy (tmpls, 0, theseTmpls, 0, theseTmpls.length); logger.info ("***PerTemplateTrain: Round "+ti+"\n Templates: "+ CollectionUtils.dumpToString (Arrays.asList (theseTmpls), " ")); miniAcrf = new ACRF (featurePipe, theseTmpls); setupAcrf (miniAcrf); ACRFEvaluator eval = setupEvaluator ("tmpl"+ti); hasConverged = trainer.train (miniAcrf, training, null, testing, eval, perTemplateIterations); timing.tick ("PerTemplateTrain round "+ti); } // finish by training to convergence ACRFEvaluator eval = setupEvaluator ("full"); if (!hasConverged) trainer.train (miniAcrf, training, null, testing, eval, numIter); // the last acrf is the one to go with; return miniAcrf; }
private ACRF perTemplateTrain () { Timing timing = new Timing (); boolean hasConverged = false; ACRF miniAcrf = null; if (training == null) setupData (); for (int ti = 0; ti < tmpls.length; ti++) { ACRF.Template[] theseTmpls = new ACRF.Template[ti+1]; System.arraycopy (tmpls, 0, theseTmpls, 0, theseTmpls.length); logger.info ("***PerTemplateTrain: Round "+ti+"\n Templates: "+ CollectionUtils.dumpToString (Arrays.asList (theseTmpls), " ")); miniAcrf = new ACRF (featurePipe, theseTmpls); setupAcrf (miniAcrf); ACRFEvaluator eval = setupEvaluator ("tmpl"+ti); hasConverged = trainer.train (miniAcrf, training, null, testing, eval, perTemplateIterations); timing.tick ("PerTemplateTrain round "+ti); } // finish by training to convergence ACRFEvaluator eval = setupEvaluator ("full"); if (!hasConverged) trainer.train (miniAcrf, training, null, testing, eval, numIter); // the last acrf is the one to go with; return miniAcrf; }
/** * Trains a new ACRF object with the given settings. Subclasses may override this method * to implement alternative training procedures. * @return a trained ACRF */ public ACRF trainAcrf () { if (training == null) setupData (); ACRF acrf = new ACRF (featurePipe, tmpls); setupAcrf (acrf); ACRFEvaluator eval = setupEvaluator (""); trainer.train (acrf, training, null, testing, eval, numIter); return acrf; }
private ACRF perTemplateTrain () { Timing timing = new Timing (); boolean hasConverged = false; ACRF miniAcrf = null; if (training == null) setupData (); for (int ti = 0; ti < tmpls.length; ti++) { ACRF.Template[] theseTmpls = new ACRF.Template[ti+1]; System.arraycopy (tmpls, 0, theseTmpls, 0, theseTmpls.length); logger.info ("***PerTemplateTrain: Round "+ti+"\n Templates: "+ CollectionUtils.dumpToString (Arrays.asList (theseTmpls), " ")); miniAcrf = new ACRF (featurePipe, theseTmpls); setupAcrf (miniAcrf); ACRFEvaluator eval = setupEvaluator ("tmpl"+ti); hasConverged = trainer.train (miniAcrf, training, null, testing, eval, perTemplateIterations); timing.tick ("PerTemplateTrain round "+ti); } // finish by training to convergence ACRFEvaluator eval = setupEvaluator ("full"); if (!hasConverged) trainer.train (miniAcrf, training, null, testing, eval, numIter); // the last acrf is the one to go with; return miniAcrf; }
/** * Trains a new ACRF object with the given settings. Subclasses may override this method * to implement alternative training procedures. * @return a trained ACRF */ public ACRF trainAcrf () { if (training == null) setupData (); ACRF acrf = new ACRF (featurePipe, tmpls); setupAcrf (acrf); ACRFEvaluator eval = setupEvaluator (""); trainer.train (acrf, training, null, testing, eval, numIter); return acrf; }
/** * Trains a new ACRF object with the given settings. Subclasses may override this method * to implement alternative training procedures. * @return a trained ACRF */ public ACRF trainAcrf () { if (training == null) setupData (); ACRF acrf = new ACRF (featurePipe, tmpls); setupAcrf (acrf); ACRFEvaluator eval = setupEvaluator (""); trainer.train (acrf, training, null, testing, eval, numIter); return acrf; }
trainer.train (acrf, training, null, testing, 99999);
trainer.train (acrf, training, null, testing, 99999);
trainer.train (acrf, training, null, testing, 99999);
trainer.train (acrf, training, null, testing, eval, 9999); timing.tick ("Training");
public void train(Collection<Alignment> examples) { Pipe pipe = makePipe(); InstanceList instances = makeExamplesFromAligns(examples, pipe); ACRF.Template[] tmpls = new ACRF.Template[]{ new ACRF.BigramTemplate(0) // new ACRF.BigramTemplate (1), // new ACRF.PairwiseFactorTemplate (0,1), // new CrossTemplate1(0,1) }; ACRF acrf = new ACRF(pipe, tmpls); ACRFTrainer trainer = new DefaultAcrfTrainer(); acrf.setSupportedOnly(true); acrf.setGaussianPriorVariance(2.0); DefaultAcrfTrainer.LogEvaluator eval = new DefaultAcrfTrainer.LogEvaluator(); eval.setNumIterToSkip(2); trainer.train(acrf, instances, null, null, eval, 9999); }
trainer.train (acrf, training, null, testing, eval, 9999); timing.tick ("Training");
trainer.train (acrf, training, null, testing, eval, 9999); timing.tick ("Training");
public void train(Collection<Alignment> examples) { Pipe pipe = makePipe(); InstanceList instances = makeExamplesFromAligns(examples, pipe); ACRF.Template[] tmpls = new ACRF.Template[]{ new ACRF.BigramTemplate(0), new ACRF.BigramTemplate (1), new ACRF.PairwiseFactorTemplate (0,1), new CrossTemplate1(0,1) }; ACRF acrf = new ACRF(pipe, tmpls); ACRFTrainer trainer = new DefaultAcrfTrainer(); acrf.setSupportedOnly(true); acrf.setGaussianPriorVariance(2.0); DefaultAcrfTrainer.LogEvaluator eval = new DefaultAcrfTrainer.LogEvaluator(); eval.setNumIterToSkip(2); trainer.train(acrf, instances, null, null, eval, 9999); }