Closed richardliaw closed 3 years ago
But instead, after doing a dive into the exception handling, the chain of exceptions should actually be:
Traceback (most recent call last):
File "/Users/rliaw/miniconda3/lib/python3.7/site-packages/joblib/parallel.py", line 808, in dispatch_one_batch
tasks = self._ready_batches.get(block=False)
File "/Users/rliaw/miniconda3/lib/python3.7/queue.py", line 167, in get
raise Empty
_queue.Empty
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "python/ray/_raylet.pyx", line 476, in ray._raylet.execute_task
File "python/ray/_raylet.pyx", line 477, in ray._raylet.execute_task
File "python/ray/_raylet.pyx", line 431, in ray._raylet.execute_task.function_executor
File "/Users/rliaw/miniconda3/lib/python3.7/site-packages/ray/function_manager.py", line 553, in actor_method_executor
return method(actor, *args, **kwargs)
File "/Users/rliaw/miniconda3/lib/python3.7/site-packages/ray/tune/trainable.py", line 183, in train
result = self.step()
File "/Users/rliaw/dev/tune-sklearn/tune_sklearn/_trainable.py", line 107, in step
result = self._train()
File "/Users/rliaw/dev/tune-sklearn/tune_sklearn/_trainable.py", line 251, in _train
return_train_score=self.return_train_score,
File "/Users/rliaw/miniconda3/lib/python3.7/site-packages/sklearn/utils/validation.py", line 72, in inner_f
return f(**kwargs)
File "/Users/rliaw/miniconda3/lib/python3.7/site-packages/sklearn/model_selection/_validation.py", line 248, in cross_validate
for train, test in cv.split(X, y, groups))
File "/Users/rliaw/miniconda3/lib/python3.7/site-packages/joblib/parallel.py", line 1029, in __call__
if self.dispatch_one_batch(iterator):
File "/Users/rliaw/miniconda3/lib/python3.7/site-packages/joblib/parallel.py", line 819, in dispatch_one_batch
islice = list(itertools.islice(iterator, big_batch_size))
File "/Users/rliaw/miniconda3/lib/python3.7/site-packages/sklearn/model_selection/_validation.py", line 243, in <genexpr>
delayed(_fit_and_score)(
File "/Users/rliaw/miniconda3/lib/python3.7/site-packages/sklearn/model_selection/_split.py", line 336, in split
for train, test in super().split(X, y, groups):
File "/Users/rliaw/miniconda3/lib/python3.7/site-packages/sklearn/model_selection/_split.py", line 80, in split
for test_index in self._iter_test_masks(X, y, groups):
File "/Users/rliaw/miniconda3/lib/python3.7/site-packages/sklearn/model_selection/_split.py", line 697, in _iter_test_masks
test_folds = self._make_test_folds(X, y)
File "/Users/rliaw/miniconda3/lib/python3.7/site-packages/sklearn/model_selection/_split.py", line 668, in _make_test_folds
% (self.n_splits))
ValueError: n_splits=5 cannot be greater than the number of members in each class.
If you run:
You get this exception:
The fix is probably to set
n_jobs
in crossvalidate to 1. cc @amogkam