Replies: 1 comment
-
Your system must not be supporting Ray. I faced similar problem when using Autogluon on WSL |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
when I train and fit:
Fitting model: NeuralNetTorch_BAG_L1 ... Training model for up to 57.11s of the 357.21s of remaining time.
Fitting 8 child models (S1F1 - S1F8) | Fitting with ParallelLocalFoldFittingStrategy (1 workers, per: cpus=10, gpus=0, memory=0.16%)
Warning: Exception caused NeuralNetTorch_BAG_L1 to fail during training... Skipping this model.
ray::_ray_fit() (pid=16372, ip=127.0.0.1)
File "python\ray_raylet.pyx", line 1424, in ray._raylet.execute_task
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\fold_fitting_strategy.py", line 402, in _ray_fit
fold_model.fit(X=X_fold, y=y_fold, X_val=X_val_fold, y_val=y_val_fold, time_limit=time_limit_fold, **resources, **kwargs_fold)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\abstract\abstract_model.py", line 854, in fit
out = self._fit(**kwargs)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\tabular\models\tabular_nn\torch\tabular_nn_torch.py", line 208, in _fit
self._train_net(
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\tabular\models\tabular_nn\torch\tabular_nn_torch.py", line 360, in _train_net
torch.save(self.model, net_filename)
File "d:\miniconda3\envs\power\lib\site-packages\torch\serialization.py", line 440, in save
with _open_zipfile_writer(f) as opened_zipfile:
File "d:\miniconda3\envs\power\lib\site-packages\torch\serialization.py", line 315, in _open_zipfile_writer
return container(name_or_buffer)
File "d:\miniconda3\envs\power\lib\site-packages\torch\serialization.py", line 288, in init
super().init(torch._C.PyTorchFileWriter(str(name)))
RuntimeError: Parent directory D:/workspace/forecast2/数据库/模型库/models_v1/forecast_day_ahead_category/ds_sub_fit does not exist.
Detailed Traceback:
Traceback (most recent call last):
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\trainer\abstract_trainer.py", line 1817, in _train_and_save
model = self._train_single(X, y, model, X_val, y_val, total_resources=total_resources, **model_fit_kwargs)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\trainer\abstract_trainer.py", line 1763, in _train_single
model = model.fit(X=X, y=y, X_val=X_val, y_val=y_val, total_resources=total_resources, **model_fit_kwargs)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\abstract\abstract_model.py", line 854, in fit
out = self._fit(**kwargs)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\stacker_ensemble_model.py", line 165, in _fit
return super()._fit(X=X, y=y, time_limit=time_limit, **kwargs)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\bagged_ensemble_model.py", line 273, in _fit
self._fit_folds(
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\bagged_ensemble_model.py", line 689, in _fit_folds
fold_fitting_strategy.after_all_folds_scheduled()
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\fold_fitting_strategy.py", line 661, in after_all_folds_scheduled
self._run_parallel(X, y, X_pseudo, y_pseudo, model_base_ref, time_limit_fold, head_node_id)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\fold_fitting_strategy.py", line 603, in _run_parallel
self._process_fold_results(finished, unfinished, fold_ctx)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\fold_fitting_strategy.py", line 566, in _process_fold_results
raise processed_exception
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\fold_fitting_strategy.py", line 532, in _process_fold_results
fold_model, pred_proba, time_start_fit, time_end_fit, predict_time, predict_1_time = self.ray.get(finished)
File "d:\miniconda3\envs\power\lib\site-packages\ray_private\auto_init_hook.py", line 24, in auto_init_wrapper
return fn(*args, **kwargs)
File "d:\miniconda3\envs\power\lib\site-packages\ray_private\client_mode_hook.py", line 103, in wrapper
return func(*args, **kwargs)
File "d:\miniconda3\envs\power\lib\site-packages\ray_private\worker.py", line 2524, in get
raise value.as_instanceof_cause()
ray.exceptions.RayTaskError(RuntimeError): ray::_ray_fit() (pid=16372, ip=127.0.0.1)
File "python\ray_raylet.pyx", line 1424, in ray._raylet.execute_task
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\fold_fitting_strategy.py", line 402, in _ray_fit
fold_model.fit(X=X_fold, y=y_fold, X_val=X_val_fold, y_val=y_val_fold, time_limit=time_limit_fold, **resources, **kwargs_fold)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\abstract\abstract_model.py", line 854, in fit
out = self._fit(**kwargs)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\tabular\models\tabular_nn\torch\tabular_nn_torch.py", line 208, in _fit
self._train_net(
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\tabular\models\tabular_nn\torch\tabular_nn_torch.py", line 360, in _train_net
torch.save(self.model, net_filename)
File "d:\miniconda3\envs\power\lib\site-packages\torch\serialization.py", line 440, in save
with _open_zipfile_writer(f) as opened_zipfile:
File "d:\miniconda3\envs\power\lib\site-packages\torch\serialization.py", line 315, in _open_zipfile_writer
return container(name_or_buffer)
File "d:\miniconda3\envs\power\lib\site-packages\torch\serialization.py", line 288, in init
super().init(torch._C.PyTorchFileWriter(str(name)))
RuntimeError: Parent directory D:/workspace/forecast2/数据库/模型库/models_v1/forecast_day_ahead_category/ds_sub_fit does not exist.
Fitting model: NeuralNetTorch_BAG_L2 ... Training model for up to 23.05s of the 22.93s of remaining time.
Fitting 8 child models (S1F1 - S1F8) | Fitting with ParallelLocalFoldFittingStrategy (1 workers, per: cpus=10, gpus=0, memory=0.27%)
Warning: Exception caused NeuralNetTorch_BAG_L2 to fail during training... Skipping this model.
ray::_ray_fit() (pid=26640, ip=127.0.0.1)
File "python\ray_raylet.pyx", line 1424, in ray._raylet.execute_task
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\fold_fitting_strategy.py", line 402, in _ray_fit
fold_model.fit(X=X_fold, y=y_fold, X_val=X_val_fold, y_val=y_val_fold, time_limit=time_limit_fold, **resources, **kwargs_fold)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\abstract\abstract_model.py", line 854, in fit
out = self._fit(**kwargs)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\tabular\models\tabular_nn\torch\tabular_nn_torch.py", line 208, in _fit
self._train_net(
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\tabular\models\tabular_nn\torch\tabular_nn_torch.py", line 360, in _train_net
torch.save(self.model, net_filename)
File "d:\miniconda3\envs\power\lib\site-packages\torch\serialization.py", line 440, in save
with _open_zipfile_writer(f) as opened_zipfile:
File "d:\miniconda3\envs\power\lib\site-packages\torch\serialization.py", line 315, in _open_zipfile_writer
return container(name_or_buffer)
File "d:\miniconda3\envs\power\lib\site-packages\torch\serialization.py", line 288, in init
super().init(torch._C.PyTorchFileWriter(str(name)))
RuntimeError: Parent directory D:/workspace/forecast2/数据库/模型库/models_v1/forecast_day_ahead_category/ds_sub_fit does not exist.
Detailed Traceback:
Traceback (most recent call last):
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\trainer\abstract_trainer.py", line 1817, in _train_and_save
model = self._train_single(X, y, model, X_val, y_val, total_resources=total_resources, **model_fit_kwargs)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\trainer\abstract_trainer.py", line 1763, in _train_single
model = model.fit(X=X, y=y, X_val=X_val, y_val=y_val, total_resources=total_resources, **model_fit_kwargs)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\abstract\abstract_model.py", line 854, in fit
out = self._fit(**kwargs)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\stacker_ensemble_model.py", line 165, in _fit
return super()._fit(X=X, y=y, time_limit=time_limit, **kwargs)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\bagged_ensemble_model.py", line 273, in _fit
self._fit_folds(
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\bagged_ensemble_model.py", line 689, in _fit_folds
fold_fitting_strategy.after_all_folds_scheduled()
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\fold_fitting_strategy.py", line 661, in after_all_folds_scheduled
self._run_parallel(X, y, X_pseudo, y_pseudo, model_base_ref, time_limit_fold, head_node_id)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\fold_fitting_strategy.py", line 603, in _run_parallel
self._process_fold_results(finished, unfinished, fold_ctx)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\fold_fitting_strategy.py", line 566, in _process_fold_results
raise processed_exception
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\fold_fitting_strategy.py", line 532, in _process_fold_results
fold_model, pred_proba, time_start_fit, time_end_fit, predict_time, predict_1_time = self.ray.get(finished)
File "d:\miniconda3\envs\power\lib\site-packages\ray_private\auto_init_hook.py", line 24, in auto_init_wrapper
return fn(*args, **kwargs)
File "d:\miniconda3\envs\power\lib\site-packages\ray_private\client_mode_hook.py", line 103, in wrapper
return func(*args, **kwargs)
File "d:\miniconda3\envs\power\lib\site-packages\ray_private\worker.py", line 2524, in get
raise value.as_instanceof_cause()
ray.exceptions.RayTaskError(RuntimeError): ray::_ray_fit() (pid=26640, ip=127.0.0.1)
File "python\ray_raylet.pyx", line 1424, in ray._raylet.execute_task
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\fold_fitting_strategy.py", line 402, in _ray_fit
fold_model.fit(X=X_fold, y=y_fold, X_val=X_val_fold, y_val=y_val_fold, time_limit=time_limit_fold, **resources, **kwargs_fold)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\abstract\abstract_model.py", line 854, in fit
out = self._fit(**kwargs)
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\tabular\models\tabular_nn\torch\tabular_nn_torch.py", line 208, in _fit
self._train_net(
File "d:\miniconda3\envs\power\lib\site-packages\autogluon\tabular\models\tabular_nn\torch\tabular_nn_torch.py", line 360, in _train_net
torch.save(self.model, net_filename)
File "d:\miniconda3\envs\power\lib\site-packages\torch\serialization.py", line 440, in save
with _open_zipfile_writer(f) as opened_zipfile:
File "d:\miniconda3\envs\power\lib\site-packages\torch\serialization.py", line 315, in _open_zipfile_writer
return container(name_or_buffer)
File "d:\miniconda3\envs\power\lib\site-packages\torch\serialization.py", line 288, in init
super().init(torch._C.PyTorchFileWriter(str(name)))
when I use predictor.load:
XGBoostError Traceback (most recent call last)
Cell In[1], line 51
49 save_path = r'D:/workspace/forecast2/数据库/模型库/models_v1/forecast_day_ahead_category' # specifies folder to store trained models
50 metric= 'f1_weighted'
---> 51 predictor = TabularPredictor(label=label, path=save_path,problem_type='multiclass',eval_metric=metric).fit(train_data,presets='best_quality',num_gpus=1,verbosity=2)
52 # predictor = TabularPredictor.load(save_path)
53 results = predictor.fit_summary(show_plot=True)
File d:\miniconda3\envs\power\lib\site-packages\autogluon\core\utils\decorators.py:31, in unpack.._unpack_inner.._call(*args, **kwargs)
28 @functools.wraps(f)
29 def _call(*args, **kwargs):
30 gargs, gkwargs = g(*other_args, *args, **kwargs)
---> 31 return f(*gargs, **gkwargs)
File d:\miniconda3\envs\power\lib\site-packages\autogluon\tabular\predictor\predictor.py:1099, in TabularPredictor.fit(self, train_data, tuning_data, time_limit, presets, hyperparameters, feature_metadata, infer_limit, infer_limit_batch_size, fit_weighted_ensemble, fit_full_last_level_weighted_ensemble, full_weighted_ensemble_additionally, dynamic_stacking, calibrate_decision_threshold, num_cpus, num_gpus, **kwargs)
1093 if dynamic_stacking:
1094 logger.log(
1095 20,
1096 f"Dynamic stacking is enabled (dynamic_stacking={dynamic_stacking}). "
1097 "AutoGluon will try to determine whether the input data is affected by stacked overfitting and enable or disable stacking as a consequence.",
1098 )
-> 1099 num_stack_levels, time_limit = self._dynamic_stacking(**ds_args, ag_fit_kwargs=ag_fit_kwargs, ag_post_fit_kwargs=ag_post_fit_kwargs)
1101 if (time_limit is not None) and (time_limit <= 0):
1102 raise ValueError(
1103 f"Not enough time left to train models for the full fit. Consider specifying a larger time_limit. Time remaining: {time_limit}s"
1104 )
File d:\miniconda3\envs\power\lib\site-packages\autogluon\tabular\predictor\predictor.py:1186, in TabularPredictor._dynamic_stacking(self, ag_fit_kwargs, ag_post_fit_kwargs, validation_procedure, detection_time_frac, holdout_frac, n_folds, n_repeats, memory_safe_fits, clean_up_fits, holdout_data)
1181 ds_fit_kwargs["ds_fit_context"] = ds_fit_context + "/sub_fit_custom_ho"
1182 logger.info(
1183 f"Starting holdout-based sub-fit for dynamic stacking with custom validation data. Context path is: {ds_fit_kwargs['ds_fit_context']}."
1184 )
-> 1186 stacked_overfitting = self._sub_fit_memory_save_wrapper(
1187 train_data=X,
1188 time_limit=time_limit,
1189 ds_fit_kwargs=ds_fit_kwargs,
1190 ag_fit_kwargs=inner_ag_fit_kwargs,
1191 ag_post_fit_kwargs=inner_ag_post_fit_kwargs,
1192 holdout_data=holdout_data,
1193 )
1194 else:
1195 # Holdout is false, use (repeated) cross-validation
1196 is_stratified = self.problem_type in [REGRESSION, QUANTILE, SOFTCLASS]
File d:\miniconda3\envs\power\lib\site-packages\autogluon\tabular\predictor\predictor.py:1336, in TabularPredictor._sub_fit_memory_save_wrapper(self, train_data, time_limit, ds_fit_kwargs, ag_fit_kwargs, ag_post_fit_kwargs, holdout_data)
1333 normal_fit = True
1335 if normal_fit:
-> 1336 stacked_overfitting = _sub_fit(
1337 predictor=self,
1338 train_data=train_data,
1339 time_limit=time_limit,
1340 ds_fit_kwargs=ds_fit_kwargs,
1341 ag_fit_kwargs=ag_fit_kwargs,
1342 ag_post_fit_kwargs=ag_post_fit_kwargs,
1343 holdout_data=holdout_data,
1344 )
1346 return stacked_overfitting
File d:\miniconda3\envs\power\lib\site-packages\autogluon\tabular\predictor\predictor.py:4907, in _sub_fit(predictor, train_data, time_limit, ds_fit_kwargs, ag_fit_kwargs, ag_post_fit_kwargs, holdout_data)
4905 leaderboard_kwargs = dict(refit_full=True, set_refit_score_to_parent=True)
4906 # Determine stacked overfitting
-> 4907 ho_leaderboard = predictor.leaderboard(data=val_data, **leaderboard_kwargs).reset_index(drop=True)
4908 logger.info("Leaderboard on holdout data from dynamic stacking:")
4909 with pd.option_context("display.max_rows", None, "display.max_columns", None, "display.width", 1000):
4910 # Rename to avoid confusion for the user
File d:\miniconda3\envs\power\lib\site-packages\autogluon\tabular\predictor\predictor.py:2324, in TabularPredictor.leaderboard(self, data, extra_info, extra_metrics, decision_threshold, score_format, only_pareto_frontier, skip_score, refit_full, set_refit_score_to_parent, display, **kwargs)
2322 if decision_threshold is None:
2323 decision_threshold = self.decision_threshold
-> 2324 return self._learner.leaderboard(
2325 X=data,
2326 extra_info=extra_info,
2327 extra_metrics=extra_metrics,
2328 decision_threshold=decision_threshold,
2329 only_pareto_frontier=only_pareto_frontier,
2330 score_format=score_format,
2331 skip_score=skip_score,
2332 refit_full=refit_full,
2333 set_refit_score_to_parent=set_refit_score_to_parent,
2334 display=display,
2335 )
File d:\miniconda3\envs\power\lib\site-packages\autogluon\tabular\learner\abstract_learner.py:849, in AbstractTabularLearner.leaderboard(self, X, y, extra_info, extra_metrics, decision_threshold, only_pareto_frontier, skip_score, score_format, refit_full, set_refit_score_to_parent, display)
847 assert score_format in ["score", "error"]
848 if X is not None:
--> 849 leaderboard = self.score_debug(
850 X=X,
851 y=y,
852 extra_info=extra_info,
853 extra_metrics=extra_metrics,
854 decision_threshold=decision_threshold,
855 skip_score=skip_score,
856 refit_full=refit_full,
857 set_refit_score_to_parent=set_refit_score_to_parent,
858 display=False,
859 )
860 else:
861 if extra_metrics:
File d:\miniconda3\envs\power\lib\site-packages\autogluon\tabular\learner\abstract_learner.py:526, in AbstractTabularLearner.score_debug(self, X, y, extra_info, compute_oracle, extra_metrics, decision_threshold, skip_score, refit_full, set_refit_score_to_parent, display)
524 all_trained_models_can_infer = trainer.get_model_names(models=all_trained_models, can_infer=True)
525 all_trained_models_original = all_trained_models.copy()
--> 526 model_pred_proba_dict, pred_time_test_marginal = trainer.get_model_pred_proba_dict(X=X, models=all_trained_models_can_infer, record_pred_time=True)
528 if compute_oracle:
529 pred_probas = list(model_pred_proba_dict.values())
File d:\miniconda3\envs\power\lib\site-packages\autogluon\core\trainer\abstract_trainer.py:1036, in AbstractTrainer.get_model_pred_proba_dict(self, X, models, model_pred_proba_dict, model_pred_time_dict, record_pred_time, use_val_cache, cascade, cascade_threshold)
1034 else:
1035 preprocess_kwargs = dict(infer=False, model_pred_proba_dict=model_pred_proba_dict)
-> 1036 model_pred_proba_dict[model_name] = model.predict_proba(X, **preprocess_kwargs)
1037 else:
1038 model_pred_proba_dict[model_name] = model.predict_proba(X)
File d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\bagged_ensemble_model.py:439, in BaggedEnsembleModel.predict_proba(self, X, normalize, **kwargs)
438 def predict_proba(self, X, normalize=None, **kwargs):
--> 439 model = self.load_child(self.models[0])
440 X = self.preprocess(X, model=model, **kwargs)
441 pred_proba = model.predict_proba(X=X, preprocess_nonadaptive=False, normalize=normalize)
File d:\miniconda3\envs\power\lib\site-packages\autogluon\core\models\ensemble\bagged_ensemble_model.py:886, in BaggedEnsembleModel.load_child(self, model, verbose)
884 if isinstance(model, str):
885 child_path = self.create_contexts(os.path.join(self.path, model))
--> 886 return self._child_type.load(path=child_path, verbose=verbose)
887 else:
888 return model
File d:\miniconda3\envs\power\lib\site-packages\autogluon\tabular\models\xgboost\xgboost_model.py:267, in XGBoostModel.load(cls, path, reset_paths, verbose)
265 model.model = model._xgb_model_type()
266 # Much faster to load using .ubj than .json (10x+ speedup)
--> 267 model.model.load_model(os.path.join(path, "xgb.ubj"))
268 model._xgb_model_type = None
269 return model
File d:\miniconda3\envs\power\lib\site-packages\xgboost\sklearn.py:777, in XGBModel.load_model(self, fname)
775 if not hasattr(self, "_Booster"):
776 self._Booster = Booster({"n_jobs": self.n_jobs})
--> 777 self.get_booster().load_model(fname)
778 meta_str = self.get_booster().attr("scikit_learn")
779 if meta_str is None:
780 # FIXME(jiaming): This doesn't have to be a problem as most of the needed
781 # information like num_class and objective is in Learner class.
File d:\miniconda3\envs\power\lib\site-packages\xgboost\core.py:2444, in Booster.load_model(self, fname)
2440 if isinstance(fname, (str, os.PathLike)):
2441 # assume file name, cannot use os.path.exist to check, file can be
2442 # from URL.
2443 fname = os.fspath(os.path.expanduser(fname))
-> 2444 _check_call(_LIB.XGBoosterLoadModel(
2445 self.handle, c_str(fname)))
2446 elif isinstance(fname, bytearray):
2447 buf = fname
File d:\miniconda3\envs\power\lib\site-packages\xgboost\core.py:279, in _check_call(ret)
268 """Check the return value of C API call
269
270 This function will raise exception when error occurs.
(...)
276 return value from API calls
277 """
278 if ret != 0:
--> 279 raise XGBoostError(py_str(_LIB.XGBGetLastError()))
XGBoostError: [11:31:34] D:\bld\xgboost-split_1700182179651\work\src\common\io.cc:102: Opening D:/workspace/forecast2/数据库/模型库/models_v1/forecast_day_ahead_category/ds_sub_fit/sub_fit_ho\models\XGBoost_BAG_L1\S1F2\xgb.ubj failed: Illegal byte sequence
win10 python=3.10.13,torch=2.0.1
Looks like something went wrong while serializing, but I don't know how to fix it.Thanks for the help
Beta Was this translation helpful? Give feedback.
All reactions