-
Notifications
You must be signed in to change notification settings - Fork 178
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
[Enhancement] remove convert_to_supported function #2217
base: main
Are you sure you want to change the base?
[Enhancement] remove convert_to_supported function #2217
Conversation
/intelci: run |
/intelci: run |
/intelci: run |
/intelci: run |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please address the 3.12 error. Message below
__________________ ERROR collecting tests/test_estimators.py ___________________
tests/test_estimators.py:19: in <module>
import sklearn.utils.estimator_checks
../_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib/python3.12/site-packages/sklearn/utils/estimator_checks.py:89: in <module>
from ._test_common.instance_generator import (
../_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib/python3.12/site-packages/sklearn/utils/_test_common/instance_generator.py:179: in <module>
from sklearn.utils._testing import SkipTest
../_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib/python3.12/site-packages/sklearn/utils/_testing.py:318: in <module>
_check_array_api_dispatch(True)
../_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib/python3.12/site-packages/sklearn/utils/_array_api.py:123: in _check_array_api_dispatch
raise RuntimeError(
E RuntimeError: Scikit-learn array API support was enabled but scipy's own support is not enabled. Please set the SCIPY_ARRAY_API=1 environment variable before importing sklearn or scipy. More details at: https://docs.scipy.org/doc/scipy/dev/api-dev/array_api.html
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, didn't realize the array API error was a 1.6 issue
@@ -101,21 +101,20 @@ def partial_fit(self, X, y=None, queue=None): | |||
|
|||
policy = self._get_policy(queue, X) | |||
|
|||
X = _convert_to_supported(policy, X) | |||
X_table = to_table(X, queue=queue) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see 2 variants of implementation in this PR:
X = to_table(X, queue=queue)
X_table = to_table(X, queue=queue)
Here 2) is used, but it seems X
is not needed after the conversion anyway. Why not to use 1) everywhere possible?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True, although it looks like generally the name is just matching the name that was previously used after to_table was called before these changes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code looks good to me.
There are minor inconsistencies, but not critical. And they were there before the changes.
Why is sklearn 1.6 being installed? |
/intelci: run |
Description
As part of the array_api rollout, moving the capability of convert_to_supported in the table creation is desired. As checking for datatypes for oneDAL should occur on the tables, and not on the arrays before they become tables. When they become tables, they can be converted to the supported type via the queue supplied to them. This logic only currently occurs with numpy arrays, as sycl_usm_ndarrays are not allowed in _device_offload.dispatch to be moved off their current device (i.e. when queue devices don't match, an error is thrown). Given they are on their current device, they are already in a supported format. Dlpack will be handled separately in its own PR.
PR should start as a draft, then move to ready for review state after CI is passed and all applicable checkboxes are closed.
This approach ensures that reviewers don't spend extra time asking for regular requirements.
You can remove a checkbox as not applicable only if it doesn't relate to this PR in any way.
For example, PR with docs update doesn't require checkboxes for performance while PR with any change in actual code should have checkboxes and justify how this code change is expected to affect performance (or justification should be self-evident).
Checklist to comply with before moving PR from draft:
PR completeness and readability
Testing
Performance