コード例 #1
0
 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
コード例 #2
0
ファイル: control.py プロジェクト: xiangshengcn/SLM-Lab
    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
コード例 #3
0
 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