use of edu.cmu.ml.proppr.util.StatusLogger in project ProPPR by TeamCohen.
the class CachingTrainer method train.
@Override
public ParamVector<String, ?> train(SymbolTable<String> masterFeatures, Iterable<String> exampleFile, LearningGraphBuilder builder, ParamVector<String, ?> initialParamVec, int numEpochs) {
ArrayList<PosNegRWExample> examples = new ArrayList<PosNegRWExample>();
RWExampleParser parser = new RWExampleParser();
if (masterFeatures.size() > 0)
LearningGraphBuilder.setFeatures(masterFeatures);
int id = 0;
StatusLogger stattime = new StatusLogger();
TrainingStatistics total = new TrainingStatistics();
boolean logged = false;
for (String s : exampleFile) {
total.updateReadingStatistics(stattime.sinceLast());
id++;
try {
stattime.tick();
PosNegRWExample ex = parser.parse(s, builder, masterLearner);
total.updateParsingStatistics(stattime.sinceLast());
examples.add(ex);
if (status.due()) {
log.info("Parsed " + id + " ...");
logged = true;
}
} catch (GraphFormatException e) {
log.error("Trouble with #" + id, e);
}
stattime.tick();
}
if (logged)
log.info("Total parsed: " + id);
return trainCached(examples, builder, initialParamVec, numEpochs, total);
}
use of edu.cmu.ml.proppr.util.StatusLogger in project ProPPR by TeamCohen.
the class SimpleProgramProverTest method test.
@Test
public void test() throws IOException, LogicProgramException {
WamProgram program = WamBaseProgram.load(new File(PROGRAM));
Query q = new Query(new Goal("coworker", new ConstantArgument("steve"), new ConstantArgument("X")));
System.out.println("Query: " + q.toString());
ProofGraph p = new StateProofGraph(q, apr, program);
Prover prover = new DfsProver(apr);
Map<String, Double> sols = prover.solutions(p, new StatusLogger());
assertEquals(2, sols.size());
HashMap<String, Integer> expected = new HashMap<String, Integer>();
expected.put("steve", 0);
expected.put("sven", 0);
System.out.println("Query: " + q.toString());
for (String pair : sols.keySet()) {
System.out.println(pair);
String[] parts = pair.split(":");
String v = parts[1];
System.out.println("Got solution: " + v);
if (expected.containsKey(v))
expected.put(v, expected.get(v) + 1);
}
for (Map.Entry<String, Integer> e : expected.entrySet()) assertEquals(e.getKey(), 1, e.getValue().intValue());
}
use of edu.cmu.ml.proppr.util.StatusLogger in project ProPPR by TeamCohen.
the class FactsPluginTest method test.
@Test
public void test() throws LogicProgramException {
APROptions apr = new APROptions();
FactsPlugin p = FactsPlugin.load(apr, new File(GrounderTest.FACTS), false);
WamProgram program = new WamBaseProgram();
Query q = Query.parse("validClass(X)");
StateProofGraph pg = new StateProofGraph(q, apr, program, p);
Prover prover = new DprProver();
Map<String, Double> sols = prover.solutions(pg, new StatusLogger());
assertEquals(2, sols.size());
}
Aggregations