diff --git a/python-package/xgboost/sklearn.py b/python-package/xgboost/sklearn.py index e1cde586543a..6f84f7a4a6f0 100644 --- a/python-package/xgboost/sklearn.py +++ b/python-package/xgboost/sklearn.py @@ -852,14 +852,18 @@ def fit(self, X, y, *, sample_weight=None, base_margin=None, self.classes_ = cp.unique(y.values) self.n_classes_ = len(self.classes_) can_use_label_encoder = False - if not cp.array_equal(self.classes_, cp.arange(self.n_classes_)): + expected_classes = cp.arange(self.n_classes_) + if (self.classes_.shape != expected_classes.shape or + not (self.classes_ == expected_classes).all()): raise ValueError(label_encoding_check_error) elif _is_cupy_array(y): import cupy as cp # pylint: disable=E0401 self.classes_ = cp.unique(y) self.n_classes_ = len(self.classes_) can_use_label_encoder = False - if not cp.array_equal(self.classes_, cp.arange(self.n_classes_)): + expected_classes = cp.arange(self.n_classes_) + if (self.classes_.shape != expected_classes.shape or + not (self.classes_ == expected_classes).all()): raise ValueError(label_encoding_check_error) else: self.classes_ = np.unique(y)