def test_load_data2(self):
     surrogate = 'data2'
     l = lookup.load(surrogate)
     lrs = l.get_accuracies_per_epoch()
     self.assertEqual(20000, len(lrs))
     lr = lrs.ix[0].tolist()
     self.assertEqual(15, len(lr))
Ejemplo n.º 2
0
    def add(self, args):
        job_id = None
        # TODO: validate parameters
        try:
            dataset = args['dataset']  # e.g. MNIST, CIFAR-10,
            model = args['model']  # LeNet, VGG, LSTM, ...
            hpv = args['hyperparams']  # refer to data*.json for keys
            cfg = args['config']  # max_iter, ...
            f = TrainingJobFactory(self.worker, self.jobs)
            job = f.create(dataset, model, hpv, cfg)
            job_id = job['job_id']

            self.jobs.append(job)
            debug("Job appended properly.")

            worker = None
            if self.use_surrogate and "surrogate" in cfg:
                s = cfg['surrogate']
                l = lookup.load(s)
                ffr = None
                if "ffr" in cfg:
                    ffr = cfg['ffr']
                worker = SurrogateEvaluator(s, l, time_slip_rate=ffr)
            else:
                worker = self.worker

            max_epoch = None
            if "max_epoch" in cfg:
                max_epoch = cfg['max_epoch']
                worker.set_max_iters(max_epoch, "epoch")
            elif "max_iter" in cfg:
                max_iter = cfg['max_iter']
                iter_unit = "epoch"
                if "iter_unit" in cfg:
                    iter_unit = cfg['iter_unit']
                worker.set_max_iters(max_iter, iter_unit)

            cand_index = None
            if 'cand_index' in cfg:
                cand_index = cfg['cand_index']

            if worker.set_job_description(hpv, cand_index, job_id):
                job['status'] = 'assigned'
                self.work_item = {
                    "worker": worker,
                    "job_id": job_id,
                    "cand_index": cand_index,
                    "hyperparams": hpv
                }
                debug("Work item created properly.")
            else:
                debug("Invalid hyperparam vector: {}".format(hpv))
                raise ValueError("Invalid hyperparameters")

        except Exception as ex:
            #debug("invalid arguments: {}, {}, {}, {}".format(dataset, model, hpv, cfg))
            warn("Adding job {} failed: {}".format(job, ex))
            raise ValueError("Invalid job description")
        finally:
            return job_id
Ejemplo n.º 3
0
def create_surrogate_space(surrogate, grid_order=None, one_hot=False):
    l = lookup.load(surrogate, grid_order=grid_order)
    s = SurrogatesSpace(l, one_hot=one_hot)
    debug("Surrogate model created: {}".format(surrogate))
    return s
Ejemplo n.º 4
0
 def __init__(self, surrogate, **kwargs):
     self.name = "LR_{}".format(surrogate)
     l = lookup.load(surrogate)
     if l == None:
         raise TypeError("Fail to load surrogate")
     self.lrs = l.get_accuracies_per_epoch()
Ejemplo n.º 5
0
def create_space_from_table(surrogate_name, grid_order=None):
    
    l = lookup.load(surrogate_name, grid_order=grid_order)
    s = SurrogatesSpace(l)
    debug("Surrogate model created: {}".format(surrogate_name))
    return s