def load(self): logger.info("Loading AutoML models ...") try: params = json.load(open(os.path.join(self._results_path, "params.json"))) self._model_paths = params["saved"] self._ml_task = params["ml_task"] self._optimize_metric = params["optimize_metric"] models_map = {} for model_path in self._model_paths: if model_path.endswith("ensemble"): ens = Ensemble.load(model_path, models_map) models_map[ens.get_name()] = ens else: m = ModelFramework.load(model_path) self._models += [m] models_map[m.get_name()] = m best_model_name = None with open(os.path.join(self._results_path, "best_model.txt"), "r") as fin: best_model_name = fin.read() self._best_model = models_map[best_model_name] data_info_path = os.path.join(self._results_path, "data_info.json") self._data_info = json.load(open(data_info_path)) except Exception as e: raise AutoMLException(f"Cannot load AutoML directory. {str(e)}")
def load(self, path): logger.info("Loading AutoML models ...") try: params = json.load(open(os.path.join(path, "params.json"))) self._model_paths = params["saved"] self._ml_task = params["ml_task"] self._eval_metric = params["eval_metric"] stacked_models = params.get("stacked") models_map = {} for model_path in self._model_paths: if model_path.endswith("Ensemble") or model_path.endswith( "Ensemble_Stacked" ): ens = Ensemble.load(model_path, models_map) self._models += [ens] models_map[ens.get_name()] = ens else: m = ModelFramework.load(model_path) self._models += [m] models_map[m.get_name()] = m if stacked_models is not None: self._stacked_models = [] for stacked_model_name in stacked_models: self._stacked_models += [models_map[stacked_model_name]] best_model_name = None with open(os.path.join(path, "best_model.txt"), "r") as fin: best_model_name = fin.read() self._best_model = models_map[best_model_name] data_info_path = os.path.join(path, "data_info.json") self._data_info = json.load(open(data_info_path)) self.n_features_in_ = self._data_info["n_features"] if "n_classes" in self._data_info: self.n_classes = self._data_info["n_classes"] self._fit_level = "finished" except Exception as e: raise AutoMLException(f"Cannot load AutoML directory. {str(e)}")