def run_sessions(self): logger.info('Running sessions') if util.get_lab_mode() in ( 'train', 'eval') and self.spec['meta']['max_session'] > 1: # when training a single spec over multiple sessions session_datas = self.parallelize_sessions() else: session_datas = [] for _s in range(self.spec['meta']['max_session']): self.info_space.tick('session') session = self.SessionClass(deepcopy(self.spec), deepcopy(self.info_space)) session_data = session.run() session_datas.append(session_data) if analysis.is_unfit(session_data, session): break return session_datas
def run_sessions(self): logger.info('Running sessions') info_spaces = [] for _s in range(self.spec['meta']['max_session']): self.info_space.tick('session') info_spaces.append(deepcopy(self.info_space)) if util.get_lab_mode() == 'train' and len(info_spaces) > 1: # when training a single spec over multiple sessions session_datas = util.parallelize_fn( self.init_session_and_run, info_spaces, ps.get(self.spec['meta'], 'resources.num_cpus', util.NUM_CPUS)) else: session_datas = [] for info_space in info_spaces: session_data = self.init_session_and_run(info_space) session_datas.append(session_data) if analysis.is_unfit(session_data): break return session_datas
def run(self): num_cpus = ps.get(self.spec['meta'], 'resources.num_cpus', util.NUM_CPUS) info_spaces = [] for _s in range(self.spec['meta']['max_session']): self.info_space.tick('session') info_spaces.append(deepcopy(self.info_space)) if util.get_lab_mode() == 'train' and len(info_spaces) > 1: session_datas = util.parallelize_fn(self.init_session_and_run, info_spaces, num_cpus) else: # dont parallelize when debugging to allow render session_datas = [] for info_space in info_spaces: session_data = self.init_session_and_run(info_space) session_datas.append(session_data) if analysis.is_unfit(session_data): break self.session_data_dict = { data.index[0]: data for data in session_datas } self.data = analysis.analyze_trial(self) self.close() return self.data