@Override public void close() { trainWithBufferedExamples(); try { ep.parallelDo(new EvolutionaryProcess.Function<Payload<CrossFoldLearner>>() { @Override public double apply(Payload<CrossFoldLearner> payload, double[] params) { CrossFoldLearner learner = ((Wrapper) payload).getLearner(); learner.close(); return learner.logLikelihood(); } }); } catch (InterruptedException e) { log.warn("Ignoring exception", e); } catch (ExecutionException e) { throw new IllegalStateException(e); } finally { ep.close(); } }
@Override public void close() { trainWithBufferedExamples(); try { ep.parallelDo(new EvolutionaryProcess.Function<Payload<CrossFoldLearner>>() { @Override public double apply(Payload<CrossFoldLearner> payload, double[] params) { CrossFoldLearner learner = ((Wrapper) payload).getLearner(); learner.close(); return learner.logLikelihood(); } }); } catch (InterruptedException e) { log.warn("Ignoring exception", e); } catch (ExecutionException e) { throw new IllegalStateException(e); } finally { ep.close(); } }
@Override public void close() { trainWithBufferedExamples(); try { ep.parallelDo(new EvolutionaryProcess.Function<Payload<CrossFoldLearner>>() { @Override public double apply(Payload<CrossFoldLearner> payload, double[] params) { CrossFoldLearner learner = ((Wrapper) payload).getLearner(); learner.close(); return learner.logLikelihood(); } }); } catch (InterruptedException e) { log.warn("Ignoring exception", e); } catch (ExecutionException e) { throw new IllegalStateException(e); } finally { ep.close(); } }
private void trainWithBufferedExamples() { try { this.best = ep.parallelDo(new EvolutionaryProcess.Function<Payload<CrossFoldLearner>>() { @Override public double apply(Payload<CrossFoldLearner> z, double[] params) {
private void trainWithBufferedExamples() { try { this.best = ep.parallelDo(new EvolutionaryProcess.Function<Payload<CrossFoldLearner>>() { @Override public double apply(Payload<CrossFoldLearner> z, double[] params) {
private void trainWithBufferedExamples() { try { this.best = ep.parallelDo(new EvolutionaryProcess.Function<Payload<CrossFoldLearner>>() { @Override public double apply(Payload<CrossFoldLearner> z, double[] params) {
@Test public void testConverges() throws Exception { State<Foo, Double> s0 = new State<Foo, Double>(new double[5], 1); s0.setPayload(new Foo()); EvolutionaryProcess<Foo, Double> ep = new EvolutionaryProcess<Foo, Double>(10, 100, s0); State<Foo, Double> best = null; for (int i = 0; i < 20; i++) { best = ep.parallelDo(new EvolutionaryProcess.Function<Payload<Double>>() { @Override public double apply(Payload<Double> payload, double[] params) { int i = 1; double sum = 0; for (double x : params) { sum += i * (x - i) * (x - i); i++; } return -sum; } }); ep.mutatePopulation(3); System.out.printf("%10.3f %.3f\n", best.getValue(), best.getOmni()); } ep.close(); assertNotNull(best); assertEquals(0.0, best.getValue(), 0.02); }