scikit-learn-intelex 2025.4.0__py39-none-win_amd64.whl → 2025.5.0__py39-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of scikit-learn-intelex might be problematic. Click here for more details.
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/__main__.py +1 -1
- scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/_daal4py.cp39-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +1 -1
- scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +83 -0
- scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +855 -0
- scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +217 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/mb/model_builders.py → scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +99 -91
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp39-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +6 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +1 -1
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +2 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +6 -38
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +12 -8
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +2 -6
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +3 -7
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +41 -153
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +13 -15
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +7 -10
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +22 -57
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +3 -4
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +8 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +30 -7
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +2 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +6 -16
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +4 -7
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +3 -5
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +4 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +8 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +82 -5
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/__init__.py +125 -83
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/_config.py +27 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/_device_offload.py +79 -83
- scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp39-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +21 -17
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +44 -39
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +35 -42
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +83 -74
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +57 -24
- scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/onedal/common/_backend.py +233 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +4 -4
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +27 -12
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +27 -19
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +35 -32
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +6 -10
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +179 -78
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +39 -25
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +28 -16
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +2 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +130 -93
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +76 -57
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +63 -37
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +96 -68
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +156 -119
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +5 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +21 -18
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +4 -4
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/svm.py +80 -32
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +10 -9
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +10 -10
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +8 -8
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +5 -5
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +10 -10
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +1 -13
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +3 -1
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +16 -1
- scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +147 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/utils/tests/test_validation.py +3 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/utils/validation.py +47 -16
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/__init__.py +3 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/__main__.py +2 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/_config.py +48 -6
- scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +143 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/_utils.py +28 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +13 -20
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +34 -40
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +6 -8
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +2 -6
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +42 -60
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +7 -17
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +4 -4
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +207 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +106 -362
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +1 -1
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +1 -1
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +6 -6
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +41 -126
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +42 -85
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +48 -39
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +34 -71
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +14 -18
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +60 -1
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +2 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +2 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +1 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +1 -1
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +1 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +7 -54
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +3 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +31 -73
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +30 -70
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +5 -13
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +3 -13
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +48 -62
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +10 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +8 -4
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +13 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +10 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +7 -4
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +13 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +9 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +7 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +25 -8
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +6 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +12 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +12 -5
- {scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/mb → scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors}/__init__.py +2 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +27 -5
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +12 -25
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +35 -128
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +9 -21
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +33 -126
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +9 -21
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +26 -11
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +16 -23
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +4 -4
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +2 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +8 -22
- {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.5.0.dist-info}/METADATA +2 -2
- scikit_learn_intelex-2025.5.0.dist-info/RECORD +257 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/_daal4py.cp39-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp39-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_base.py +0 -38
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_policy.py +0 -55
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_spmd_policy.py +0 -30
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/tests/test_policy.py +0 -76
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/utils/__init__.py +0 -49
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -126
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -19
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -25
- scikit_learn_intelex-2025.4.0.dist-info/RECORD +0 -259
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +0 -0
- {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.5.0.dist-info}/LICENSE.txt +0 -0
- {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.5.0.dist-info}/WHEEL +0 -0
- {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.5.0.dist-info}/top_level.txt +0 -0
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
# ==============================================================================
|
|
16
16
|
|
|
17
|
-
"""
|
|
17
|
+
"""Utilities for Data Parallel Extensions libs, such as DPNP, DPCtl.
|
|
18
18
|
See `Data Parallel Extensions for Python <https://github.com/IntelPython/DPEP>`__
|
|
19
19
|
"""
|
|
20
20
|
|
|
@@ -54,3 +54,18 @@ def is_dpnp_available(version=None):
|
|
|
54
54
|
|
|
55
55
|
dpctl_available = is_dpctl_available()
|
|
56
56
|
dpnp_available = is_dpnp_available()
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
if dpnp_available:
|
|
60
|
+
import dpnp
|
|
61
|
+
if dpctl_available:
|
|
62
|
+
import dpctl.tensor as dpt
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def get_unique_values_with_dpep(X):
|
|
66
|
+
if dpnp_available:
|
|
67
|
+
return dpnp.unique(X)
|
|
68
|
+
elif dpctl_available:
|
|
69
|
+
return dpt.unique_values(X)
|
|
70
|
+
else:
|
|
71
|
+
raise RuntimeError("No DPEP package available to provide `unique` function.")
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright 2025 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ==============================================================================
|
|
16
|
+
|
|
17
|
+
from contextlib import contextmanager
|
|
18
|
+
|
|
19
|
+
from .._config import _get_config
|
|
20
|
+
from ..utils._dpep_helpers import dpctl_available
|
|
21
|
+
|
|
22
|
+
if dpctl_available:
|
|
23
|
+
from dpctl import SyclQueue
|
|
24
|
+
else:
|
|
25
|
+
from onedal import _dpc_backend
|
|
26
|
+
|
|
27
|
+
SyclQueue = getattr(_dpc_backend, "SyclQueue", None)
|
|
28
|
+
|
|
29
|
+
# single instance of global queue
|
|
30
|
+
__global_queue = None
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def __create_sycl_queue(target):
|
|
34
|
+
if SyclQueue is None:
|
|
35
|
+
# we don't have SyclQueue support
|
|
36
|
+
return None
|
|
37
|
+
if target is None:
|
|
38
|
+
return None
|
|
39
|
+
if isinstance(target, SyclQueue):
|
|
40
|
+
return target
|
|
41
|
+
if isinstance(target, (str, int)):
|
|
42
|
+
return SyclQueue(target)
|
|
43
|
+
raise ValueError(f"Invalid queue or device selector {target=}.")
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def get_global_queue():
|
|
47
|
+
"""Get the global queue. Retrieve it from the config if not set."""
|
|
48
|
+
if (queue := __global_queue) is not None:
|
|
49
|
+
if SyclQueue and not isinstance(queue, SyclQueue):
|
|
50
|
+
raise ValueError("Global queue is not a SyclQueue object.")
|
|
51
|
+
return queue
|
|
52
|
+
|
|
53
|
+
target = _get_config()["target_offload"]
|
|
54
|
+
if target == "auto":
|
|
55
|
+
# queue will be created from the provided data to each function call
|
|
56
|
+
return None
|
|
57
|
+
|
|
58
|
+
q = __create_sycl_queue(target)
|
|
59
|
+
update_global_queue(q)
|
|
60
|
+
return q
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def remove_global_queue():
|
|
64
|
+
"""Remove the global queue."""
|
|
65
|
+
global __global_queue
|
|
66
|
+
__global_queue = None
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def update_global_queue(queue):
|
|
70
|
+
"""Update the global queue."""
|
|
71
|
+
global __global_queue
|
|
72
|
+
queue = __create_sycl_queue(queue)
|
|
73
|
+
__global_queue = queue
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def from_data(*data):
|
|
77
|
+
"""Extract the queue from provided data. This updates the global queue as well."""
|
|
78
|
+
for item in data:
|
|
79
|
+
# iterate through all data objects, extract the queue, and verify that all data objects are on the same device
|
|
80
|
+
try:
|
|
81
|
+
usm_iface = getattr(item, "__sycl_usm_array_interface__", None)
|
|
82
|
+
except RuntimeError as e:
|
|
83
|
+
if "SUA interface" in str(e):
|
|
84
|
+
# ignore SUA interface errors and move on
|
|
85
|
+
continue
|
|
86
|
+
else:
|
|
87
|
+
# unexpected, re-raise
|
|
88
|
+
raise e
|
|
89
|
+
|
|
90
|
+
if usm_iface is None:
|
|
91
|
+
# no interface found - try next data object
|
|
92
|
+
continue
|
|
93
|
+
|
|
94
|
+
# extract the queue
|
|
95
|
+
global_queue = get_global_queue()
|
|
96
|
+
data_queue = usm_iface["syclobj"]
|
|
97
|
+
if not data_queue:
|
|
98
|
+
# no queue, i.e. host data, no more work to do
|
|
99
|
+
continue
|
|
100
|
+
|
|
101
|
+
# update the global queue if not set
|
|
102
|
+
if global_queue is None:
|
|
103
|
+
update_global_queue(data_queue)
|
|
104
|
+
global_queue = data_queue
|
|
105
|
+
|
|
106
|
+
# if either queue points to a device, assert it's always the same device
|
|
107
|
+
data_dev = data_queue.sycl_device
|
|
108
|
+
global_dev = global_queue.sycl_device
|
|
109
|
+
if (data_dev and global_dev) is not None and data_dev != global_dev:
|
|
110
|
+
raise ValueError(
|
|
111
|
+
"Data objects are located on different target devices or not on selected device."
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
# after we went through the data, global queue is updated and verified (if any queue found)
|
|
115
|
+
return get_global_queue()
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
@contextmanager
|
|
119
|
+
def manage_global_queue(queue, *args):
|
|
120
|
+
"""
|
|
121
|
+
Context manager to manage the global SyclQueue.
|
|
122
|
+
|
|
123
|
+
This context manager updates the global queue with the provided queue,
|
|
124
|
+
verifies that all data objects are on the same device, and restores the
|
|
125
|
+
original queue after work is done.
|
|
126
|
+
Note: For most applications, the original queue should be `None`, but
|
|
127
|
+
if there are nested calls to `manage_global_queue()`, it is
|
|
128
|
+
important to restore the outer queue, rather than setting it to
|
|
129
|
+
`None`.
|
|
130
|
+
|
|
131
|
+
Parameters:
|
|
132
|
+
queue (SyclQueue or None): The queue to set as the global queue. If None,
|
|
133
|
+
the global queue will be determined from the provided data.
|
|
134
|
+
*args: Additional data objects to verify their device placement.
|
|
135
|
+
|
|
136
|
+
Yields:
|
|
137
|
+
SyclQueue: The global queue after verification.
|
|
138
|
+
"""
|
|
139
|
+
original_queue = get_global_queue()
|
|
140
|
+
try:
|
|
141
|
+
# update the global queue with what is provided, it can be None, then we will get it from provided data
|
|
142
|
+
update_global_queue(queue)
|
|
143
|
+
# find the queues in data to verify that all data objects are on the same device
|
|
144
|
+
yield from_data(*args)
|
|
145
|
+
finally:
|
|
146
|
+
# restore the original queue
|
|
147
|
+
update_global_queue(original_queue)
|
|
@@ -40,7 +40,7 @@ from onedal.utils.validation import assert_all_finite
|
|
|
40
40
|
)
|
|
41
41
|
@pytest.mark.parametrize("allow_nan", [False, True])
|
|
42
42
|
@pytest.mark.parametrize(
|
|
43
|
-
"dataframe, queue", get_dataframes_and_queues("numpy,dpnp,dpctl")
|
|
43
|
+
"dataframe, queue", get_dataframes_and_queues("numpy,dpnp,dpctl,array_api")
|
|
44
44
|
)
|
|
45
45
|
def test_sum_infinite_actually_finite(dtype, shape, allow_nan, dataframe, queue):
|
|
46
46
|
X = np.empty(shape, dtype=dtype)
|
|
@@ -65,7 +65,7 @@ def test_sum_infinite_actually_finite(dtype, shape, allow_nan, dataframe, queue)
|
|
|
65
65
|
@pytest.mark.parametrize("check", ["inf", "NaN", None])
|
|
66
66
|
@pytest.mark.parametrize("seed", [0, 123456])
|
|
67
67
|
@pytest.mark.parametrize(
|
|
68
|
-
"dataframe, queue", get_dataframes_and_queues("numpy,dpnp,dpctl")
|
|
68
|
+
"dataframe, queue", get_dataframes_and_queues("numpy,dpnp,dpctl,array_api")
|
|
69
69
|
)
|
|
70
70
|
def test_assert_finite_random_location(
|
|
71
71
|
dtype, shape, allow_nan, check, seed, dataframe, queue
|
|
@@ -92,7 +92,7 @@ def test_assert_finite_random_location(
|
|
|
92
92
|
@pytest.mark.parametrize("check", ["inf", "NaN", None])
|
|
93
93
|
@pytest.mark.parametrize("seed", [0, 123456])
|
|
94
94
|
@pytest.mark.parametrize(
|
|
95
|
-
"dataframe, queue", get_dataframes_and_queues("numpy,dpnp,dpctl")
|
|
95
|
+
"dataframe, queue", get_dataframes_and_queues("numpy,dpnp,dpctl,array_api")
|
|
96
96
|
)
|
|
97
97
|
def test_assert_finite_random_shape_and_location(
|
|
98
98
|
dtype, allow_nan, check, seed, dataframe, queue
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
# ==============================================================================
|
|
16
16
|
|
|
17
|
+
import inspect
|
|
17
18
|
import warnings
|
|
18
19
|
from collections.abc import Sequence
|
|
19
20
|
from numbers import Integral
|
|
@@ -21,6 +22,9 @@ from numbers import Integral
|
|
|
21
22
|
import numpy as np
|
|
22
23
|
from scipy import sparse as sp
|
|
23
24
|
|
|
25
|
+
from onedal.common._backend import BackendFunction
|
|
26
|
+
from onedal.utils import _sycl_queue_manager as QM
|
|
27
|
+
|
|
24
28
|
if np.lib.NumpyVersion(np.__version__) >= np.lib.NumpyVersion("2.0.0a0"):
|
|
25
29
|
# numpy_version >= 2.0
|
|
26
30
|
from numpy.exceptions import VisibleDeprecationWarning
|
|
@@ -34,8 +38,7 @@ from sklearn.utils.validation import check_array
|
|
|
34
38
|
from daal4py.sklearn.utils.validation import (
|
|
35
39
|
_assert_all_finite as _daal4py_assert_all_finite,
|
|
36
40
|
)
|
|
37
|
-
from onedal import
|
|
38
|
-
from onedal.common._policy import _get_policy
|
|
41
|
+
from onedal import _default_backend as backend
|
|
39
42
|
from onedal.datatypes import to_table
|
|
40
43
|
|
|
41
44
|
|
|
@@ -127,6 +130,16 @@ def _validate_targets(y, class_weight, dtype):
|
|
|
127
130
|
return np.asarray(y, dtype=dtype, order="C"), class_weight_res, classes
|
|
128
131
|
|
|
129
132
|
|
|
133
|
+
def get_finite_keyword():
|
|
134
|
+
"""Gets the argument name for scikit-learn's validation functions compatible with
|
|
135
|
+
the current version of scikit-learn and using function inspection instead of
|
|
136
|
+
version check due to `onedal` design rule: sklearn versioning should occur
|
|
137
|
+
in `sklearnex` module."""
|
|
138
|
+
if "ensure_all_finite" in inspect.signature(check_array).parameters:
|
|
139
|
+
return "ensure_all_finite"
|
|
140
|
+
return "force_all_finite"
|
|
141
|
+
|
|
142
|
+
|
|
130
143
|
def _check_array(
|
|
131
144
|
array,
|
|
132
145
|
dtype="numeric",
|
|
@@ -136,6 +149,7 @@ def _check_array(
|
|
|
136
149
|
force_all_finite=True,
|
|
137
150
|
ensure_2d=True,
|
|
138
151
|
accept_large_sparse=True,
|
|
152
|
+
_finite_keyword=get_finite_keyword(),
|
|
139
153
|
):
|
|
140
154
|
if force_all_finite:
|
|
141
155
|
if sp.issparse(array):
|
|
@@ -145,15 +159,19 @@ def _check_array(
|
|
|
145
159
|
else:
|
|
146
160
|
_daal4py_assert_all_finite(array)
|
|
147
161
|
force_all_finite = False
|
|
162
|
+
check_kwargs = {
|
|
163
|
+
"array": array,
|
|
164
|
+
"dtype": dtype,
|
|
165
|
+
"accept_sparse": accept_sparse,
|
|
166
|
+
"order": order,
|
|
167
|
+
"copy": copy,
|
|
168
|
+
"ensure_2d": ensure_2d,
|
|
169
|
+
"accept_large_sparse": accept_large_sparse,
|
|
170
|
+
}
|
|
171
|
+
check_kwargs[_finite_keyword] = force_all_finite
|
|
172
|
+
|
|
148
173
|
array = check_array(
|
|
149
|
-
|
|
150
|
-
dtype=dtype,
|
|
151
|
-
accept_sparse=accept_sparse,
|
|
152
|
-
order=order,
|
|
153
|
-
copy=copy,
|
|
154
|
-
force_all_finite=force_all_finite,
|
|
155
|
-
ensure_2d=ensure_2d,
|
|
156
|
-
accept_large_sparse=accept_large_sparse,
|
|
174
|
+
**check_kwargs,
|
|
157
175
|
)
|
|
158
176
|
|
|
159
177
|
if sp.issparse(array):
|
|
@@ -437,18 +455,22 @@ def _is_csr(x):
|
|
|
437
455
|
|
|
438
456
|
|
|
439
457
|
def _assert_all_finite(X, allow_nan=False, input_name=""):
|
|
440
|
-
|
|
458
|
+
backend_method = BackendFunction(
|
|
459
|
+
backend.finiteness_checker.compute.compute, backend, "compute", no_policy=False
|
|
460
|
+
)
|
|
441
461
|
X_t = to_table(X)
|
|
442
462
|
params = {
|
|
443
463
|
"fptype": X_t.dtype,
|
|
444
464
|
"method": "dense",
|
|
445
465
|
"allow_nan": allow_nan,
|
|
446
466
|
}
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
467
|
+
with QM.manage_global_queue(None, X):
|
|
468
|
+
# Must use the queue provided by X
|
|
469
|
+
if not backend_method(params, X_t).finite:
|
|
470
|
+
type_err = "infinity" if allow_nan else "NaN, infinity"
|
|
471
|
+
padded_input_name = input_name + " " if input_name else ""
|
|
472
|
+
msg_err = f"Input {padded_input_name}contains {type_err}."
|
|
473
|
+
raise ValueError(msg_err)
|
|
452
474
|
|
|
453
475
|
|
|
454
476
|
def assert_all_finite(
|
|
@@ -462,3 +484,12 @@ def assert_all_finite(
|
|
|
462
484
|
allow_nan=allow_nan,
|
|
463
485
|
input_name=input_name,
|
|
464
486
|
)
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
def is_contiguous(X):
|
|
490
|
+
if hasattr(X, "flags"):
|
|
491
|
+
return X.flags["C_CONTIGUOUS"] or X.flags["F_CONTIGUOUS"]
|
|
492
|
+
elif hasattr(X, "__dlpack__"):
|
|
493
|
+
return backend.dlpack_memory_order(X) is not None
|
|
494
|
+
else:
|
|
495
|
+
return False
|
|
@@ -52,12 +52,13 @@ __all__ = [
|
|
|
52
52
|
"unpatch_sklearn",
|
|
53
53
|
"utils",
|
|
54
54
|
]
|
|
55
|
+
__version__ = "2199.9.9"
|
|
55
56
|
onedal_iface_flag = os.environ.get("OFF_ONEDAL_IFACE", "0")
|
|
56
57
|
if onedal_iface_flag == "0":
|
|
57
|
-
from onedal import
|
|
58
|
+
from onedal import _spmd_backend
|
|
58
59
|
from onedal.common.hyperparameters import get_hyperparameters
|
|
59
60
|
|
|
60
|
-
if
|
|
61
|
+
if _spmd_backend is not None:
|
|
61
62
|
__all__.append("spmd")
|
|
62
63
|
|
|
63
64
|
|
|
@@ -25,9 +25,9 @@ def _main():
|
|
|
25
25
|
parser = argparse.ArgumentParser(
|
|
26
26
|
prog="python -m sklearnex",
|
|
27
27
|
description="""
|
|
28
|
-
Run your Python script with
|
|
28
|
+
Run your Python script with Extension for
|
|
29
29
|
scikit-learn, optimizing solvers of
|
|
30
|
-
scikit-learn with
|
|
30
|
+
scikit-learn with oneAPI Data Analytics Library.
|
|
31
31
|
""",
|
|
32
32
|
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
33
33
|
)
|
|
@@ -26,10 +26,12 @@ from onedal._config import _get_config as onedal_get_config
|
|
|
26
26
|
|
|
27
27
|
def get_config():
|
|
28
28
|
"""Retrieve current values for configuration set by :func:`set_config`
|
|
29
|
+
|
|
29
30
|
Returns
|
|
30
31
|
-------
|
|
31
32
|
config : dict
|
|
32
33
|
Keys are parameter names that can be passed to :func:`set_config`.
|
|
34
|
+
|
|
33
35
|
See Also
|
|
34
36
|
--------
|
|
35
37
|
config_context : Context manager for global configuration.
|
|
@@ -44,28 +46,45 @@ def set_config(
|
|
|
44
46
|
target_offload=None,
|
|
45
47
|
allow_fallback_to_host=None,
|
|
46
48
|
allow_sklearn_after_onedal=None,
|
|
49
|
+
use_raw_input=None,
|
|
47
50
|
**sklearn_configs,
|
|
48
51
|
):
|
|
49
52
|
"""Set global configuration
|
|
53
|
+
|
|
50
54
|
Parameters
|
|
51
55
|
----------
|
|
52
|
-
target_offload : string or dpctl.SyclQueue, default=None
|
|
56
|
+
target_offload : string or dpctl.SyclQueue or None, default=None
|
|
53
57
|
The device primarily used to perform computations.
|
|
54
58
|
If string, expected to be "auto" (the execution context
|
|
55
59
|
is deduced from input data location),
|
|
56
60
|
or SYCL* filter selector string. Global default: "auto".
|
|
57
|
-
|
|
61
|
+
|
|
62
|
+
allow_fallback_to_host : bool or None, default=None
|
|
58
63
|
If True, allows to fallback computation to host device
|
|
59
64
|
in case particular estimator does not support the selected one.
|
|
60
65
|
Global default: False.
|
|
61
|
-
|
|
66
|
+
|
|
67
|
+
allow_sklearn_after_onedal : bool or None, default=None
|
|
62
68
|
If True, allows to fallback computation to sklearn after onedal
|
|
63
69
|
backend in case of runtime error on onedal backend computations.
|
|
64
70
|
Global default: True.
|
|
71
|
+
|
|
72
|
+
use_raw_input : bool or None, default=None
|
|
73
|
+
.. deprecated:: 2026.0
|
|
74
|
+
If True, uses the raw input data in some SPMD onedal backend computations
|
|
75
|
+
without any checks on data consistency or validity.
|
|
76
|
+
Not recommended for general use.
|
|
77
|
+
Global default: False.
|
|
78
|
+
|
|
65
79
|
See Also
|
|
66
80
|
--------
|
|
67
81
|
config_context : Context manager for global configuration.
|
|
68
82
|
get_config : Retrieve current values of the global configuration.
|
|
83
|
+
|
|
84
|
+
Warnings
|
|
85
|
+
--------
|
|
86
|
+
Using ``use_raw_input=True`` is not recommended for general use as it
|
|
87
|
+
bypasses data consistency checks, which may lead to unexpected behavior.
|
|
69
88
|
"""
|
|
70
89
|
|
|
71
90
|
array_api_dispatch = sklearn_configs.get("array_api_dispatch", False)
|
|
@@ -82,30 +101,53 @@ def set_config(
|
|
|
82
101
|
local_config["allow_fallback_to_host"] = allow_fallback_to_host
|
|
83
102
|
if allow_sklearn_after_onedal is not None:
|
|
84
103
|
local_config["allow_sklearn_after_onedal"] = allow_sklearn_after_onedal
|
|
104
|
+
if use_raw_input is not None:
|
|
105
|
+
local_config["use_raw_input"] = use_raw_input
|
|
85
106
|
|
|
86
107
|
|
|
87
108
|
@contextmanager
|
|
88
109
|
def config_context(**new_config):
|
|
89
110
|
"""Context manager for global scikit-learn configuration
|
|
111
|
+
|
|
90
112
|
Parameters
|
|
91
113
|
----------
|
|
92
|
-
target_offload : string or dpctl.SyclQueue, default=None
|
|
114
|
+
target_offload : string or dpctl.SyclQueue or None, default=None
|
|
93
115
|
The device primarily used to perform computations.
|
|
94
116
|
If string, expected to be "auto" (the execution context
|
|
95
117
|
is deduced from input data location),
|
|
96
118
|
or SYCL* filter selector string. Global default: "auto".
|
|
97
|
-
|
|
119
|
+
|
|
120
|
+
allow_fallback_to_host : bool or None, default=None
|
|
98
121
|
If True, allows to fallback computation to host device
|
|
99
122
|
in case particular estimator does not support the selected one.
|
|
100
123
|
Global default: False.
|
|
101
|
-
|
|
124
|
+
|
|
125
|
+
allow_sklearn_after_onedal : bool or None, default=None
|
|
126
|
+
If True, allows to fallback computation to sklearn after onedal
|
|
127
|
+
backend in case of runtime error on onedal backend computations.
|
|
128
|
+
Global default: True.
|
|
129
|
+
|
|
130
|
+
use_raw_input : bool or None, default=None
|
|
131
|
+
.. deprecated:: 2026.0
|
|
132
|
+
If True, uses the raw input data in some SPMD onedal backend computations
|
|
133
|
+
without any checks on data consistency or validity.
|
|
134
|
+
Not recommended for general use.
|
|
135
|
+
Global default: False.
|
|
136
|
+
|
|
137
|
+
Note
|
|
102
138
|
-----
|
|
103
139
|
All settings, not just those presently modified, will be returned to
|
|
104
140
|
their previous values when the context manager is exited.
|
|
141
|
+
|
|
105
142
|
See Also
|
|
106
143
|
--------
|
|
107
144
|
set_config : Set global scikit-learn configuration.
|
|
108
145
|
get_config : Retrieve current values of the global configuration.
|
|
146
|
+
|
|
147
|
+
Warnings
|
|
148
|
+
--------
|
|
149
|
+
Using ``use_raw_input=True`` is not recommended for general use as it
|
|
150
|
+
bypasses data consistency checks, which may lead to unexpected behavior.
|
|
109
151
|
"""
|
|
110
152
|
old_config = get_config()
|
|
111
153
|
set_config(**new_config)
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright 2021 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ==============================================================================
|
|
16
|
+
|
|
17
|
+
from functools import wraps
|
|
18
|
+
|
|
19
|
+
from onedal._device_offload import _copy_to_usm, _transfer_to_host
|
|
20
|
+
from onedal.utils import _sycl_queue_manager as QM
|
|
21
|
+
from onedal.utils._array_api import _asarray
|
|
22
|
+
from onedal.utils._dpep_helpers import dpnp_available
|
|
23
|
+
|
|
24
|
+
if dpnp_available:
|
|
25
|
+
import dpnp
|
|
26
|
+
from onedal.utils._array_api import _convert_to_dpnp
|
|
27
|
+
|
|
28
|
+
from ._config import get_config
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def _get_backend(obj, queue, method_name, *data):
|
|
32
|
+
with QM.manage_global_queue(queue, *data) as queue:
|
|
33
|
+
cpu_device = queue is None or getattr(queue.sycl_device, "is_cpu", True)
|
|
34
|
+
gpu_device = queue is not None and getattr(queue.sycl_device, "is_gpu", False)
|
|
35
|
+
|
|
36
|
+
if cpu_device:
|
|
37
|
+
patching_status = obj._onedal_cpu_supported(method_name, *data)
|
|
38
|
+
if patching_status.get_status():
|
|
39
|
+
return "onedal", patching_status
|
|
40
|
+
else:
|
|
41
|
+
return "sklearn", patching_status
|
|
42
|
+
|
|
43
|
+
allow_fallback_to_host = get_config()["allow_fallback_to_host"]
|
|
44
|
+
|
|
45
|
+
if gpu_device:
|
|
46
|
+
patching_status = obj._onedal_gpu_supported(method_name, *data)
|
|
47
|
+
if patching_status.get_status():
|
|
48
|
+
return "onedal", patching_status
|
|
49
|
+
else:
|
|
50
|
+
QM.remove_global_queue()
|
|
51
|
+
if allow_fallback_to_host:
|
|
52
|
+
patching_status = obj._onedal_cpu_supported(method_name, *data)
|
|
53
|
+
if patching_status.get_status():
|
|
54
|
+
return "onedal", patching_status
|
|
55
|
+
else:
|
|
56
|
+
return "sklearn", patching_status
|
|
57
|
+
else:
|
|
58
|
+
return "sklearn", patching_status
|
|
59
|
+
|
|
60
|
+
raise RuntimeError("Device support is not implemented")
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def get_array_api_support_tag(estimator):
|
|
64
|
+
"""Gets the value of the 'array_api_support' tag from the estimator
|
|
65
|
+
using correct code path depending on the scikit-learn version."""
|
|
66
|
+
if hasattr(estimator, "__sklearn_tags__"):
|
|
67
|
+
return estimator.__sklearn_tags__().array_api_support
|
|
68
|
+
elif hasattr(estimator, "_get_tags"):
|
|
69
|
+
tags = estimator._get_tags()
|
|
70
|
+
if "array_api_support" in tags:
|
|
71
|
+
return tags["array_api_support"]
|
|
72
|
+
return False
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def dispatch(obj, method_name, branches, *args, **kwargs):
|
|
76
|
+
if get_config()["use_raw_input"] is False:
|
|
77
|
+
with QM.manage_global_queue(None, *args) as queue:
|
|
78
|
+
has_usm_data_for_args, hostargs = _transfer_to_host(*args)
|
|
79
|
+
has_usm_data_for_kwargs, hostvalues = _transfer_to_host(*kwargs.values())
|
|
80
|
+
hostkwargs = dict(zip(kwargs.keys(), hostvalues))
|
|
81
|
+
|
|
82
|
+
backend, patching_status = _get_backend(obj, queue, method_name, *hostargs)
|
|
83
|
+
has_usm_data = has_usm_data_for_args or has_usm_data_for_kwargs
|
|
84
|
+
if backend == "onedal":
|
|
85
|
+
# Host args only used before onedal backend call.
|
|
86
|
+
# Device will be offloaded when onedal backend will be called.
|
|
87
|
+
patching_status.write_log(queue=queue, transferred_to_host=False)
|
|
88
|
+
return branches[backend](obj, *hostargs, **hostkwargs, queue=queue)
|
|
89
|
+
if backend == "sklearn":
|
|
90
|
+
if (
|
|
91
|
+
"array_api_dispatch" in get_config()
|
|
92
|
+
and get_config()["array_api_dispatch"]
|
|
93
|
+
and get_array_api_support_tag(obj)
|
|
94
|
+
and not has_usm_data
|
|
95
|
+
):
|
|
96
|
+
# USM ndarrays are also excluded for the fallback Array API. Currently, DPNP.ndarray is
|
|
97
|
+
# not compliant with the Array API standard, and DPCTL usm_ndarray Array API is compliant,
|
|
98
|
+
# except for the linalg module. There is no guarantee that stock scikit-learn will
|
|
99
|
+
# work with such input data. The condition will be updated after DPNP.ndarray and
|
|
100
|
+
# DPCTL usm_ndarray enabling for conformance testing and these arrays supportance
|
|
101
|
+
# of the fallback cases.
|
|
102
|
+
# If `array_api_dispatch` enabled and array api is supported for the stock scikit-learn,
|
|
103
|
+
# then raw inputs are used for the fallback.
|
|
104
|
+
patching_status.write_log(transferred_to_host=False)
|
|
105
|
+
return branches[backend](obj, *args, **kwargs)
|
|
106
|
+
else:
|
|
107
|
+
patching_status.write_log()
|
|
108
|
+
return branches[backend](obj, *hostargs, **hostkwargs)
|
|
109
|
+
raise RuntimeError(
|
|
110
|
+
f"Undefined backend {backend} in " f"{obj.__class__.__name__}.{method_name}"
|
|
111
|
+
)
|
|
112
|
+
else:
|
|
113
|
+
return branches["onedal"](obj, *args, **kwargs)
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
def wrap_output_data(func):
|
|
117
|
+
"""
|
|
118
|
+
Converts and moves the output arrays of the decorated function
|
|
119
|
+
to match the input array type and device.
|
|
120
|
+
"""
|
|
121
|
+
|
|
122
|
+
@wraps(func)
|
|
123
|
+
def wrapper(self, *args, **kwargs):
|
|
124
|
+
result = func(self, *args, **kwargs)
|
|
125
|
+
if not (len(args) == 0 and len(kwargs) == 0):
|
|
126
|
+
data = (*args, *kwargs.values())
|
|
127
|
+
usm_iface = getattr(data[0], "__sycl_usm_array_interface__", None)
|
|
128
|
+
if usm_iface is not None:
|
|
129
|
+
result = _copy_to_usm(usm_iface["syclobj"], result)
|
|
130
|
+
if dpnp_available and isinstance(data[0], dpnp.ndarray):
|
|
131
|
+
result = _convert_to_dpnp(result)
|
|
132
|
+
return result
|
|
133
|
+
config = get_config()
|
|
134
|
+
if not ("transform_output" in config and config["transform_output"]):
|
|
135
|
+
input_array_api = getattr(data[0], "__array_namespace__", lambda: None)()
|
|
136
|
+
if input_array_api:
|
|
137
|
+
input_array_api_device = data[0].device
|
|
138
|
+
result = _asarray(
|
|
139
|
+
result, input_array_api, device=input_array_api_device
|
|
140
|
+
)
|
|
141
|
+
return result
|
|
142
|
+
|
|
143
|
+
return wrapper
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import logging
|
|
18
18
|
import os
|
|
19
19
|
import re
|
|
20
|
+
import sys
|
|
20
21
|
import warnings
|
|
21
22
|
from abc import ABC
|
|
22
23
|
|
|
@@ -51,7 +52,7 @@ class PatchingConditionsChain(daal4py_PatchingConditionsChain):
|
|
|
51
52
|
else:
|
|
52
53
|
self.logger.debug(
|
|
53
54
|
f"{self.scope_name}: debugging for the patch is enabled to track"
|
|
54
|
-
" the usage of
|
|
55
|
+
" the usage of oneAPI Data Analytics Library (oneDAL)"
|
|
55
56
|
)
|
|
56
57
|
for message in self.messages:
|
|
57
58
|
self.logger.debug(
|
|
@@ -143,7 +144,7 @@ def register_hyperparameters(hyperparameters_map):
|
|
|
143
144
|
|
|
144
145
|
# This abstract class is meant to generate a clickable doc link for classses
|
|
145
146
|
# in sklearnex that are not part of base scikit-learn.
|
|
146
|
-
class
|
|
147
|
+
class ExtensionEstimator(BaseForHTMLDocLink):
|
|
147
148
|
@property
|
|
148
149
|
def _doc_link_module(self) -> str:
|
|
149
150
|
return "sklearnex"
|
|
@@ -155,6 +156,31 @@ class IntelEstimator(BaseForHTMLDocLink):
|
|
|
155
156
|
return f"https://uxlfoundation.github.io/scikit-learn-intelex/latest/non-scikit-algorithms.html#{module_path}.{class_name}"
|
|
156
157
|
|
|
157
158
|
|
|
159
|
+
def _add_inc_serialization_note(class_docstrings: str) -> str:
|
|
160
|
+
"""Adds a small note note about serialization for extension estimators that are incremental.
|
|
161
|
+
The class docstrings should leave a placeholder '%incremental_serialization_note%' inside
|
|
162
|
+
their docstrings, which will be replaced by this note.
|
|
163
|
+
"""
|
|
164
|
+
# In python versions >=3.13, leading whitespace in docstrings defined through
|
|
165
|
+
# static strings (but **not through other ways**) is automatically removed
|
|
166
|
+
# from the final docstrings, while in earlier versions is kept.
|
|
167
|
+
inc_serialization_note = """Note
|
|
168
|
+
----
|
|
169
|
+
Serializing instances of this class will trigger a forced finalization of calculations
|
|
170
|
+
when the inputs are in a sycl queue or when using GPUs. Since (internal method)
|
|
171
|
+
finalize_fit can't be dispatched without directly provided queue and the dispatching
|
|
172
|
+
policy can't be serialized, the computation is finalized during serialization call and
|
|
173
|
+
the policy is not saved in serialized data."""
|
|
174
|
+
if sys.version_info.major == 3 and sys.version_info.minor <= 12:
|
|
175
|
+
inc_serialization_note = re.sub(
|
|
176
|
+
r"^", " " * 4, inc_serialization_note, flags=re.MULTILINE
|
|
177
|
+
)
|
|
178
|
+
inc_serialization_note = inc_serialization_note.strip()
|
|
179
|
+
return class_docstrings.replace(
|
|
180
|
+
r"%incremental_serialization_note%", inc_serialization_note
|
|
181
|
+
)
|
|
182
|
+
|
|
183
|
+
|
|
158
184
|
# This abstract class is meant to generate a clickable doc link for classses
|
|
159
185
|
# in sklearnex that have counterparts in scikit-learn.
|
|
160
186
|
class PatchableEstimator(BaseForHTMLDocLink):
|