Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segmentation faults since interpret 0.1.11 #46

Closed
martinsotir opened this issue Aug 9, 2019 · 3 comments
Closed

Segmentation faults since interpret 0.1.11 #46

martinsotir opened this issue Aug 9, 2019 · 3 comments

Comments

@martinsotir
Copy link

martinsotir commented Aug 9, 2019

Hi, thank you for your great work.

I just tried updating from 0.1.10 to 0.1.11 using pip and I am getting segmentation faults.
The issue does not seem to originate from a memory resource limitation (I have a 10 GB free memory margin when using 0.1.10) .
I was not able to diagnose further.

Platform : x86_64, Linux, ubuntu 16

Code extract: (works fine with 0.1.10)

_ebm = ExplainableBoostingRegressor(
    n_estimators=16,
    learning_rate=0.1,
    early_stopping_run_length=10,
    data_n_episodes=200,
    n_jobs=1, # same error with n_jobs=-2
    feature_names=_categorical_features + _numerical_features,
    feature_types= ['categorical'] * len(_categorical_features) + ['continuous'] * len(_numerical_features))

_ebm.fit(X, y)  # X: 108,728 x 39 numpy array

GDB trace:

# Segmentation fault (core dumped):

Thread 1 "python" received signal SIGSEGV, Segmentation fault.
__GI___libc_free (mem=0x2) at malloc.c:2951
2951    malloc.c: No such file or directory.
(gdb) bt
#0  __GI___libc_free (mem=0x2) at malloc.c:2951
#1  0x00007ffed376128c in DataSetAttributeCombination::~DataSetAttributeCombination() ()
   from /home/ubuntu/miniconda3/envs/env/lib/python3.7/site-packages/interpret/glassbox/ebm/../../lib/lib_ebmcore_linux_x64.so
#2  0x00007ffed377508d in FreeTraining ()
   from /home/ubuntu/miniconda3/envs/env/lib/python3.7/site-packages/interpret/glassbox/ebm/../../lib/lib_ebmcore_linux_x64.so

Python logs tail: (lots of INFO and ERROR messages since this release !).

[...]
INFO: Entered GetBestModel: ebmTraining=0x555e1f55ad90, indexAttributeCombination=38
INFO: Exited GetBestModel 0x555e24b7e6f0
INFO: Deallocation start
INFO: Entered FreeTraining: ebmTraining=0x555e1f55ad90
INFO: Entered ~EbmTrainingState
INFO: ~EbmTrainingState identified as regression type
INFO: Entered ~CachedTrainingThreadResources
INFO: Exited ~CachedTrainingThreadResources
INFO: Entered SamplingWithReplacement::FreeSamplingSets
INFO: Entered ~SamplingWithReplacement
INFO: Exited ~SamplingWithReplacement
INFO: Exited SamplingWithReplacement::FreeSamplingSets
INFO: Entered ~DataSetAttributeCombination

Segmentation fault (core dumped)

(Full log here: ebm_error_log.txt ).

@interpret-ml
Copy link
Collaborator

Hi @martinsotir -

Thank you for reporting this! We believe we've found and fixed the issue, and are in the process of putting out a new release to address this. This problem only manifests itself if you have features that contain a single value.

  • InterpretML Team

@interpret-ml
Copy link
Collaborator

Hi @martinsotir -

The fix is released now as version 0.1.12. Please try it out and let us know if everything is working for you now!

-InterpretML Team

@martinsotir
Copy link
Author

Thanks for the quick answer, dropping single-valued features did the trick.
I can confirm that the 0.1.12 release also fix this issue!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants