def start(self): if self.grid_search_id is not None: re_eval = True grid_search_id = self.grid_search_id else: re_eval = False grid_search_id = datetime.now().strftime("%Y-%m-%d--%H-%M-%S") self._save_gs_config(self.gs_config_path, self.dashify_logging_path, grid_search_id) self._setup_logging_environment(self.text_logging_path) gym = MLGymStarter._create_gym(process_count=self.process_count, device_ids=self.gpus, log_std_to_file=self.log_std_to_file) gs_config = YAMLConfigLoader.load(self.gs_config_path) if self.validation_mode == MLGymStarter.ValidationMode.NESTED_CV: self._save_evaluation_config(self.evaluation_config_path, self.dashify_logging_path, grid_search_id) evaluation_config = YAMLConfigLoader.load(self.evaluation_config_path) self.run_nested_cv(gym=gym, gs_config=gs_config, cv_config=evaluation_config, grid_search_id=grid_search_id, re_eval=re_eval) elif self.validation_mode == MLGymStarter.ValidationMode.CROSS_VALIDATION: self._save_evaluation_config(self.evaluation_config_path, self.dashify_logging_path, grid_search_id) evaluation_config = YAMLConfigLoader.load(self.evaluation_config_path) self.run_cross_validation(gym=gym, gs_config=gs_config, cv_config=evaluation_config, grid_search_id=grid_search_id, re_eval=re_eval) elif self.validation_mode == MLGymStarter.ValidationMode.GRID_SEARCH: self.run_grid_search(gym=gym, gs_config=gs_config, grid_search_id=grid_search_id, re_eval=re_eval) else: raise ValidationModeNotValidError self._stop_logging_environment()
def get_components_from_nested_cv(gs_path: str, cv_path: str, blueprint_type: Type[BluePrint], component_names: List[str]): gs_config = YAMLConfigLoader.load(gs_path) cv_config = YAMLConfigLoader.load(cv_path) nested_cv = ValidatorFactory.get_nested_cv( gs_config=gs_config, cv_config=cv_config, grid_search_id="bla", blue_print_type=blueprint_type) blue_print = nested_cv.create_blue_prints(blueprint_type, AbstractGymJob.Type.STANDARD, gs_config, 1, dashify_logging_path="")[0] components = blueprint_type.construct_components( config=blue_print.config, component_names=component_names, external_injection=blue_print.external_injection) return components
def create_gs_configs_from_path(config_path: str) -> List[Dict]: gs_config = YAMLConfigLoader.load(config_path) configs = GridSearch.create_gs_from_config_dict(gs_config) return configs
def full_config(self) -> Dict: directory = os.path.dirname(os.path.abspath(__file__)) config_path = os.path.join(directory, "atis_full_config.yml") config = YAMLConfigLoader.load(config_path) return config
def example_injection(self) -> Dict[str, Any]: return YAMLConfigLoader.load( "pytest/blueprints/component_factory/example_injection.yml")