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

Jupyter kernel dies with njobs > 1 #18

Open
oort77 opened this issue Dec 12, 2021 · 3 comments
Open

Jupyter kernel dies with njobs > 1 #18

oort77 opened this issue Dec 12, 2021 · 3 comments
Labels
bug Something isn't working

Comments

@oort77
Copy link

oort77 commented Dec 12, 2021

Describe the bug

Jupyter kernel dies with njobs > 1 in classification task.


To Reproduce

import pandas as pd
from sklearn.datasets import load_breast_cancer
from atom import ATOMClassifier

X, y = load_breast_cancer(return_X_y=True)
atom = ATOMClassifier(X, y, logger="auto", n_jobs=2, verbose=2)
atom.impute(strat_num="knn", strat_cat="most_frequent", max_nan_rows=0.1)  
atom.encode(strategy="LeaveOneOut", max_onehot=8, frac_to_other=0.05)  
atom.feature_selection(strategy="PCA", n_features=12)

atom.run(
    models=["LR","XGB"],#  "lSVM", "LDA"
    metric="f1",
    n_calls=25,
    n_initial_points=10,
    n_bootstrap=4
)

Expected behavior

As described above. Works fine with njobs=1.


Additional context

Ubuntu 20.04. Python 3.9.7. Separate conda environment with packages installed
from atom requirements.txt.


Version

4.9.1

@oort77 oort77 added the bug Something isn't working label Dec 12, 2021
@tvdboom
Copy link
Owner

tvdboom commented Dec 13, 2021

I couldn't reproduce the error on my Windows machine with Python 3.8.3. Can you check a couple of things so that I have a better understanding of what's happening:

  • How much memory does your machine have and how much of that is being used when running the command?
  • Does the same error occur when you don't use hyperparameter tuning (n_calls=0)?

@oort77
Copy link
Author

oort77 commented Dec 14, 2021

@tvdboom Ubuntu 20.04 remote box, 32GB RAM. Doesn't seem to be a memory problem, works fine with n_jobs=1.
Screenshot 2021-12-15 at 02 03 14

Setting n_calls=0 doesn't change the behaviour.

Screenshot 2021-12-15 at 01 47 18

And here it dies.

@tvdboom
Copy link
Owner

tvdboom commented Dec 15, 2021

I did some googling and it could be related to a conda / MKL problem, see scikit-learn/scikit-learn#5046.

Proposed solutions:

  • conda install numpy (I don't think this will solve it but can't hurt to try)
  • conda install nomkl
  • conda install -c intel mkl
  • Try another virtual environment (e.g. venv, virtualenv)

If nothing of this works I'll keep digging, but either way, this is probably not an ATOM issue, but more likely a scikit-learn / conda issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants