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
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright 2024 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
|
+
import logging
|
|
18
|
+
from typing import Any, Callable, Literal, Optional
|
|
19
|
+
|
|
20
|
+
from onedal import Backend, _default_backend, _spmd_backend
|
|
21
|
+
from onedal.utils import _sycl_queue_manager as QM
|
|
22
|
+
|
|
23
|
+
logger = logging.getLogger("sklearnex")
|
|
24
|
+
|
|
25
|
+
# define types for backend functions: default, dpc, spmd
|
|
26
|
+
BackendType = Literal["none", "host", "dpc", "spmd"]
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class BackendManager:
|
|
30
|
+
def __init__(self, backend_module):
|
|
31
|
+
self.backend = backend_module
|
|
32
|
+
|
|
33
|
+
def get_backend_type(self) -> BackendType:
|
|
34
|
+
if self.backend is None:
|
|
35
|
+
return "none"
|
|
36
|
+
if self.backend.is_spmd:
|
|
37
|
+
return "spmd"
|
|
38
|
+
if self.backend.is_dpc:
|
|
39
|
+
return "dpc"
|
|
40
|
+
return "host"
|
|
41
|
+
|
|
42
|
+
def get_backend_component(self, module_name: str, component_name: str):
|
|
43
|
+
"""Get a component of the backend module.
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
|
+
module(str): The module to get the component from.
|
|
47
|
+
component: The component to get from the module.
|
|
48
|
+
|
|
49
|
+
Returns:
|
|
50
|
+
The component of the module.
|
|
51
|
+
"""
|
|
52
|
+
submodules = module_name.split(".")
|
|
53
|
+
module = getattr(self.backend, submodules[0])
|
|
54
|
+
for submodule in submodules[1:]:
|
|
55
|
+
module = getattr(module, submodule)
|
|
56
|
+
|
|
57
|
+
# component can be provided like submodule.method, there can be arbitrary number of submodules
|
|
58
|
+
# and methods
|
|
59
|
+
result = module
|
|
60
|
+
for part in component_name.split("."):
|
|
61
|
+
result = getattr(result, part)
|
|
62
|
+
|
|
63
|
+
return result
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
default_manager = BackendManager(_default_backend)
|
|
67
|
+
spmd_manager = BackendManager(_spmd_backend)
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class BackendFunction:
|
|
71
|
+
"""Wrapper around backend function to allow setting auxiliary information"""
|
|
72
|
+
|
|
73
|
+
def __init__(
|
|
74
|
+
self,
|
|
75
|
+
method: Callable[..., Any],
|
|
76
|
+
backend: Backend,
|
|
77
|
+
name: str,
|
|
78
|
+
no_policy: bool,
|
|
79
|
+
):
|
|
80
|
+
self.method = method
|
|
81
|
+
self.name = name
|
|
82
|
+
self.backend = backend
|
|
83
|
+
self.no_policy = no_policy
|
|
84
|
+
|
|
85
|
+
def __call__(self, *args: Any, **kwargs: Any) -> Any:
|
|
86
|
+
"""Dispatch to backend function with the appropriate policy which is determined from the global queue"""
|
|
87
|
+
if not args and not kwargs:
|
|
88
|
+
# immediate dispatching without any arguments, in particular no policy
|
|
89
|
+
return self.method()
|
|
90
|
+
|
|
91
|
+
if self.no_policy:
|
|
92
|
+
return self.method(*args, **kwargs)
|
|
93
|
+
|
|
94
|
+
# use globally configured queue (from `target_offload` configuration or provided data)
|
|
95
|
+
queue = QM.get_global_queue()
|
|
96
|
+
|
|
97
|
+
if queue is not None and not (self.backend.is_dpc or self.backend.is_spmd):
|
|
98
|
+
raise RuntimeError("Operations using queues require the DPC/SPMD backend")
|
|
99
|
+
|
|
100
|
+
if self.backend.is_spmd and queue is None:
|
|
101
|
+
raise RuntimeError("Executing functions from SPMD backend requires a queue")
|
|
102
|
+
|
|
103
|
+
# craft the correct policy including the device queue
|
|
104
|
+
if queue is None:
|
|
105
|
+
policy = self.backend.host_policy()
|
|
106
|
+
elif self.backend.is_spmd:
|
|
107
|
+
policy = self.backend.spmd_data_parallel_policy(queue)
|
|
108
|
+
elif self.backend.is_dpc:
|
|
109
|
+
policy = self.backend.data_parallel_policy(queue)
|
|
110
|
+
else:
|
|
111
|
+
policy = self.backend.host_policy()
|
|
112
|
+
|
|
113
|
+
logger.debug(
|
|
114
|
+
f"Dispatching function '{self.name}' with policy {policy} to {self.backend}"
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
# dispatch to backend function
|
|
118
|
+
return self.method(policy, *args, **kwargs)
|
|
119
|
+
|
|
120
|
+
def __repr__(self) -> str:
|
|
121
|
+
return f"BackendFunction({self.backend}.{self.name})"
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
def __decorator(
|
|
125
|
+
method: Callable[..., Any],
|
|
126
|
+
backend_manager: BackendManager,
|
|
127
|
+
module_name: str,
|
|
128
|
+
lookup_name: Optional[str],
|
|
129
|
+
no_policy: bool,
|
|
130
|
+
) -> Callable[..., Any]:
|
|
131
|
+
"""Decorator to bind a method to the specified backend"""
|
|
132
|
+
if lookup_name is None:
|
|
133
|
+
lookup_name = method.__name__
|
|
134
|
+
|
|
135
|
+
if backend_manager.get_backend_type() == "none":
|
|
136
|
+
raise RuntimeError("Internal __decorator() should not be called with no backend")
|
|
137
|
+
|
|
138
|
+
backend_method = backend_manager.get_backend_component(module_name, lookup_name)
|
|
139
|
+
wrapped_method = BackendFunction(
|
|
140
|
+
backend_method,
|
|
141
|
+
backend_manager.backend,
|
|
142
|
+
name=f"{module_name}.{method.__name__}",
|
|
143
|
+
no_policy=no_policy,
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
backend_type = backend_manager.get_backend_type()
|
|
147
|
+
logger.debug(
|
|
148
|
+
f"Assigned method '<{backend_type}_backend>.{module_name}.{lookup_name}' to '{method.__qualname__}'"
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
return wrapped_method
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
def bind_default_backend(
|
|
155
|
+
module_name: str, lookup_name: Optional[str] = None, no_policy=False
|
|
156
|
+
):
|
|
157
|
+
"""
|
|
158
|
+
Decorator to bind a method from the default backend to a class.
|
|
159
|
+
|
|
160
|
+
This decorator binds a method implementation from the default backend (host/dpc).
|
|
161
|
+
If the default backend is unavailable, the method is returned without modification.
|
|
162
|
+
|
|
163
|
+
Parameters:
|
|
164
|
+
----------
|
|
165
|
+
module_name : str
|
|
166
|
+
The name of the module where the target function is located (e.g. `covariance`).
|
|
167
|
+
lookup_name : Optional[str], optional
|
|
168
|
+
The name of the method to look up in the backend module. If not provided,
|
|
169
|
+
the name of the decorated method is used.
|
|
170
|
+
no_policy : bool, optional
|
|
171
|
+
If True, the method will be decorated without a policy. Default is False.
|
|
172
|
+
|
|
173
|
+
Returns:
|
|
174
|
+
-------
|
|
175
|
+
Callable[..., Any]
|
|
176
|
+
The decorated method bound to the implementation in default backend, or the original
|
|
177
|
+
method if the default backend is unavailable.
|
|
178
|
+
"""
|
|
179
|
+
|
|
180
|
+
def decorator(method: Callable[..., Any]):
|
|
181
|
+
# grab the lookup_name from outer scope
|
|
182
|
+
nonlocal lookup_name
|
|
183
|
+
|
|
184
|
+
if _default_backend is None:
|
|
185
|
+
logger.debug(
|
|
186
|
+
f"Default backend unavailable, skipping decoration for '{method.__name__}'"
|
|
187
|
+
)
|
|
188
|
+
return method
|
|
189
|
+
|
|
190
|
+
return __decorator(method, default_manager, module_name, lookup_name, no_policy)
|
|
191
|
+
|
|
192
|
+
return decorator
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
def bind_spmd_backend(
|
|
196
|
+
module_name: str, lookup_name: Optional[str] = None, no_policy=False
|
|
197
|
+
):
|
|
198
|
+
"""
|
|
199
|
+
Decorator to bind a method from the SPMD backend to a class.
|
|
200
|
+
|
|
201
|
+
This decorator binds a method implementation from the SPMD backend.
|
|
202
|
+
If the SPMD backend is unavailable, the method is returned without modification.
|
|
203
|
+
|
|
204
|
+
Parameters:
|
|
205
|
+
----------
|
|
206
|
+
module_name : str
|
|
207
|
+
The name of the module where the target function is located (e.g. `covariance`).
|
|
208
|
+
lookup_name : Optional[str], optional
|
|
209
|
+
The name of the method to look up in the backend module. If not provided,
|
|
210
|
+
the name of the decorated method is used.
|
|
211
|
+
no_policy : bool, optional
|
|
212
|
+
If True, the method will be decorated without a policy. Default is False.
|
|
213
|
+
|
|
214
|
+
Returns:
|
|
215
|
+
-------
|
|
216
|
+
Callable[..., Any]
|
|
217
|
+
The decorated method bound to the implementation in SPMD backend, or the original
|
|
218
|
+
method if the SPMD backend is unavailable.
|
|
219
|
+
"""
|
|
220
|
+
|
|
221
|
+
def decorator(method: Callable[..., Any]):
|
|
222
|
+
# grab the lookup_name from outer scope
|
|
223
|
+
nonlocal lookup_name
|
|
224
|
+
|
|
225
|
+
if _spmd_backend is None:
|
|
226
|
+
logger.debug(
|
|
227
|
+
f"SPMD backend unavailable, skipping decoration for '{method.__name__}'"
|
|
228
|
+
)
|
|
229
|
+
return method
|
|
230
|
+
|
|
231
|
+
return __decorator(method, spmd_manager, module_name, lookup_name, no_policy)
|
|
232
|
+
|
|
233
|
+
return decorator
|
|
@@ -19,7 +19,7 @@ from typing import Any, Dict, Tuple
|
|
|
19
19
|
from warnings import warn
|
|
20
20
|
|
|
21
21
|
from daal4py.sklearn._utils import daal_check_version
|
|
22
|
-
from onedal import
|
|
22
|
+
from onedal import _default_backend as backend
|
|
23
23
|
|
|
24
24
|
if not daal_check_version((2024, "P", 0)):
|
|
25
25
|
warn("Hyperparameters are supported in oneDAL starting from 2024.0.0 version.")
|
|
@@ -98,11 +98,11 @@ else:
|
|
|
98
98
|
(
|
|
99
99
|
"linear_regression",
|
|
100
100
|
"train",
|
|
101
|
-
):
|
|
102
|
-
("covariance", "compute"):
|
|
101
|
+
): backend.linear_model.regression.train_hyperparameters(),
|
|
102
|
+
("covariance", "compute"): backend.covariance.compute_hyperparameters(),
|
|
103
103
|
}
|
|
104
104
|
if daal_check_version((2024, "P", 300)):
|
|
105
|
-
df_infer_hp =
|
|
105
|
+
df_infer_hp = backend.decision_forest.infer_hyperparameters
|
|
106
106
|
hyperparameters_backend[("decision_forest", "infer")] = df_infer_hp()
|
|
107
107
|
hyperparameters_map = {}
|
|
108
108
|
|
|
@@ -14,16 +14,15 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
# ==============================================================================
|
|
16
16
|
|
|
17
|
-
import numpy as np
|
|
18
17
|
import pytest
|
|
19
18
|
|
|
20
|
-
from onedal import
|
|
19
|
+
from onedal import _default_backend as backend
|
|
21
20
|
from onedal.tests.utils._device_selection import get_queues
|
|
22
21
|
from onedal.utils._dpep_helpers import dpctl_available
|
|
23
22
|
|
|
24
23
|
|
|
25
24
|
@pytest.mark.skipif(
|
|
26
|
-
not
|
|
25
|
+
not backend.is_dpc or not dpctl_available, reason="requires dpc backend and dpctl"
|
|
27
26
|
)
|
|
28
27
|
@pytest.mark.parametrize("device_type", ["cpu", "gpu"])
|
|
29
28
|
@pytest.mark.parametrize("device_number", [None, 0, 1, 2, 3])
|
|
@@ -32,7 +31,7 @@ def test_sycl_queue_string_creation(device_type, device_number):
|
|
|
32
31
|
from dpctl import SyclQueue
|
|
33
32
|
from dpctl._sycl_queue import SyclQueueCreationError
|
|
34
33
|
|
|
35
|
-
onedal_SyclQueue =
|
|
34
|
+
onedal_SyclQueue = backend.SyclQueue
|
|
36
35
|
|
|
37
36
|
device = (
|
|
38
37
|
":".join([device_type, str(device_number)])
|
|
@@ -63,14 +62,14 @@ def test_sycl_queue_string_creation(device_type, device_number):
|
|
|
63
62
|
|
|
64
63
|
|
|
65
64
|
@pytest.mark.skipif(
|
|
66
|
-
not
|
|
65
|
+
not backend.is_dpc or not dpctl_available, reason="requires dpc backend and dpctl"
|
|
67
66
|
)
|
|
68
67
|
@pytest.mark.parametrize("queue", get_queues())
|
|
69
68
|
def test_sycl_queue_conversion(queue):
|
|
70
69
|
if queue is None:
|
|
71
70
|
pytest.skip("Not a dpctl queue")
|
|
72
71
|
SyclQueue = queue.__class__
|
|
73
|
-
onedal_SyclQueue =
|
|
72
|
+
onedal_SyclQueue = backend.SyclQueue
|
|
74
73
|
|
|
75
74
|
q = onedal_SyclQueue(queue)
|
|
76
75
|
|
|
@@ -83,7 +82,7 @@ def test_sycl_queue_conversion(queue):
|
|
|
83
82
|
|
|
84
83
|
|
|
85
84
|
@pytest.mark.skipif(
|
|
86
|
-
not
|
|
85
|
+
not backend.is_dpc or not dpctl_available, reason="requires dpc backend and dpctl"
|
|
87
86
|
)
|
|
88
87
|
@pytest.mark.parametrize("queue", get_queues())
|
|
89
88
|
def test_sycl_device_attributes(queue):
|
|
@@ -91,7 +90,7 @@ def test_sycl_device_attributes(queue):
|
|
|
91
90
|
|
|
92
91
|
if queue is None:
|
|
93
92
|
pytest.skip("Not a dpctl queue")
|
|
94
|
-
onedal_SyclQueue =
|
|
93
|
+
onedal_SyclQueue = backend.SyclQueue
|
|
95
94
|
|
|
96
95
|
onedal_queue = onedal_SyclQueue(queue)
|
|
97
96
|
|
|
@@ -107,17 +106,17 @@ def test_sycl_device_attributes(queue):
|
|
|
107
106
|
assert onedal_queue.sycl_device.filter_string in queue.sycl_device.filter_string
|
|
108
107
|
|
|
109
108
|
|
|
110
|
-
@pytest.mark.skipif(not
|
|
109
|
+
@pytest.mark.skipif(not backend.is_dpc, reason="requires dpc backend")
|
|
111
110
|
def test_backend_queue():
|
|
112
111
|
try:
|
|
113
|
-
q =
|
|
112
|
+
q = backend.SyclQueue("cpu")
|
|
114
113
|
except RuntimeError:
|
|
115
114
|
pytest.skip("OpenCL CPU runtime not installed")
|
|
116
115
|
|
|
117
116
|
# verify copying via a py capsule object is functional
|
|
118
|
-
q2 =
|
|
117
|
+
q2 = backend.SyclQueue(q._get_capsule())
|
|
119
118
|
# verify copying via the _get_capsule attribute
|
|
120
|
-
q3 =
|
|
119
|
+
q3 = backend.SyclQueue(q)
|
|
121
120
|
|
|
122
121
|
q_array = [q, q2, q3]
|
|
123
122
|
|
|
@@ -126,3 +125,19 @@ def test_backend_queue():
|
|
|
126
125
|
assert all([queue.sycl_device.is_cpu for queue in q_array])
|
|
127
126
|
assert all([not queue.sycl_device.is_gpu for queue in q_array])
|
|
128
127
|
assert all(["cpu" in queue.sycl_device.filter_string for queue in q_array])
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
@pytest.mark.skipif(
|
|
131
|
+
not backend.is_dpc or not dpctl_available, reason="requires dpc backend and dpctl"
|
|
132
|
+
)
|
|
133
|
+
def test_backend_device_id():
|
|
134
|
+
"""verify dpctl device id matches our internal device id"""
|
|
135
|
+
import dpctl
|
|
136
|
+
|
|
137
|
+
for i in range(dpctl.get_num_devices()):
|
|
138
|
+
device = dpctl.SyclDevice(str(i))
|
|
139
|
+
if device.is_gpu or device.is_cpu:
|
|
140
|
+
backend_device = backend.SyclDevice(i)
|
|
141
|
+
assert (
|
|
142
|
+
i == backend_device.get_device_id()
|
|
143
|
+
), f"backend id does not match device_id: {i}"
|
|
@@ -17,20 +17,27 @@ from abc import ABCMeta
|
|
|
17
17
|
|
|
18
18
|
import numpy as np
|
|
19
19
|
|
|
20
|
-
from daal4py.sklearn._utils import daal_check_version
|
|
21
|
-
from onedal.
|
|
20
|
+
from daal4py.sklearn._utils import daal_check_version
|
|
21
|
+
from onedal._device_offload import supports_queue
|
|
22
|
+
from onedal.common._backend import bind_default_backend
|
|
23
|
+
from onedal.utils.validation import _check_array
|
|
22
24
|
|
|
23
|
-
from ..
|
|
25
|
+
from .._config import _get_config
|
|
24
26
|
from ..common.hyperparameters import get_hyperparameters
|
|
25
27
|
from ..datatypes import from_table, to_table
|
|
28
|
+
from ..utils._array_api import _get_sycl_namespace
|
|
29
|
+
from ..utils.validation import _check_array
|
|
26
30
|
|
|
27
31
|
|
|
28
|
-
class BaseEmpiricalCovariance(
|
|
32
|
+
class BaseEmpiricalCovariance(metaclass=ABCMeta):
|
|
29
33
|
def __init__(self, method="dense", bias=False, assume_centered=False):
|
|
30
34
|
self.method = method
|
|
31
35
|
self.bias = bias
|
|
32
36
|
self.assume_centered = assume_centered
|
|
33
37
|
|
|
38
|
+
@bind_default_backend("covariance")
|
|
39
|
+
def compute(self, *args, **kwargs): ...
|
|
40
|
+
|
|
34
41
|
def _get_onedal_params(self, dtype=np.float32):
|
|
35
42
|
params = {
|
|
36
43
|
"fptype": dtype,
|
|
@@ -73,6 +80,7 @@ class EmpiricalCovariance(BaseEmpiricalCovariance):
|
|
|
73
80
|
Estimated covariance matrix
|
|
74
81
|
"""
|
|
75
82
|
|
|
83
|
+
@supports_queue
|
|
76
84
|
def fit(self, X, y=None, queue=None):
|
|
77
85
|
"""Fit the sample covariance matrix of X.
|
|
78
86
|
|
|
@@ -93,30 +101,30 @@ class EmpiricalCovariance(BaseEmpiricalCovariance):
|
|
|
93
101
|
self : object
|
|
94
102
|
Returns the instance itself.
|
|
95
103
|
"""
|
|
96
|
-
|
|
97
|
-
|
|
104
|
+
use_raw_input = _get_config()["use_raw_input"] is True
|
|
105
|
+
sua_iface, _, _ = _get_sycl_namespace(X)
|
|
106
|
+
if use_raw_input and sua_iface:
|
|
107
|
+
queue = X.sycl_queue
|
|
108
|
+
|
|
109
|
+
if not use_raw_input:
|
|
110
|
+
X = _check_array(X, dtype=[np.float64, np.float32])
|
|
98
111
|
X = to_table(X, queue=queue)
|
|
112
|
+
|
|
99
113
|
params = self._get_onedal_params(X.dtype)
|
|
100
114
|
hparams = get_hyperparameters("covariance", "compute")
|
|
101
115
|
if hparams is not None and not hparams.is_default:
|
|
102
|
-
result = self.
|
|
103
|
-
"covariance",
|
|
104
|
-
None,
|
|
105
|
-
"compute",
|
|
106
|
-
policy,
|
|
107
|
-
params,
|
|
108
|
-
hparams.backend,
|
|
109
|
-
X,
|
|
110
|
-
)
|
|
116
|
+
result = self.compute(params, hparams.backend, X)
|
|
111
117
|
else:
|
|
112
|
-
result = self.
|
|
118
|
+
result = self.compute(params, X)
|
|
113
119
|
if daal_check_version((2024, "P", 1)) or (not self.bias):
|
|
114
|
-
self.covariance_ = from_table(result.cov_matrix)
|
|
120
|
+
self.covariance_ = from_table(result.cov_matrix, sycl_queue=queue)
|
|
115
121
|
else:
|
|
116
122
|
self.covariance_ = (
|
|
117
|
-
from_table(result.cov_matrix
|
|
123
|
+
from_table(result.cov_matrix, sycl_queue=queue)
|
|
124
|
+
* (X.shape[0] - 1)
|
|
125
|
+
/ X.shape[0]
|
|
118
126
|
)
|
|
119
127
|
|
|
120
|
-
self.location_ = from_table(result.means).ravel()
|
|
128
|
+
self.location_ = from_table(result.means, sycl_queue=queue).ravel()
|
|
121
129
|
|
|
122
130
|
return self
|
|
@@ -13,12 +13,18 @@
|
|
|
13
13
|
# See the License for the specific language governing permissions and
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
# ===============================================================================
|
|
16
|
+
|
|
16
17
|
import numpy as np
|
|
17
18
|
|
|
18
|
-
from daal4py.sklearn._utils import daal_check_version
|
|
19
|
+
from daal4py.sklearn._utils import daal_check_version
|
|
20
|
+
from onedal._device_offload import supports_queue
|
|
21
|
+
from onedal.common._backend import bind_default_backend
|
|
22
|
+
from onedal.utils import _sycl_queue_manager as QM
|
|
19
23
|
|
|
24
|
+
from .._config import _get_config
|
|
20
25
|
from ..datatypes import from_table, to_table
|
|
21
|
-
from ..utils import
|
|
26
|
+
from ..utils._array_api import _get_sycl_namespace
|
|
27
|
+
from ..utils.validation import _check_array
|
|
22
28
|
from .covariance import BaseEmpiricalCovariance
|
|
23
29
|
|
|
24
30
|
|
|
@@ -55,12 +61,21 @@ class IncrementalEmpiricalCovariance(BaseEmpiricalCovariance):
|
|
|
55
61
|
def __init__(self, method="dense", bias=False, assume_centered=False):
|
|
56
62
|
super().__init__(method, bias, assume_centered)
|
|
57
63
|
self._reset()
|
|
64
|
+
self._queue = None
|
|
65
|
+
|
|
66
|
+
@bind_default_backend("covariance")
|
|
67
|
+
def partial_compute(self, params, partial_result, X_table): ...
|
|
68
|
+
|
|
69
|
+
@bind_default_backend("covariance")
|
|
70
|
+
def partial_compute_result(self): ...
|
|
71
|
+
|
|
72
|
+
@bind_default_backend("covariance")
|
|
73
|
+
def finalize_compute(self, params, partial_result): ...
|
|
58
74
|
|
|
59
75
|
def _reset(self):
|
|
60
76
|
self._need_to_finalize = False
|
|
61
|
-
self.
|
|
62
|
-
|
|
63
|
-
)
|
|
77
|
+
self._queue = None
|
|
78
|
+
self._partial_result = self.partial_compute_result()
|
|
64
79
|
|
|
65
80
|
def __getstate__(self):
|
|
66
81
|
# Since finalize_fit can't be dispatched without directly provided queue
|
|
@@ -73,6 +88,7 @@ class IncrementalEmpiricalCovariance(BaseEmpiricalCovariance):
|
|
|
73
88
|
|
|
74
89
|
return data
|
|
75
90
|
|
|
91
|
+
@supports_queue
|
|
76
92
|
def partial_fit(self, X, y=None, queue=None):
|
|
77
93
|
"""
|
|
78
94
|
Computes partial data for the covariance matrix
|
|
@@ -95,30 +111,27 @@ class IncrementalEmpiricalCovariance(BaseEmpiricalCovariance):
|
|
|
95
111
|
self : object
|
|
96
112
|
Returns the instance itself.
|
|
97
113
|
"""
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
self._queue = queue
|
|
114
|
+
use_raw_input = _get_config()["use_raw_input"] is True
|
|
115
|
+
sua_iface, _, _ = _get_sycl_namespace(X)
|
|
101
116
|
|
|
102
|
-
|
|
117
|
+
if use_raw_input and sua_iface:
|
|
118
|
+
queue = X.sycl_queue
|
|
119
|
+
if not use_raw_input:
|
|
120
|
+
X = _check_array(X, dtype=[np.float64, np.float32], ensure_2d=True)
|
|
103
121
|
|
|
122
|
+
self._queue = queue
|
|
104
123
|
X_table = to_table(X, queue=queue)
|
|
105
124
|
|
|
106
125
|
if not hasattr(self, "_dtype"):
|
|
107
126
|
self._dtype = X_table.dtype
|
|
108
127
|
|
|
109
128
|
params = self._get_onedal_params(self._dtype)
|
|
110
|
-
self._partial_result = self.
|
|
111
|
-
"covariance",
|
|
112
|
-
None,
|
|
113
|
-
"partial_compute",
|
|
114
|
-
policy,
|
|
115
|
-
params,
|
|
116
|
-
self._partial_result,
|
|
117
|
-
X_table,
|
|
118
|
-
)
|
|
129
|
+
self._partial_result = self.partial_compute(params, self._partial_result, X_table)
|
|
119
130
|
self._need_to_finalize = True
|
|
131
|
+
# store the queue for when we finalize
|
|
132
|
+
self._queue = queue
|
|
120
133
|
|
|
121
|
-
def finalize_fit(self
|
|
134
|
+
def finalize_fit(self):
|
|
122
135
|
"""
|
|
123
136
|
Finalizes covariance matrix and obtains `covariance_` and `location_`
|
|
124
137
|
attributes from the current `_partial_result`.
|
|
@@ -135,19 +148,9 @@ class IncrementalEmpiricalCovariance(BaseEmpiricalCovariance):
|
|
|
135
148
|
"""
|
|
136
149
|
if self._need_to_finalize:
|
|
137
150
|
params = self._get_onedal_params(self._dtype)
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
policy = self._get_policy(self._queue)
|
|
142
|
-
|
|
143
|
-
result = self._get_backend(
|
|
144
|
-
"covariance",
|
|
145
|
-
None,
|
|
146
|
-
"finalize_compute",
|
|
147
|
-
policy,
|
|
148
|
-
params,
|
|
149
|
-
self._partial_result,
|
|
150
|
-
)
|
|
151
|
+
with QM.manage_global_queue(self._queue):
|
|
152
|
+
result = self.finalize_compute(params, self._partial_result)
|
|
153
|
+
|
|
151
154
|
if daal_check_version((2024, "P", 1)) or (not self.bias):
|
|
152
155
|
self.covariance_ = from_table(result.cov_matrix)
|
|
153
156
|
else:
|
|
@@ -14,11 +14,9 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
# ==============================================================================
|
|
16
16
|
|
|
17
|
-
import warnings
|
|
18
|
-
|
|
19
17
|
import numpy as np
|
|
20
18
|
|
|
21
|
-
from onedal import
|
|
19
|
+
from onedal import _default_backend as backend
|
|
22
20
|
|
|
23
21
|
|
|
24
22
|
def _apply_and_pass(func, *args, **kwargs):
|
|
@@ -29,7 +27,7 @@ def _apply_and_pass(func, *args, **kwargs):
|
|
|
29
27
|
|
|
30
28
|
def _convert_one_to_table(arg, queue=None):
|
|
31
29
|
# All inputs for table conversion must be array-like or sparse, not scalars
|
|
32
|
-
return
|
|
30
|
+
return backend.to_table(np.atleast_2d(arg) if np.isscalar(arg) else arg, queue)
|
|
33
31
|
|
|
34
32
|
|
|
35
33
|
def to_table(*args, queue=None):
|
|
@@ -54,7 +52,7 @@ def to_table(*args, queue=None):
|
|
|
54
52
|
return _apply_and_pass(_convert_one_to_table, *args, queue=queue)
|
|
55
53
|
|
|
56
54
|
|
|
57
|
-
if
|
|
55
|
+
if backend.is_dpc:
|
|
58
56
|
|
|
59
57
|
try:
|
|
60
58
|
# try/catch is used here instead of dpep_helpers because
|
|
@@ -79,8 +77,6 @@ if _is_dpc_backend:
|
|
|
79
77
|
def _table_to_array(table, xp=None):
|
|
80
78
|
return xp.asarray(table)
|
|
81
79
|
|
|
82
|
-
from ..common._policy import _HostInteropPolicy
|
|
83
|
-
|
|
84
80
|
def convert_one_from_table(table, sycl_queue=None, sua_iface=None, xp=None):
|
|
85
81
|
# Currently only `__sycl_usm_array_interface__` protocol used to
|
|
86
82
|
# convert into dpnp/dpctl tensors.
|
|
@@ -96,12 +92,12 @@ if _is_dpc_backend:
|
|
|
96
92
|
# Host tables first converted into numpy.narrays and then to array from xp
|
|
97
93
|
# namespace.
|
|
98
94
|
return xp.asarray(
|
|
99
|
-
|
|
95
|
+
backend.from_table(table), usm_type="device", sycl_queue=sycl_queue
|
|
100
96
|
)
|
|
101
97
|
else:
|
|
102
98
|
return _table_to_array(table, xp=xp)
|
|
103
99
|
|
|
104
|
-
return
|
|
100
|
+
return backend.from_table(table)
|
|
105
101
|
|
|
106
102
|
else:
|
|
107
103
|
|
|
@@ -112,7 +108,7 @@ else:
|
|
|
112
108
|
raise RuntimeError(
|
|
113
109
|
"SYCL usm array conversion from table requires the DPC backend"
|
|
114
110
|
)
|
|
115
|
-
return
|
|
111
|
+
return backend.from_table(table)
|
|
116
112
|
|
|
117
113
|
|
|
118
114
|
def from_table(*args, sycl_queue=None, sua_iface=None, xp=None):
|