scikit-learn-intelex 2025.4.0__py310-none-win_amd64.whl → 2025.6.0__py310-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.6.0.data}/data/Lib/site-packages/daal4py/__main__.py +1 -1
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/_daal4py.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +83 -0
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +922 -0
- scikit_learn_intelex-2025.6.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.6.0.data/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +129 -106
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp310-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +1 -1
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +2 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +12 -8
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +2 -6
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +3 -7
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +41 -153
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.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.6.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.6.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.6.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +30 -7
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +3 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +6 -16
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +4 -7
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +3 -5
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +4 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +8 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +82 -5
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/__init__.py +125 -83
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/_config.py +27 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/_device_offload.py +86 -82
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp310-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +35 -42
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +83 -74
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +57 -24
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/common/_backend.py +233 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +4 -4
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +27 -19
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +35 -32
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +6 -10
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +39 -25
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +28 -16
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +130 -93
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.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.6.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +156 -119
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +5 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +21 -18
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/onedal/svm/svm.py +80 -32
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.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.6.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.6.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.6.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +3 -13
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +14 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +16 -1
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +161 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/onedal/utils/validation.py +47 -16
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/__init__.py +3 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/__main__.py +2 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/_config.py +48 -6
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +194 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/_utils.py +36 -43
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/sklearnex/base.py +109 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +14 -20
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +31 -40
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +10 -11
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +20 -19
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +49 -62
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +9 -20
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +4 -4
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +111 -366
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +1 -1
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +1 -1
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +18 -6
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +37 -85
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +52 -47
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +45 -84
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +17 -20
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +8 -6
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +1 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +1 -1
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +1 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +7 -54
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +6 -5
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +31 -73
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +30 -70
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +5 -13
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +6 -19
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +45 -62
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors}/__init__.py +2 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +15 -28
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +36 -129
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +10 -22
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +34 -127
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +10 -22
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +51 -11
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +62 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +18 -24
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +4 -4
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +89 -60
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +7 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +2 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +8 -22
- {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/METADATA +2 -3
- scikit_learn_intelex-2025.6.0.dist-info/RECORD +257 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/_daal4py.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +0 -424
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp310-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.6.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.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.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.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.6.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.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.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.6.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.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.6.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.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.6.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.6.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.6.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.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.6.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.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.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.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.6.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.6.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.dist-info}/LICENSE.txt +0 -0
- {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/WHEEL +0 -0
- {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/top_level.txt +0 -0
|
@@ -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):
|
|
@@ -19,19 +19,25 @@ import pytest
|
|
|
19
19
|
import scipy.sparse as sp
|
|
20
20
|
from numpy.testing import assert_allclose
|
|
21
21
|
|
|
22
|
-
from onedal import
|
|
22
|
+
from onedal import _default_backend, _dpc_backend
|
|
23
|
+
from onedal._device_offload import supports_queue
|
|
23
24
|
from onedal.datatypes import from_table, to_table
|
|
24
25
|
from onedal.utils._dpep_helpers import dpctl_available
|
|
25
26
|
|
|
27
|
+
backend = _dpc_backend or _default_backend
|
|
28
|
+
|
|
26
29
|
if dpctl_available:
|
|
27
30
|
from onedal.datatypes.tests.common import (
|
|
28
31
|
_assert_sua_iface_fields,
|
|
29
32
|
_assert_tensor_attr,
|
|
30
33
|
)
|
|
31
34
|
|
|
35
|
+
from daal4py.sklearn._utils import get_dtype
|
|
36
|
+
from onedal.cluster.dbscan import DBSCAN
|
|
32
37
|
from onedal.primitives import linear_kernel
|
|
33
38
|
from onedal.tests.utils._dataframes_support import (
|
|
34
39
|
_convert_to_dataframe,
|
|
40
|
+
array_api_modules,
|
|
35
41
|
get_dataframes_and_queues,
|
|
36
42
|
)
|
|
37
43
|
from onedal.tests.utils._device_selection import get_queues
|
|
@@ -53,42 +59,61 @@ unsupported_data_shapes = [
|
|
|
53
59
|
ORDER_DICT = {"F": np.asfortranarray, "C": np.ascontiguousarray}
|
|
54
60
|
|
|
55
61
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
62
|
+
class DummyEstimatorWithTableConversions:
|
|
63
|
+
|
|
64
|
+
@supports_queue
|
|
65
|
+
def fit(self, X, y=None, queue=None):
|
|
66
|
+
if not backend.is_dpc:
|
|
67
|
+
raise RuntimeError("Table conversions should be done with DPC backend.")
|
|
68
|
+
|
|
69
|
+
sua_iface, xp, _ = _get_sycl_namespace(X)
|
|
70
|
+
dbscan = DBSCAN()
|
|
71
|
+
types = [xp.float32, xp.float64]
|
|
72
|
+
if get_dtype(X) not in types:
|
|
73
|
+
X = xp.astype(X, dtype=xp.float64)
|
|
74
|
+
dtype = get_dtype(X)
|
|
75
|
+
params = dbscan._get_onedal_params(dtype)
|
|
76
|
+
X_table = to_table(X)
|
|
77
|
+
# TODO:
|
|
78
|
+
# check other candidates for the dummy base oneDAL func.
|
|
79
|
+
# oneDAL backend func is needed to check result table checks.
|
|
80
|
+
result = dbscan.compute(params, X_table, to_table(None))
|
|
81
|
+
result_responses_table = result.responses
|
|
82
|
+
result_responses_df = from_table(
|
|
83
|
+
result_responses_table,
|
|
84
|
+
sua_iface=sua_iface,
|
|
85
|
+
sycl_queue=X.sycl_queue,
|
|
86
|
+
xp=xp,
|
|
87
|
+
)
|
|
88
|
+
return X_table, result_responses_table, result_responses_df
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
class _OnlyDLTensor:
|
|
92
|
+
"""This is a temporary class to force use of the '__dlpack__' logic branch
|
|
93
|
+
in `to_table` as `__dlpack__` conversion is lower priority by design.
|
|
94
|
+
dpctl data with CPU SyclQueues are shown as on KDLOneAPI devices, which serve
|
|
95
|
+
to test the SYCL device support in `__dlpack__` logic without GPU hardware.
|
|
96
|
+
This takes inspiration from sklearn's `_NotAnArray`."""
|
|
97
|
+
|
|
98
|
+
def __init__(self, data):
|
|
99
|
+
self.data = data
|
|
100
|
+
|
|
101
|
+
def __dlpack__(self):
|
|
102
|
+
return self.data.__dlpack__()
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def _to_table_supported(array):
|
|
106
|
+
"""This function provides a quick and easy way to determine characteristics
|
|
107
|
+
or behaviors of the to_table function. For example, returned errors are
|
|
108
|
+
tested and are firstly dependent if they are of a proper array type. This is
|
|
109
|
+
pertinent for circumstances such as direct use of other dataframe types (e.g.
|
|
110
|
+
Pandas)."""
|
|
111
|
+
return (
|
|
112
|
+
isinstance(array, np.ndarray)
|
|
113
|
+
or hasattr(array, "__sycl_usm_ndarray_interface__")
|
|
114
|
+
or hasattr(array, "__dlpack__")
|
|
115
|
+
or sp.issparse(array)
|
|
116
|
+
)
|
|
92
117
|
|
|
93
118
|
|
|
94
119
|
def _test_input_format_c_contiguous_numpy(queue, dtype):
|
|
@@ -221,7 +246,7 @@ def test_conversion_to_table(dtype):
|
|
|
221
246
|
reason="dpctl is required for checks.",
|
|
222
247
|
)
|
|
223
248
|
@pytest.mark.skipif(
|
|
224
|
-
not
|
|
249
|
+
not backend.is_dpc,
|
|
225
250
|
reason="__sycl_usm_array_interface__ support requires DPC backend.",
|
|
226
251
|
)
|
|
227
252
|
@pytest.mark.parametrize(
|
|
@@ -229,7 +254,7 @@ def test_conversion_to_table(dtype):
|
|
|
229
254
|
)
|
|
230
255
|
@pytest.mark.parametrize("order", ["C", "F"])
|
|
231
256
|
@pytest.mark.parametrize("dtype", [np.float32, np.float64, np.int32, np.int64])
|
|
232
|
-
def
|
|
257
|
+
def test_input_zero_copy_sycl_usm(dataframe, queue, order, dtype):
|
|
233
258
|
"""Checking that values representing USM allocations `__sycl_usm_array_interface__`
|
|
234
259
|
are preserved during conversion to onedal table.
|
|
235
260
|
"""
|
|
@@ -257,7 +282,7 @@ def test_input_sua_iface_zero_copy(dataframe, queue, order, dtype):
|
|
|
257
282
|
reason="dpctl is required for checks.",
|
|
258
283
|
)
|
|
259
284
|
@pytest.mark.skipif(
|
|
260
|
-
not
|
|
285
|
+
not backend.is_dpc,
|
|
261
286
|
reason="__sycl_usm_array_interface__ support requires DPC backend.",
|
|
262
287
|
)
|
|
263
288
|
@pytest.mark.parametrize(
|
|
@@ -266,7 +291,7 @@ def test_input_sua_iface_zero_copy(dataframe, queue, order, dtype):
|
|
|
266
291
|
@pytest.mark.parametrize("order", ["F", "C"])
|
|
267
292
|
@pytest.mark.parametrize("data_shape", data_shapes)
|
|
268
293
|
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
269
|
-
def
|
|
294
|
+
def test_table_conversions_sycl_usm(dataframe, queue, order, data_shape, dtype):
|
|
270
295
|
"""Checking that values representing USM allocations `__sycl_usm_array_interface__`
|
|
271
296
|
are preserved during conversion to onedal table and from onedal table to
|
|
272
297
|
sycl usm array dataformat.
|
|
@@ -313,32 +338,25 @@ def test_table_conversions(dataframe, queue, order, data_shape, dtype):
|
|
|
313
338
|
)
|
|
314
339
|
|
|
315
340
|
|
|
316
|
-
@pytest.mark.skipif(
|
|
317
|
-
not _is_dpc_backend,
|
|
318
|
-
reason="__sycl_usm_array_interface__ support requires DPC backend.",
|
|
319
|
-
)
|
|
320
341
|
@pytest.mark.parametrize(
|
|
321
|
-
"dataframe,queue", get_dataframes_and_queues("dpctl,dpnp", "cpu,gpu")
|
|
342
|
+
"dataframe,queue", get_dataframes_and_queues("numpy,dpctl,dpnp,array_api", "cpu,gpu")
|
|
322
343
|
)
|
|
323
344
|
@pytest.mark.parametrize("data_shape", unsupported_data_shapes)
|
|
324
|
-
def
|
|
345
|
+
def test_interop_invalid_shape(dataframe, queue, data_shape):
|
|
325
346
|
X = np.zeros(data_shape)
|
|
326
347
|
X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
327
|
-
sua_iface, _, _ = _get_sycl_namespace(X)
|
|
328
348
|
|
|
329
|
-
expected_err_msg = (
|
|
330
|
-
|
|
331
|
-
|
|
349
|
+
expected_err_msg = r"Input array has wrong dimensionality \(must be 2d\)."
|
|
350
|
+
if dataframe in "dpctl,dpnp":
|
|
351
|
+
expected_err_msg = (
|
|
352
|
+
"Unable to convert from SUA interface: only 1D & 2D tensors are allowed"
|
|
353
|
+
)
|
|
332
354
|
with pytest.raises(ValueError, match=expected_err_msg):
|
|
333
355
|
to_table(X)
|
|
334
356
|
|
|
335
357
|
|
|
336
|
-
@pytest.mark.skipif(
|
|
337
|
-
not _is_dpc_backend,
|
|
338
|
-
reason="__sycl_usm_array_interface__ support requires DPC backend.",
|
|
339
|
-
)
|
|
340
358
|
@pytest.mark.parametrize(
|
|
341
|
-
"dataframe,queue", get_dataframes_and_queues("dpctl,dpnp", "cpu,gpu")
|
|
359
|
+
"dataframe,queue", get_dataframes_and_queues("dpctl,dpnp,array_api", "cpu,gpu")
|
|
342
360
|
)
|
|
343
361
|
@pytest.mark.parametrize(
|
|
344
362
|
"dtype",
|
|
@@ -348,17 +366,16 @@ def test_sua_iface_interop_invalid_shape(dataframe, queue, data_shape):
|
|
|
348
366
|
pytest.param(np.uint64, id=np.dtype(np.uint64).name),
|
|
349
367
|
],
|
|
350
368
|
)
|
|
351
|
-
def
|
|
369
|
+
def test_interop_unsupported_dtypes(dataframe, queue, dtype):
|
|
352
370
|
# sua iface interobility supported only for oneDAL supported dtypes
|
|
353
371
|
# for input data: int32, int64, float32, float64.
|
|
354
372
|
# Checking some common dtypes supported by dpctl, dpnp for exception
|
|
355
373
|
# raise.
|
|
356
374
|
X = np.zeros((10, 20), dtype=dtype)
|
|
357
375
|
X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
358
|
-
|
|
376
|
+
expected_err_msg = r"Found unsupported (array|tensor) type"
|
|
359
377
|
|
|
360
|
-
|
|
361
|
-
with pytest.raises(ValueError, match=expected_err_msg):
|
|
378
|
+
with pytest.raises(TypeError, match=expected_err_msg):
|
|
362
379
|
to_table(X)
|
|
363
380
|
|
|
364
381
|
|
|
@@ -366,27 +383,25 @@ def test_sua_iface_interop_unsupported_dtypes(dataframe, queue, dtype):
|
|
|
366
383
|
"dataframe,queue", get_dataframes_and_queues("numpy,dpctl,dpnp", "cpu,gpu")
|
|
367
384
|
)
|
|
368
385
|
def test_to_table_non_contiguous_input(dataframe, queue):
|
|
369
|
-
if dataframe in "dpnp,dpctl" and not
|
|
386
|
+
if dataframe in "dpnp,dpctl" and not backend.is_dpc:
|
|
370
387
|
pytest.skip("__sycl_usm_array_interface__ support requires DPC backend.")
|
|
371
388
|
X, _ = np.mgrid[:10, :10]
|
|
372
389
|
X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
373
390
|
X = X[:, :3]
|
|
374
|
-
sua_iface, _, _ = _get_sycl_namespace(X)
|
|
375
|
-
# X expected to be non-contiguous.
|
|
376
391
|
assert not X.flags.c_contiguous and not X.flags.f_contiguous
|
|
377
392
|
X_t = to_table(X)
|
|
378
393
|
assert X_t and X_t.shape == (10, 3) and X_t.has_data
|
|
379
394
|
|
|
380
395
|
|
|
381
396
|
@pytest.mark.skipif(
|
|
382
|
-
|
|
397
|
+
backend.is_dpc,
|
|
383
398
|
reason="Required check should be done if no DPC backend.",
|
|
384
399
|
)
|
|
385
400
|
@pytest.mark.parametrize(
|
|
386
401
|
"dataframe,queue", get_dataframes_and_queues("dpctl,dpnp", "cpu,gpu")
|
|
387
402
|
)
|
|
388
403
|
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
389
|
-
def
|
|
404
|
+
def test_interop_if_no_dpc_backend_sycl_usm(dataframe, queue, dtype):
|
|
390
405
|
X = np.zeros((10, 20), dtype=dtype)
|
|
391
406
|
X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
392
407
|
sua_iface, _, _ = _get_sycl_namespace(X)
|
|
@@ -396,12 +411,7 @@ def test_sua_iface_interop_if_no_dpc_backend(dataframe, queue, dtype):
|
|
|
396
411
|
to_table(X)
|
|
397
412
|
|
|
398
413
|
|
|
399
|
-
|
|
400
|
-
not _is_dpc_backend, reason="Requires DPC backend for dtype conversion"
|
|
401
|
-
)
|
|
402
|
-
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
403
|
-
@pytest.mark.parametrize("sparse", [True, False])
|
|
404
|
-
def test_low_precision_gpu_conversion(dtype, sparse):
|
|
414
|
+
def _test_low_precision_gpu_conversion(dtype, sparse, dataframe):
|
|
405
415
|
# Use a dummy queue as fp32 hardware is not in public testing
|
|
406
416
|
|
|
407
417
|
class DummySyclQueue:
|
|
@@ -418,7 +428,9 @@ def test_low_precision_gpu_conversion(dtype, sparse):
|
|
|
418
428
|
if sparse:
|
|
419
429
|
X = sp.random(100, 100, format="csr", dtype=dtype)
|
|
420
430
|
else:
|
|
421
|
-
X =
|
|
431
|
+
X = _convert_to_dataframe(
|
|
432
|
+
np.random.rand(100, 100).astype(dtype), target_df=dataframe
|
|
433
|
+
)
|
|
422
434
|
|
|
423
435
|
if dtype == np.float64:
|
|
424
436
|
with pytest.warns(
|
|
@@ -434,21 +446,51 @@ def test_low_precision_gpu_conversion(dtype, sparse):
|
|
|
434
446
|
assert_allclose(X, from_table(X_table))
|
|
435
447
|
|
|
436
448
|
|
|
449
|
+
@pytest.mark.skipif(
|
|
450
|
+
not backend.is_dpc, reason="Requires DPC backend for dtype conversion"
|
|
451
|
+
)
|
|
452
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
453
|
+
@pytest.mark.parametrize("sparse", [True, False])
|
|
454
|
+
def test_low_precision_gpu_conversion_numpy(dtype, sparse):
|
|
455
|
+
_test_low_precision_gpu_conversion(dtype, sparse, "numpy")
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
@pytest.mark.skipif(
|
|
459
|
+
not backend.is_dpc or "array_api" not in array_api_modules,
|
|
460
|
+
reason="Requires DPC backend and array_api_strict for the test",
|
|
461
|
+
)
|
|
462
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
463
|
+
def test_low_precision_gpu_conversion_array_api(dtype):
|
|
464
|
+
_test_low_precision_gpu_conversion(dtype, False, "array_api")
|
|
465
|
+
|
|
466
|
+
|
|
437
467
|
@pytest.mark.parametrize("X", [None, 5, "test", True, [], np.pi, lambda: None])
|
|
438
468
|
@pytest.mark.parametrize("queue", get_queues())
|
|
439
469
|
def test_non_array(X, queue):
|
|
440
470
|
# Verify that to and from table doesn't raise errors
|
|
441
471
|
# no guarantee is made about type or content
|
|
472
|
+
error = ValueError
|
|
442
473
|
err_str = ""
|
|
443
474
|
|
|
475
|
+
xp = X.__array_namespace__() if hasattr(X, "__array_namespace__") else np
|
|
476
|
+
types = [xp.float64, xp.float32, xp.int64, xp.int32]
|
|
477
|
+
|
|
444
478
|
if np.isscalar(X):
|
|
445
|
-
if np.atleast_2d(X).dtype not in
|
|
446
|
-
|
|
447
|
-
|
|
479
|
+
if np.atleast_2d(X).dtype not in types:
|
|
480
|
+
error = TypeError
|
|
481
|
+
err_str = r"Found unsupported array type"
|
|
482
|
+
elif _to_table_supported(X):
|
|
483
|
+
if X.dtype not in types:
|
|
484
|
+
error = TypeError
|
|
485
|
+
err_str = r"Found unsupported (array|tensor) type"
|
|
486
|
+
if 0 in X.shape:
|
|
487
|
+
# not set to a consistent string between the various conversions
|
|
488
|
+
err_str = r".*"
|
|
489
|
+
elif X is not None:
|
|
448
490
|
err_str = r"\[convert_to_table\] Not available input format for convert Python object to onedal table."
|
|
449
491
|
|
|
450
492
|
if err_str:
|
|
451
|
-
with pytest.raises(
|
|
493
|
+
with pytest.raises(error, match=err_str):
|
|
452
494
|
to_table(X)
|
|
453
495
|
else:
|
|
454
496
|
X_table = to_table(X, queue=queue)
|
|
@@ -456,10 +498,10 @@ def test_non_array(X, queue):
|
|
|
456
498
|
|
|
457
499
|
|
|
458
500
|
@pytest.mark.skipif(
|
|
459
|
-
not
|
|
501
|
+
not backend.is_dpc, reason="Requires DPC backend for dtype conversion"
|
|
460
502
|
)
|
|
461
503
|
@pytest.mark.parametrize("X", [None, 5, "test", True, [], np.pi, lambda: None])
|
|
462
|
-
def
|
|
504
|
+
def test_low_precision_non_array_numpy(X):
|
|
463
505
|
# Use a dummy queue as fp32 hardware is not in public testing
|
|
464
506
|
|
|
465
507
|
class DummySyclQueue:
|
|
@@ -473,3 +515,62 @@ def test_low_precision_non_array(X):
|
|
|
473
515
|
|
|
474
516
|
queue = DummySyclQueue()
|
|
475
517
|
test_non_array(X, queue)
|
|
518
|
+
|
|
519
|
+
|
|
520
|
+
@pytest.mark.parametrize("X", [5, True, np.pi])
|
|
521
|
+
def test_basic_ndarray_types_numpy(X):
|
|
522
|
+
# Verify that the various supported basic types can go in and out of tables
|
|
523
|
+
test_non_array(np.asarray(X), None)
|
|
524
|
+
|
|
525
|
+
|
|
526
|
+
@pytest.mark.parametrize(
|
|
527
|
+
"dataframe,queue", get_dataframes_and_queues("dpctl,numpy", "cpu,gpu")
|
|
528
|
+
)
|
|
529
|
+
@pytest.mark.parametrize("can_copy", [True, False])
|
|
530
|
+
def test_to_table_non_contiguous_input_dlpack(dataframe, queue, can_copy):
|
|
531
|
+
X, _ = np.mgrid[:10, :10]
|
|
532
|
+
X_df = _convert_to_dataframe(X, sycl_queue=queue, dataframe=dataframe)
|
|
533
|
+
if not hasattr(X_df, "__dlpack__"):
|
|
534
|
+
pytest.skip("underlying array doesn't support dlpack")
|
|
535
|
+
|
|
536
|
+
X_tens = _OnlyDLTensor(X_df[:, :3])
|
|
537
|
+
|
|
538
|
+
# give the _OnlyDLTensor the ability to copy
|
|
539
|
+
if can_copy:
|
|
540
|
+
X_tens.copy = lambda: _OnlyDLTensor(
|
|
541
|
+
X_tens.data.__array_namespace__().copy(X_tens.data)
|
|
542
|
+
if hasattr(X_tens.data, "__array_namespace__")
|
|
543
|
+
else X_tens.data.copy()
|
|
544
|
+
)
|
|
545
|
+
X_table = to_table(X_tens)
|
|
546
|
+
X_out = from_table(X_table)
|
|
547
|
+
assert_allclose(X[:, :3], X_out)
|
|
548
|
+
else:
|
|
549
|
+
with pytest.raises(RuntimeError, match="Wrong strides"):
|
|
550
|
+
to_table(X_tens)
|
|
551
|
+
|
|
552
|
+
|
|
553
|
+
@pytest.mark.parametrize(
|
|
554
|
+
"dataframe,queue", get_dataframes_and_queues("dpctl,numpy", "cpu,gpu")
|
|
555
|
+
)
|
|
556
|
+
@pytest.mark.parametrize("order", ["F", "C"])
|
|
557
|
+
@pytest.mark.parametrize("data_shape", data_shapes)
|
|
558
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
559
|
+
def test_table_conversions_dlpack(dataframe, queue, order, data_shape, dtype):
|
|
560
|
+
"""Test if __dlpack__ data can be properly consumed when only __dlpack__ attribute is exposed.
|
|
561
|
+
This tests kDLOneAPI devices as well as kDLCPU devices
|
|
562
|
+
"""
|
|
563
|
+
rng = np.random.RandomState(0)
|
|
564
|
+
X = np.array(5 * rng.random_sample(data_shape), dtype=dtype)
|
|
565
|
+
|
|
566
|
+
X = ORDER_DICT[order](X)
|
|
567
|
+
|
|
568
|
+
X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
569
|
+
X_tens = _OnlyDLTensor(X_df)
|
|
570
|
+
|
|
571
|
+
X_table = to_table(X_tens)
|
|
572
|
+
X_out = from_table(X_table)
|
|
573
|
+
print(X_table.shape, X_tens.data.shape)
|
|
574
|
+
# oneDAL table construction sets 1d arrays to 2d arrays with 1 col
|
|
575
|
+
# this is counter the numpy strategy, and requires numpy's squeeze
|
|
576
|
+
assert_allclose(np.squeeze(X), np.squeeze(X_out))
|