You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
from piml import Experiment
from piml.models import GAMINetRegressor
"""## Load and Prepare Data"""
exp = Experiment()
exp.data_loader(data="BikeSharing")
exp.data_summary(feature_exclude=["yr", "mnth", "temp"]) # , silent=True
exp.data_prepare(target="cnt", task_type="regression")
# In[]
exp.model_train(model=GAMINetRegressor())
CODE 2:
# LOAD DATA AND BASIC PREVIEW
# ---------------------------------------------------------------------------------------------
df = pd.read_csv(r"H:\WORK\ML Project (EBM)\Dataset\CO2_MMP.csv")
print("First few rows of the data:")
print(df.head())
# In[]
input_features = ['T', 'C1', 'C2-C6', 'Vol', 'Int', 'C7+', 'MWC5+']
output = ['MMP']
X_train, X_test, y_train, y_test = train_test_split(df[input_features], df[output], test_size = 0.2, random_state = 42)
# In[]
gaminet_param_grid = { }
gaminet_kf = KFold(n_splits=10, shuffle=True, random_state = 42)
gaminet_model = GAMINetRegressor(random_state = 42) # GAMINet: generalized additive model with structured pairwise interactions network
# HP Tuning(Grid, kfold, model)
grid_search = GridSearchCV(gaminet_model, gaminet_param_grid, cv=gaminet_kf, scoring='neg_mean_squared_error', n_jobs=-1, error_score='raise')
grid_search.fit(X_train, y_train)
# Best parameters and model
best_gaminet_params = grid_search.best_params_ # Optimal parameters
best_gaminet_model = grid_search.best_estimator_ # Best GAMINet Model
In both the codes I'm getting the same error as below. AttributeError: function 'GetOutputTypeStr' not found
I couldnt figure out the reason behind it. I have also pasted the full error message from both codes. Can you provide a solution?
{
"name": "AttributeError",
"message": "function 'GetOutputTypeStr' not found",
"stack": "---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
File h:\\WORK\\ML Project (EBM)\\PIML_example_bikesharing.py:2
1 # In[]
----> 2 exp.model_train(model=GAMINetRegressor())
3 # exp.model_train()
File piml\\api.py:735, in piml.api.Experiment.model_train()
File piml\\api.py:2128, in piml.api.Experiment._model_train_api()
File piml\\workflow\\model_train_api.py:271, in piml.workflow.model_train_api.ModelAPI.singlerun()
File piml\\workflow\\pipeline.py:58, in piml.workflow.pipeline.ModelPipeline.fit()
File piml\\models\\gaminet\\api.py:453, in piml.models.gaminet.api.GAMINetRegressor.fit()
File piml\\models\\gaminet\\base.py:1277, in piml.models.gaminet.base.GAMINet._fit()
File piml\\models\\gaminet\\base.py:951, in piml.models.gaminet.base.GAMINet._add_interaction()
File piml\\models\\gaminet\\base.py:937, in piml.models.gaminet.base.GAMINet._get_interaction_list()
File piml\\models\\gaminet\\base.py:763, in piml.models.gaminet.base.GAMINet._interaction_screening()
File piml\\models\\ebm\\utils\\_measure_interactions.py:90, in piml.models.ebm.utils._measure_interactions.measure_interactions()
File piml\\models\\ebm\\utils\\_native.py:49, in piml.models.ebm.utils._native.Native.get_native_singleton()
File piml\\models\\ebm\\utils\\_native.py:1034, in piml.models.ebm.utils._native.Native._initialize()
File c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\ctypes\\__init__.py:387, in CDLL.__getattr__(self, name)
385 if name.startswith('__') and name.endswith('__'):
386 raise AttributeError(name)
--> 387 func = self.__getitem__(name)
388 setattr(self, name, func)
389 return func
File c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\ctypes\\__init__.py:392, in CDLL.__getitem__(self, name_or_ordinal)
391 def __getitem__(self, name_or_ordinal):
--> 392 func = self._FuncPtr((name_or_ordinal, self))
393 if not isinstance(name_or_ordinal, int):
394 func.__name__ = name_or_ordinal
AttributeError: function 'GetOutputTypeStr' not found"
}
{
"name": "AttributeError",
"message": "function 'GetOutputTypeStr' not found",
"stack": "---------------------------------------------------------------------------
_RemoteTraceback Traceback (most recent call last)
_RemoteTraceback:
\"\"\"
Traceback (most recent call last):
File \"c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\site-packages\\joblib\\externals\\loky\\process_executor.py\", line 463, in _process_worker
r = call_item()
File \"c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\site-packages\\joblib\\externals\\loky\\process_executor.py\", line 291, in __call__
return self.fn(*self.args, **self.kwargs)
File \"c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\site-packages\\joblib\\parallel.py\", line 598, in __call__
return [func(*args, **kwargs)
File \"c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\site-packages\\joblib\\parallel.py\", line 598, in <listcomp>
return [func(*args, **kwargs)
File \"c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\site-packages\\sklearn\\utils\\parallel.py\", line 127, in __call__
return self.function(*args, **kwargs)
File \"c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\site-packages\\sklearn\\model_selection\\_validation.py\", line 729, in _fit_and_score
estimator.fit(X_train, y_train, **fit_params)
File \"piml\\models\\gaminet\\api.py\", line 453, in piml.models.gaminet.api.GAMINetRegressor.fit
File \"piml\\models\\gaminet\\base.py\", line 1277, in piml.models.gaminet.base.GAMINet._fit
File \"piml\\models\\gaminet\\base.py\", line 951, in piml.models.gaminet.base.GAMINet._add_interaction
File \"piml\\models\\gaminet\\base.py\", line 937, in piml.models.gaminet.base.GAMINet._get_interaction_list
File \"piml\\models\\gaminet\\base.py\", line 763, in piml.models.gaminet.base.GAMINet._interaction_screening
File \"piml\\models\\ebm\\utils\\_measure_interactions.py\", line 90, in piml.models.ebm.utils._measure_interactions.measure_interactions
File \"piml\\models\\ebm\\utils\\_native.py\", line 49, in piml.models.ebm.utils._native.Native.get_native_singleton
File \"piml\\models\\ebm\\utils\\_native.py\", line 1034, in piml.models.ebm.utils._native.Native._initialize
File \"c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\ctypes\\__init__.py\", line 387, in __getattr__
func = self.__getitem__(name)
File \"c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\ctypes\\__init__.py\", line 392, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'GetOutputTypeStr' not found
\"\"\"
The above exception was the direct cause of the following exception:
AttributeError Traceback (most recent call last)
File h:\\WORK\\ML Project (EBM)\\PIML_CO2_MMP.py:22
20 # HP Tuning(Grid, kfold, model)
21 grid_search = GridSearchCV(gaminet_model, gaminet_param_grid, cv=gaminet_kf, scoring='neg_mean_squared_error', n_jobs=-1, error_score='raise')
---> 22 grid_search.fit(X_train, y_train)
24 # Best parameters and model
25 best_gaminet_params = grid_search.best_params_ # Optimal parameters
File c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\site-packages\\sklearn\\base.py:1152, in _fit_context.<locals>.decorator.<locals>.wrapper(estimator, *args, **kwargs)
1145 estimator._validate_params()
1147 with config_context(
1148 skip_parameter_validation=(
1149 prefer_skip_nested_validation or global_skip_validation
1150 )
1151 ):
-> 1152 return fit_method(estimator, *args, **kwargs)
File c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\site-packages\\sklearn\\model_selection\\_search.py:898, in BaseSearchCV.fit(self, X, y, groups, **fit_params)
892 results = self._format_results(
893 all_candidate_params, n_splits, all_out, all_more_results
894 )
896 return results
--> 898 self._run_search(evaluate_candidates)
900 # multimetric is determined here because in the case of a callable
901 # self.scoring the return type is only known after calling
902 first_test_score = all_out[0][\"test_scores\"]
File c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\site-packages\\sklearn\\model_selection\\_search.py:1422, in GridSearchCV._run_search(self, evaluate_candidates)
1420 def _run_search(self, evaluate_candidates):
1421 \"\"\"Search all candidates in param_grid\"\"\"
-> 1422 evaluate_candidates(ParameterGrid(self.param_grid))
File c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\site-packages\\sklearn\\model_selection\\_search.py:845, in BaseSearchCV.fit.<locals>.evaluate_candidates(candidate_params, cv, more_results)
837 if self.verbose > 0:
838 print(
839 \"Fitting {0} folds for each of {1} candidates,\"
840 \" totalling {2} fits\".format(
841 n_splits, n_candidates, n_candidates * n_splits
842 )
843 )
--> 845 out = parallel(
846 delayed(_fit_and_score)(
847 clone(base_estimator),
848 X,
849 y,
850 train=train,
851 test=test,
852 parameters=parameters,
853 split_progress=(split_idx, n_splits),
854 candidate_progress=(cand_idx, n_candidates),
855 **fit_and_score_kwargs,
856 )
857 for (cand_idx, parameters), (split_idx, (train, test)) in product(
858 enumerate(candidate_params), enumerate(cv.split(X, y, groups))
859 )
860 )
862 if len(out) < 1:
863 raise ValueError(
864 \"No fits were performed. \"
865 \"Was the CV iterator empty? \"
866 \"Were there no candidates?\"
867 )
File c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\site-packages\\sklearn\\utils\\parallel.py:65, in Parallel.__call__(self, iterable)
60 config = get_config()
61 iterable_with_config = (
62 (_with_config(delayed_func, config), args, kwargs)
63 for delayed_func, args, kwargs in iterable
64 )
---> 65 return super().__call__(iterable_with_config)
File c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\site-packages\\joblib\\parallel.py:2007, in Parallel.__call__(self, iterable)
2001 # The first item from the output is blank, but it makes the interpreter
2002 # progress until it enters the Try/Except block of the generator and
2003 # reach the first `yield` statement. This starts the aynchronous
2004 # dispatch of the tasks to the workers.
2005 next(output)
-> 2007 return output if self.return_generator else list(output)
File c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\site-packages\\joblib\\parallel.py:1650, in Parallel._get_outputs(self, iterator, pre_dispatch)
1647 yield
1649 with self._backend.retrieval_context():
-> 1650 yield from self._retrieve()
1652 except GeneratorExit:
1653 # The generator has been garbage collected before being fully
1654 # consumed. This aborts the remaining tasks if possible and warn
1655 # the user if necessary.
1656 self._exception = True
File c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\site-packages\\joblib\\parallel.py:1754, in Parallel._retrieve(self)
1747 while self._wait_retrieval():
1748
1749 # If the callback thread of a worker has signaled that its task
1750 # triggered an exception, or if the retrieval loop has raised an
1751 # exception (e.g. `GeneratorExit`), exit the loop and surface the
1752 # worker traceback.
1753 if self._aborting:
-> 1754 self._raise_error_fast()
1755 break
1757 # If the next job is not ready for retrieval yet, we just wait for
1758 # async callbacks to progress.
File c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\site-packages\\joblib\\parallel.py:1789, in Parallel._raise_error_fast(self)
1785 # If this error job exists, immediatly raise the error by
1786 # calling get_result. This job might not exists if abort has been
1787 # called directly or if the generator is gc'ed.
1788 if error_job is not None:
-> 1789 error_job.get_result(self.timeout)
File c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\site-packages\\joblib\\parallel.py:745, in BatchCompletionCallBack.get_result(self, timeout)
739 backend = self.parallel._backend
741 if backend.supports_retrieve_callback:
742 # We assume that the result has already been retrieved by the
743 # callback thread, and is stored internally. It's just waiting to
744 # be returned.
--> 745 return self._return_or_raise()
747 # For other backends, the main thread needs to run the retrieval step.
748 try:
File c:\\Users\\sauvikdas\\.conda\\envs\\__DSX_310__\\lib\\site-packages\\joblib\\parallel.py:763, in BatchCompletionCallBack._return_or_raise(self)
761 try:
762 if self.status == TASK_ERROR:
--> 763 raise self._result
764 return self._result
765 finally:
AttributeError: function 'GetOutputTypeStr' not found"
}
The text was updated successfully, but these errors were encountered:
This error says that the compiled EBM FAST screening library cannot be loaded properly, which means that your current computing environment is not supported.
I have two simple codes to test the PIML:
CODE 1:
CODE 2:
In both the codes I'm getting the same error as below.
AttributeError: function 'GetOutputTypeStr' not found
I couldnt figure out the reason behind it. I have also pasted the full error message from both codes. Can you provide a solution?
The text was updated successfully, but these errors were encountered: