def yield_runs(): # build solvers and train / test sets if live: domain = borg.get_domain(domain_name) else: domain = FakeDomain(borg.get_domain(domain_name)) paths = list(cargo.files_under(tasks_root, domain.extensions)) examples = int(round(len(paths) * 0.50)) logger.info("found %i tasks", len(paths)) if tests_root is not None: tests_root_paths = list(cargo.files_under(tests_root, domain.extensions)) # build validation runs for _ in xrange(runs): split = uuid.uuid4() shuffled = sorted(paths, key = lambda _ : numpy.random.rand()) train_paths = shuffled[:examples] if tests_root is None: test_paths = shuffled[examples:] else: test_paths = tests_root_paths for name in borg.portfolios.named: yield (run_validation, [name, domain, train_paths, test_paths, budget, split])
def __init__(self, tasks_roots, domain): """Initialize.""" # scan for CSV files train_paths = [] for tasks_root in tasks_roots: train_paths.extend(cargo.files_under(tasks_root, domain.extensions)) logger.info("using %i tasks for training", len(train_paths)) # fetch training data from each file self._run_lists = {} self._feature_vectors = {} for path in train_paths: # load run records run_data = numpy.recfromcsv("{0}.runs.csv".format(path), usemask = True) run_list = [] for (run_solver, run_budget, run_cost, run_succeeded, run_answer) in run_data.tolist(): record = RunRecord(run_solver, run_budget, run_cost, run_succeeded) run_list.append(record) self._run_lists[path] = run_list # load feature data feature_vector = numpy.recfromcsv("{0}.features.csv".format(path)).tolist() self._feature_vectors[path] = feature_vector
def yield_runs(): bundle = borg.load_solvers(solvers_path) paths = list(cargo.files_under(tasks_root, bundle.domain.extensions)) if not paths: raise ValueError("no paths found under specified root") if only_solver is None: solver_names = bundle.solvers.keys() else: if only_solver not in bundle.solvers: raise ArgumentError("no such solver") solver_names = [only_solver] for _ in xrange(runs): for solver_name in solver_names: for path in paths: yield (run_solver_on, [solvers_path, solver_name, path, budget])
def yield_runs(): domain = borg.get_domain(domain_name) paths = list(cargo.files_under(tasks_root, domain.extensions)) for path in paths: yield (features_for_path, [domain, path])