def run_by_mode(spec_file, spec_name, lab_mode): logger.info(f'Running lab in mode: {lab_mode}') spec = spec_util.get(spec_file, spec_name) info_space = InfoSpace() analysis.save_spec(spec, info_space, unit='experiment') # '@' is reserved for 'enjoy@{prepath}' os.environ['lab_mode'] = lab_mode.split('@')[0] os.environ['PREPATH'] = util.get_prepath(spec, info_space) reload(logger) # to set PREPATH properly if lab_mode == 'search': info_space.tick('experiment') Experiment(spec, info_space).run() elif lab_mode.startswith('train'): if '@' in lab_mode: prepath = lab_mode.split('@')[1] spec, info_space = util.prepath_to_spec_info_space(prepath) else: info_space.tick('trial') Trial(spec, info_space).run() elif lab_mode.startswith('enjoy'): prepath = lab_mode.split('@')[1] spec, info_space = util.prepath_to_spec_info_space(prepath) Session(spec, info_space).run() elif lab_mode.startswith('enjoy'): prepath = lab_mode.split('@')[1] spec, info_space = util.prepath_to_spec_info_space(prepath) Session(spec, info_space).run() elif lab_mode == 'dev': spec = util.override_dev_spec(spec) info_space.tick('trial') Trial(spec, info_space).run() else: logger.warn('lab_mode not recognized; must be one of `search, train, enjoy, benchmark, dev`.')
def test_session(test_spec, test_info_space): test_info_space.tick('trial') test_info_space.tick('session') analysis.save_spec(test_spec, test_info_space, unit='trial') session = Session(test_spec, test_info_space) session_data = session.run() assert isinstance(session_data, pd.DataFrame)
def test_experiment(test_info_space): spec = spec_util.get('demo.json', 'dqn_cartpole') analysis.save_spec(spec, test_info_space, unit='experiment') spec = spec_util.override_test_spec(spec) test_info_space.tick('experiment') experiment_data = Experiment(spec, test_info_space).run() assert isinstance(experiment_data, pd.DataFrame)
def test_trial_demo(test_info_space): spec = spec_util.get('demo.json', 'dqn_cartpole') analysis.save_spec(spec, test_info_space, unit='experiment') spec = spec_util.override_test_spec(spec) spec['meta']['eval_frequency'] = 1 test_info_space.tick('trial') trial_data = Trial(spec, test_info_space).run() assert isinstance(trial_data, pd.DataFrame)
def __init__(self, spec, info_space=None): info_space = info_space or InfoSpace() init_thread_vars(spec, info_space, unit='trial') self.spec = spec self.info_space = info_space self.coor, self.index = self.info_space.get_coor_idx(self) self.session_data_dict = {} self.data = None analysis.save_spec(spec, info_space, unit='trial') logger.info(f'Initialized trial {self.index}')
def __init__(self, spec, info_space=None): info_space = info_space or InfoSpace() init_thread_vars(spec, info_space, unit='trial') self.spec = spec self.info_space = info_space self.coor, self.index = self.info_space.get_coor_idx(self) self.session_data_dict = {} self.data = None analysis.save_spec(spec, info_space, unit='trial') logger.info(f'Initialized trial {self.index}')
def __init__(self, spec, info_space): self.spec = spec self.info_space = info_space self.index = self.info_space.get('experiment') self.trial_data_dict = {} self.data = None analysis.save_spec(spec, info_space, unit='experiment') SearchClass = getattr(search, spec['meta'].get('search')) self.search = SearchClass(self) logger.info(f'Initialized experiment {self.index}')
def __init__(self, spec, info_space=None): info_space = info_space or InfoSpace() init_thread_vars(spec, info_space, unit='experiment') self.spec = spec self.info_space = info_space self.coor, self.index = self.info_space.get_coor_idx(self) self.trial_data_dict = {} self.data = None SearchClass = getattr(search, spec['meta'].get('search')) self.search = SearchClass(self) analysis.save_spec(spec, info_space, unit='experiment') logger.info(f'Initialized experiment {self.index}')
def __init__(self, spec, info_space=None): info_space = info_space or InfoSpace() init_thread_vars(spec, info_space, unit='experiment') self.spec = spec self.info_space = info_space self.coor, self.index = self.info_space.get_coor_idx(self) self.trial_data_dict = {} self.data = None SearchClass = getattr(search, spec['meta'].get('search')) self.search = SearchClass(self) analysis.save_spec(spec, info_space, unit='experiment') logger.info(f'Initialized experiment {self.index}')
def __init__(self, spec, info_space): self.spec = spec self.info_space = info_space self.index = self.info_space.get('trial') self.session_data_dict = {} self.data = None analysis.save_spec(spec, info_space, unit='trial') self.is_singleton = util.is_singleton( spec) # singleton mode as opposed to multi-agent-env space self.SessionClass = Session if self.is_singleton else SpaceSession self.mp_runner = init_run_session if self.is_singleton else init_run_space_session logger.info(f'Initialized trial {self.index}')
def test_session_total_t(test_spec, test_info_space): test_info_space.tick('trial') test_info_space.tick('session') analysis.save_spec(test_spec, test_info_space, unit='trial') spec = deepcopy(test_spec) env_spec = spec['env'][0] env_spec['max_tick'] = 30 spec['meta']['max_tick_unit'] = 'total_t' session = Session(spec, test_info_space) assert session.env.max_tick_unit == 'total_t' session_data = session.run() assert isinstance(session_data, pd.DataFrame)
def __init__(self, spec, info_space): self.spec = spec self.info_space = info_space self.index = self.info_space.get('trial') self.session_data_dict = {} self.data = None analysis.save_spec(spec, info_space, unit='trial') self.is_singleton = len(spec['agent']) == 1 and len( spec['env'] ) == 1 and spec['body'][ 'num'] == 1 # singleton mode as opposed to multi-agent-env space self.SessionClass = Session if self.is_singleton else SpaceSession logger.info(f'Initialized trial {self.index}')
def run_new_mode(spec_file, spec_name, lab_mode): '''Run to generate new data with `search, train, dev`''' spec = spec_util.get(spec_file, spec_name) info_space = InfoSpace() analysis.save_spec(spec, info_space, unit='experiment') # first save the new spec if lab_mode == 'search': info_space.tick('experiment') Experiment(spec, info_space).run() elif lab_mode.startswith('train'): info_space.tick('trial') Trial(spec, info_space).run() elif lab_mode == 'dev': spec = spec_util.override_dev_spec(spec) info_space.tick('trial') Trial(spec, info_space).run() else: raise ValueError(f'Unrecognizable lab_mode not of {TRAIN_MODES}')
def test_trial(test_spec, test_info_space): test_info_space.tick('trial') analysis.save_spec(test_spec, test_info_space, unit='trial') trial = Trial(test_spec, test_info_space) trial_data = trial.run() assert isinstance(trial_data, pd.DataFrame)