Do not collect training data during benchmarks

pull/1/head
Alinson S. Xavier 6 years ago
parent 2a6f8fbfe6
commit 82dfe20001

@ -27,7 +27,8 @@ class BenchmarkRunner:
for (name, solver) in self.solvers.items(): for (name, solver) in self.solvers.items():
results = solver.parallel_solve(instances, results = solver.parallel_solve(instances,
n_jobs=n_jobs, n_jobs=n_jobs,
label=name) label=name,
collect_training_data=False)
for i in range(len(instances)): for i in range(len(instances)):
wallclock_time = None wallclock_time = None
for key in ["Time", "Wall time", "Wallclock time"]: for key in ["Time", "Wall time", "Wallclock time"]:

@ -55,9 +55,6 @@ class LearningSolver:
self.internal_solver = self.internal_solver_factory() self.internal_solver = self.internal_solver_factory()
self.is_persistent = hasattr(self.internal_solver, "set_instance") self.is_persistent = hasattr(self.internal_solver, "set_instance")
def _clear(self):
self.internal_solver = None
def solve(self, instance, tee=False): def solve(self, instance, tee=False):
model = instance.to_model() model = instance.to_model()
@ -80,13 +77,20 @@ class LearningSolver:
return solve_results return solve_results
def parallel_solve(self, instances, n_jobs=4, label="Solve"): def parallel_solve(self,
self._clear() instances,
n_jobs=4,
label="Solve",
collect_training_data=True,
):
self.internal_solver = None
def _process(instance): def _process(instance):
solver = deepcopy(self) solver = deepcopy(self)
results = solver.solve(instance) results = solver.solve(instance)
solver._clear() solver.internal_solver = None
if not collect_training_data:
solver.components = {}
return solver, results return solver, results
solver_result_pairs = Parallel(n_jobs=n_jobs)( solver_result_pairs = Parallel(n_jobs=n_jobs)(

Loading…
Cancel
Save