def __init__(self, spec, global_nets=None): self.spec = spec self.index = self.spec['meta']['session'] util.set_random_seed(self.spec) util.set_cuda_id(self.spec) util.set_logger(self.spec, logger, 'session') spec_util.save(spec, unit='session') self.agent, self.env = make_agent_env(self.spec, global_nets) with util.ctx_lab_mode('eval'): # env for eval self.eval_env = make_env(self.spec) self.agent.body.eval_env = self.eval_env self.num_eval = ps.get(self.agent.spec, 'meta.num_eval') self.warmup_epi = ps.get(self.agent.agent_spec, 'algorithm.warmup_epi') or -1 logger.info(util.self_desc(self))
def run_spec(spec, lab_mode): '''Run a spec in lab_mode''' os.environ['lab_mode'] = lab_mode if lab_mode in TRAIN_MODES: spec_util.save(spec) # first save the new spec if lab_mode == 'dev': spec = spec_util.override_dev_spec(spec) if lab_mode == 'search': spec_util.tick(spec, 'experiment') Experiment(spec).run() else: spec_util.tick(spec, 'trial') Trial(spec).run() elif lab_mode in EVAL_MODES: spec_util.tick(spec, 'session') spec = spec_util.override_eval_spec(spec) Session(spec).run() else: print("%s".format(EVAL_MODES)) raise ValueError(f'Unrecognizable lab_mode not of {TRAIN_MODES} or {EVAL_MODES}')
def __init__(self, spec): self.spec = spec self.index = self.spec['meta']['experiment'] util.set_logger(self.spec, logger, 'trial') spec_util.save(spec, unit='experiment')