scikit-learn-intelex 2025.0.1__py312-none-win_amd64.whl → 2025.2.0__py312-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.2.0.data/data/Lib/site-packages/daal4py/_daal4py.cp312-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp312-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +21 -15
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +11 -7
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +9 -5
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +35 -16
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +12 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +91 -10
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +4 -1
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +3 -4
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +6 -3
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/_config.py +1 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/_device_offload.py +15 -40
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +5 -5
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +34 -19
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +16 -72
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +100 -17
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +50 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +5 -10
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +16 -19
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +7 -10
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_policy.py +0 -4
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +22 -13
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/tests/test_policy.py +4 -3
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/common/tests/test_sycl.py +128 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +6 -9
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +41 -26
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +69 -1
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +19 -0
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +121 -0
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/datatypes/tests/common.py +126 -0
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +475 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +42 -32
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +7 -7
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +87 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +30 -14
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +86 -52
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +19 -23
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +9 -11
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +72 -27
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +64 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +110 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +55 -70
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +3 -4
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/svm.py +10 -10
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +8 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +25 -9
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +4 -10
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +19 -24
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +12 -22
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +56 -0
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/utils/tests/test_validation.py +142 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/utils/validation.py +52 -20
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/__init__.py +1 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/_config.py +19 -1
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +17 -12
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/_utils.py +45 -11
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +123 -27
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +65 -34
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +190 -36
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +99 -28
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +12 -7
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +56 -42
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +15 -11
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/conftest.py +9 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +32 -13
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +61 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +30 -19
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +1 -10
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +72 -59
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +40 -20
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +52 -40
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +18 -4
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +114 -75
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +49 -39
- {scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/preview → scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex}/linear_model/ridge.py +390 -419
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +70 -6
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +61 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +41 -41
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +256 -0
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +250 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +16 -11
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +4 -4
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +20 -15
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +18 -14
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +22 -14
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +4 -2
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +1 -1
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +18 -13
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +1 -1
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +30 -14
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +70 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +4 -4
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +7 -8
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +1 -1
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +4 -3
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +1 -1
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +1 -1
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +1 -1
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +1 -1
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +1 -1
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +17 -15
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +1 -1
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +1 -5
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +1 -1
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +58 -47
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +68 -29
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +40 -18
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +66 -27
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +36 -18
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +491 -0
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +123 -0
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +43 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +69 -13
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +4 -11
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +108 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +1 -9
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +43 -13
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +48 -0
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/tests/_utils.py → scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/utils/base.py +117 -9
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/utils/validation.py → scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +3 -1
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +238 -0
- scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/utils/validation.py +208 -0
- {scikit_learn_intelex-2025.0.1.dist-info → scikit_learn_intelex-2025.2.0.dist-info}/METADATA +2 -2
- scikit_learn_intelex-2025.2.0.dist-info/RECORD +259 -0
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/_daal4py.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/datatypes/__init__.py +0 -19
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +0 -95
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +0 -235
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -17
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +0 -24
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -26
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/preview/linear_model/__init__.py +0 -19
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_ridge.py +0 -102
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/tests/test_common.py +0 -54
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -43
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -103
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -19
- scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/utils/tests/test_finite.py +0 -89
- scikit_learn_intelex-2025.0.1.dist-info/RECORD +0 -255
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/mb/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/mb/model_builders.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_base.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_spmd_policy.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
- /scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/tests/_utils_spmd.py → /scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -0
- {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
- {scikit_learn_intelex-2025.0.1.dist-info → scikit_learn_intelex-2025.2.0.dist-info}/LICENSE.txt +0 -0
- {scikit_learn_intelex-2025.0.1.dist-info → scikit_learn_intelex-2025.2.0.dist-info}/WHEEL +0 -0
- {scikit_learn_intelex-2025.0.1.dist-info → scikit_learn_intelex-2025.2.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,126 @@
|
|
|
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
|
+
from onedal.utils._dpep_helpers import dpctl_available, dpnp_available
|
|
18
|
+
|
|
19
|
+
if dpnp_available:
|
|
20
|
+
import dpnp
|
|
21
|
+
|
|
22
|
+
if dpctl_available:
|
|
23
|
+
import dpctl
|
|
24
|
+
from dpctl.tensor import usm_ndarray
|
|
25
|
+
|
|
26
|
+
def _get_sycl_queue(syclobj):
|
|
27
|
+
if hasattr(syclobj, "_get_capsule"):
|
|
28
|
+
return dpctl.SyclQueue(syclobj._get_capsule())
|
|
29
|
+
else:
|
|
30
|
+
return dpctl.SyclQueue(syclobj)
|
|
31
|
+
|
|
32
|
+
def _assert_tensor_attr(actual, desired, order):
|
|
33
|
+
"""Check attributes of two given USM tensors."""
|
|
34
|
+
is_usm_tensor = (
|
|
35
|
+
lambda x: dpnp_available
|
|
36
|
+
and isinstance(x, dpnp.ndarray)
|
|
37
|
+
or isinstance(x, usm_ndarray)
|
|
38
|
+
)
|
|
39
|
+
assert is_usm_tensor(actual)
|
|
40
|
+
assert is_usm_tensor(desired)
|
|
41
|
+
# dpctl.tensor is the dpnp.ndarrays's core tensor structure along
|
|
42
|
+
# with advanced device management. Convert dpnp to dpctl.tensor with zero copy.
|
|
43
|
+
get_tensor = lambda x: (
|
|
44
|
+
x.get_array() if dpnp_available and isinstance(x, dpnp.ndarray) else x
|
|
45
|
+
)
|
|
46
|
+
# Now DPCtl tensors
|
|
47
|
+
actual = get_tensor(actual)
|
|
48
|
+
desired = get_tensor(desired)
|
|
49
|
+
|
|
50
|
+
assert actual.shape == desired.shape
|
|
51
|
+
assert actual.strides == desired.strides
|
|
52
|
+
assert actual.dtype == desired.dtype
|
|
53
|
+
if order == "F":
|
|
54
|
+
assert actual.flags.f_contiguous
|
|
55
|
+
assert desired.flags.f_contiguous
|
|
56
|
+
assert actual.flags.f_contiguous == desired.flags.f_contiguous
|
|
57
|
+
else:
|
|
58
|
+
assert actual.flags.c_contiguous
|
|
59
|
+
assert desired.flags.c_contiguous
|
|
60
|
+
assert actual.flags.c_contiguous == desired.flags.c_contiguous
|
|
61
|
+
assert actual.flags == desired.flags
|
|
62
|
+
assert actual.sycl_queue == desired.sycl_queue
|
|
63
|
+
# TODO:
|
|
64
|
+
# check better way to check usm ptrs.
|
|
65
|
+
assert actual.usm_data._pointer == desired.usm_data._pointer
|
|
66
|
+
|
|
67
|
+
def _assert_sua_iface_fields(
|
|
68
|
+
actual, desired, skip_syclobj=False, skip_data_0=False, skip_data_1=False
|
|
69
|
+
):
|
|
70
|
+
"""Check attributes of two given reprsesentations of
|
|
71
|
+
USM allocations `__sycl_usm_array_interface__`.
|
|
72
|
+
|
|
73
|
+
For full documentation about `__sycl_usm_array_interface__` refer
|
|
74
|
+
https://intelpython.github.io/dpctl/latest/api_reference/dpctl/sycl_usm_array_interface.html.
|
|
75
|
+
|
|
76
|
+
Parameters
|
|
77
|
+
----------
|
|
78
|
+
actual : dict, __sycl_usm_array_interface__
|
|
79
|
+
desired : dict, __sycl_usm_array_interface__
|
|
80
|
+
skip_syclobj : bool, default=False
|
|
81
|
+
If True, check for __sycl_usm_array_interface__["syclobj"]
|
|
82
|
+
will be skipped.
|
|
83
|
+
skip_data_0 : bool, default=False
|
|
84
|
+
If True, check for __sycl_usm_array_interface__["data"][0]
|
|
85
|
+
will be skipped.
|
|
86
|
+
skip_data_1 : bool, default=False
|
|
87
|
+
If True, check for __sycl_usm_array_interface__["data"][1]
|
|
88
|
+
will be skipped.
|
|
89
|
+
"""
|
|
90
|
+
assert hasattr(actual, "__sycl_usm_array_interface__")
|
|
91
|
+
assert hasattr(desired, "__sycl_usm_array_interface__")
|
|
92
|
+
actual_sua_iface = actual.__sycl_usm_array_interface__
|
|
93
|
+
desired_sua_iface = desired.__sycl_usm_array_interface__
|
|
94
|
+
# data: A 2-tuple whose first element is a Python integer encoding
|
|
95
|
+
# USM pointer value. The second entry in the tuple is a read-only flag
|
|
96
|
+
# (True means the data area is read-only).
|
|
97
|
+
if not skip_data_0:
|
|
98
|
+
assert actual_sua_iface["data"][0] == desired_sua_iface["data"][0]
|
|
99
|
+
if not skip_data_1:
|
|
100
|
+
assert actual_sua_iface["data"][1] == desired_sua_iface["data"][1]
|
|
101
|
+
# shape: a tuple of integers describing dimensions of an N-dimensional array.
|
|
102
|
+
# Reformating shapes for check cases (r,) vs (r,1). Contiguous flattened array
|
|
103
|
+
# shape (r,) becoming (r,1) just for the check, since oneDAL supports only (r,1)
|
|
104
|
+
# for 1-D arrays. In code after from_table conversion for 1-D expected outputs
|
|
105
|
+
# xp.ravel or reshape(-1) is used.
|
|
106
|
+
get_shape_if_1d = lambda shape: (shape[0], 1) if len(shape) == 1 else shape
|
|
107
|
+
actual_shape = get_shape_if_1d(actual_sua_iface["shape"])
|
|
108
|
+
desired_shape = get_shape_if_1d(desired_sua_iface["shape"])
|
|
109
|
+
assert actual_shape == desired_shape
|
|
110
|
+
# strides: An optional tuple of integers describing number of array elements
|
|
111
|
+
# needed to jump to the next array element in the corresponding dimensions.
|
|
112
|
+
if not actual_sua_iface["strides"] and not desired_sua_iface["strides"]:
|
|
113
|
+
# None to indicate a C-style contiguous 1D array.
|
|
114
|
+
# onedal4py constructs __sycl_usm_array_interface__["strides"] with
|
|
115
|
+
# real values.
|
|
116
|
+
assert actual_sua_iface["strides"] == desired_sua_iface["strides"]
|
|
117
|
+
# versions: Version of the interface.
|
|
118
|
+
assert actual_sua_iface["version"] == desired_sua_iface["version"]
|
|
119
|
+
# typestr: a string encoding elemental data type of the array.
|
|
120
|
+
assert actual_sua_iface["typestr"] == desired_sua_iface["typestr"]
|
|
121
|
+
# syclobj: Python object from which SYCL context to which represented USM
|
|
122
|
+
# allocation is bound.
|
|
123
|
+
if not skip_syclobj and dpctl_available:
|
|
124
|
+
actual_sycl_queue = _get_sycl_queue(actual_sua_iface["syclobj"])
|
|
125
|
+
desired_sycl_queue = _get_sycl_queue(desired_sua_iface["syclobj"])
|
|
126
|
+
assert actual_sycl_queue == desired_sycl_queue
|
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright 2021 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ==============================================================================
|
|
16
|
+
|
|
17
|
+
import numpy as np
|
|
18
|
+
import pytest
|
|
19
|
+
import scipy.sparse as sp
|
|
20
|
+
from numpy.testing import assert_allclose
|
|
21
|
+
|
|
22
|
+
from onedal import _backend, _is_dpc_backend
|
|
23
|
+
from onedal.datatypes import from_table, to_table
|
|
24
|
+
from onedal.utils._dpep_helpers import dpctl_available
|
|
25
|
+
|
|
26
|
+
if dpctl_available:
|
|
27
|
+
from onedal.datatypes.tests.common import (
|
|
28
|
+
_assert_sua_iface_fields,
|
|
29
|
+
_assert_tensor_attr,
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
from onedal.primitives import linear_kernel
|
|
33
|
+
from onedal.tests.utils._dataframes_support import (
|
|
34
|
+
_convert_to_dataframe,
|
|
35
|
+
get_dataframes_and_queues,
|
|
36
|
+
)
|
|
37
|
+
from onedal.tests.utils._device_selection import get_queues
|
|
38
|
+
from onedal.utils._array_api import _get_sycl_namespace
|
|
39
|
+
|
|
40
|
+
data_shapes = [
|
|
41
|
+
pytest.param((1000, 100), id="(1000, 100)"), # 2-D array
|
|
42
|
+
pytest.param((2000, 50), id="(2000, 50)"), # 2-D array
|
|
43
|
+
pytest.param((50, 1), id="(50, 1)"), # 2-D array
|
|
44
|
+
pytest.param((1, 50), id="(1, 50)"), # 2-D array
|
|
45
|
+
pytest.param((50,), id="(50,)"), # 1-D array
|
|
46
|
+
]
|
|
47
|
+
|
|
48
|
+
unsupported_data_shapes = [
|
|
49
|
+
pytest.param((2, 3, 4), id="(2, 3, 4)"),
|
|
50
|
+
pytest.param((2, 3, 4, 5), id="(2, 3, 4, 5)"),
|
|
51
|
+
]
|
|
52
|
+
|
|
53
|
+
ORDER_DICT = {"F": np.asfortranarray, "C": np.ascontiguousarray}
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
if _is_dpc_backend:
|
|
57
|
+
from daal4py.sklearn._utils import get_dtype
|
|
58
|
+
from onedal.cluster.dbscan import BaseDBSCAN
|
|
59
|
+
from onedal.common._policy import _get_policy
|
|
60
|
+
|
|
61
|
+
class DummyEstimatorWithTableConversions:
|
|
62
|
+
|
|
63
|
+
def fit(self, X, y=None):
|
|
64
|
+
sua_iface, xp, _ = _get_sycl_namespace(X)
|
|
65
|
+
policy = _get_policy(X.sycl_queue, None)
|
|
66
|
+
bs_DBSCAN = BaseDBSCAN()
|
|
67
|
+
types = [xp.float32, xp.float64]
|
|
68
|
+
if get_dtype(X) not in types:
|
|
69
|
+
X = xp.astype(X, dtype=xp.float64)
|
|
70
|
+
dtype = get_dtype(X)
|
|
71
|
+
params = bs_DBSCAN._get_onedal_params(dtype)
|
|
72
|
+
X_table = to_table(X)
|
|
73
|
+
# TODO:
|
|
74
|
+
# check other candidates for the dummy base oneDAL func.
|
|
75
|
+
# oneDAL backend func is needed to check result table checks.
|
|
76
|
+
result = _backend.dbscan.clustering.compute(
|
|
77
|
+
policy, params, X_table, to_table(None)
|
|
78
|
+
)
|
|
79
|
+
result_responses_table = result.responses
|
|
80
|
+
result_responses_df = from_table(
|
|
81
|
+
result_responses_table,
|
|
82
|
+
sua_iface=sua_iface,
|
|
83
|
+
sycl_queue=X.sycl_queue,
|
|
84
|
+
xp=xp,
|
|
85
|
+
)
|
|
86
|
+
return X_table, result_responses_table, result_responses_df
|
|
87
|
+
|
|
88
|
+
else:
|
|
89
|
+
|
|
90
|
+
class DummyEstimatorWithTableConversions:
|
|
91
|
+
pass
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
def _test_input_format_c_contiguous_numpy(queue, dtype):
|
|
95
|
+
rng = np.random.RandomState(0)
|
|
96
|
+
x_default = np.array(5 * rng.random_sample((10, 4)), dtype=dtype)
|
|
97
|
+
|
|
98
|
+
x_numpy = np.asanyarray(x_default, dtype=dtype, order="C")
|
|
99
|
+
assert x_numpy.flags.c_contiguous
|
|
100
|
+
assert not x_numpy.flags.f_contiguous
|
|
101
|
+
assert not x_numpy.flags.fnc
|
|
102
|
+
|
|
103
|
+
expected = linear_kernel(x_default, queue=queue)
|
|
104
|
+
result = linear_kernel(x_numpy, queue=queue)
|
|
105
|
+
assert_allclose(expected, result)
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
109
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
110
|
+
def test_input_format_c_contiguous_numpy(queue, dtype):
|
|
111
|
+
_test_input_format_c_contiguous_numpy(queue, dtype)
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
def _test_input_format_f_contiguous_numpy(queue, dtype):
|
|
115
|
+
rng = np.random.RandomState(0)
|
|
116
|
+
x_default = np.array(5 * rng.random_sample((10, 4)), dtype=dtype)
|
|
117
|
+
|
|
118
|
+
x_numpy = np.asanyarray(x_default, dtype=dtype, order="F")
|
|
119
|
+
assert not x_numpy.flags.c_contiguous
|
|
120
|
+
assert x_numpy.flags.f_contiguous
|
|
121
|
+
assert x_numpy.flags.fnc
|
|
122
|
+
|
|
123
|
+
expected = linear_kernel(x_default, queue=queue)
|
|
124
|
+
result = linear_kernel(x_numpy, queue=queue)
|
|
125
|
+
assert_allclose(expected, result)
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
129
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
130
|
+
def test_input_format_f_contiguous_numpy(queue, dtype):
|
|
131
|
+
_test_input_format_f_contiguous_numpy(queue, dtype)
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def _test_input_format_c_not_contiguous_numpy(queue, dtype):
|
|
135
|
+
rng = np.random.RandomState(0)
|
|
136
|
+
x_default = np.array(5 * rng.random_sample((10, 4)), dtype=dtype)
|
|
137
|
+
|
|
138
|
+
dummy_data = np.insert(x_default, range(1, x_default.shape[1]), 8, axis=1)
|
|
139
|
+
x_numpy = dummy_data[:, ::2]
|
|
140
|
+
|
|
141
|
+
assert_allclose(x_numpy, x_default)
|
|
142
|
+
|
|
143
|
+
assert not x_numpy.flags.c_contiguous
|
|
144
|
+
assert not x_numpy.flags.f_contiguous
|
|
145
|
+
assert not x_numpy.flags.fnc
|
|
146
|
+
|
|
147
|
+
expected = linear_kernel(x_default, queue=queue)
|
|
148
|
+
result = linear_kernel(x_numpy, queue=queue)
|
|
149
|
+
assert_allclose(expected, result)
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
153
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
154
|
+
def test_input_format_c_not_contiguous_numpy(queue, dtype):
|
|
155
|
+
_test_input_format_c_not_contiguous_numpy(queue, dtype)
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
def _test_input_format_c_contiguous_pandas(queue, dtype):
|
|
159
|
+
pd = pytest.importorskip("pandas")
|
|
160
|
+
rng = np.random.RandomState(0)
|
|
161
|
+
x_default = np.array(5 * rng.random_sample((10, 4)), dtype=dtype)
|
|
162
|
+
|
|
163
|
+
x_numpy = np.asanyarray(x_default, dtype=dtype, order="C")
|
|
164
|
+
assert x_numpy.flags.c_contiguous
|
|
165
|
+
assert not x_numpy.flags.f_contiguous
|
|
166
|
+
assert not x_numpy.flags.fnc
|
|
167
|
+
x_df = pd.DataFrame(x_numpy)
|
|
168
|
+
|
|
169
|
+
expected = linear_kernel(x_df, queue=queue)
|
|
170
|
+
result = linear_kernel(x_numpy, queue=queue)
|
|
171
|
+
assert_allclose(expected, result)
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
175
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
176
|
+
def test_input_format_c_contiguous_pandas(queue, dtype):
|
|
177
|
+
_test_input_format_c_contiguous_pandas(queue, dtype)
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
def _test_input_format_f_contiguous_pandas(queue, dtype):
|
|
181
|
+
pd = pytest.importorskip("pandas")
|
|
182
|
+
rng = np.random.RandomState(0)
|
|
183
|
+
x_default = np.array(5 * rng.random_sample((10, 4)), dtype=dtype)
|
|
184
|
+
|
|
185
|
+
x_numpy = np.asanyarray(x_default, dtype=dtype, order="F")
|
|
186
|
+
assert not x_numpy.flags.c_contiguous
|
|
187
|
+
assert x_numpy.flags.f_contiguous
|
|
188
|
+
assert x_numpy.flags.fnc
|
|
189
|
+
x_df = pd.DataFrame(x_numpy)
|
|
190
|
+
|
|
191
|
+
expected = linear_kernel(x_df, queue=queue)
|
|
192
|
+
result = linear_kernel(x_numpy, queue=queue)
|
|
193
|
+
assert_allclose(expected, result)
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
197
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
198
|
+
def test_input_format_f_contiguous_pandas(queue, dtype):
|
|
199
|
+
_test_input_format_f_contiguous_pandas(queue, dtype)
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
def _test_conversion_to_table(dtype):
|
|
203
|
+
np.random.seed()
|
|
204
|
+
if dtype in [np.int32, np.int64]:
|
|
205
|
+
x = np.random.randint(0, 10, (15, 3), dtype=dtype)
|
|
206
|
+
else:
|
|
207
|
+
x = np.random.uniform(-2, 2, (18, 6)).astype(dtype)
|
|
208
|
+
x_table = to_table(x)
|
|
209
|
+
x2 = from_table(x_table)
|
|
210
|
+
assert x.dtype == x2.dtype
|
|
211
|
+
assert np.array_equal(x, x2)
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
@pytest.mark.parametrize("dtype", [np.int32, np.int64, np.float32, np.float64])
|
|
215
|
+
def test_conversion_to_table(dtype):
|
|
216
|
+
_test_conversion_to_table(dtype)
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
@pytest.mark.skipif(
|
|
220
|
+
not dpctl_available,
|
|
221
|
+
reason="dpctl is required for checks.",
|
|
222
|
+
)
|
|
223
|
+
@pytest.mark.skipif(
|
|
224
|
+
not _is_dpc_backend,
|
|
225
|
+
reason="__sycl_usm_array_interface__ support requires DPC backend.",
|
|
226
|
+
)
|
|
227
|
+
@pytest.mark.parametrize(
|
|
228
|
+
"dataframe,queue", get_dataframes_and_queues("dpctl,dpnp", "cpu,gpu")
|
|
229
|
+
)
|
|
230
|
+
@pytest.mark.parametrize("order", ["C", "F"])
|
|
231
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64, np.int32, np.int64])
|
|
232
|
+
def test_input_sua_iface_zero_copy(dataframe, queue, order, dtype):
|
|
233
|
+
"""Checking that values representing USM allocations `__sycl_usm_array_interface__`
|
|
234
|
+
are preserved during conversion to onedal table.
|
|
235
|
+
"""
|
|
236
|
+
rng = np.random.RandomState(0)
|
|
237
|
+
X_np = np.array(5 * rng.random_sample((10, 59)), dtype=dtype)
|
|
238
|
+
|
|
239
|
+
X_np = np.asanyarray(X_np, dtype=dtype, order=order)
|
|
240
|
+
|
|
241
|
+
X_dp = _convert_to_dataframe(X_np, sycl_queue=queue, target_df=dataframe)
|
|
242
|
+
|
|
243
|
+
sua_iface, X_dp_namespace, _ = _get_sycl_namespace(X_dp)
|
|
244
|
+
|
|
245
|
+
X_table = to_table(X_dp)
|
|
246
|
+
_assert_sua_iface_fields(X_dp, X_table)
|
|
247
|
+
|
|
248
|
+
X_dp_from_table = from_table(
|
|
249
|
+
X_table, sycl_queue=queue, sua_iface=sua_iface, xp=X_dp_namespace
|
|
250
|
+
)
|
|
251
|
+
_assert_sua_iface_fields(X_table, X_dp_from_table)
|
|
252
|
+
_assert_tensor_attr(X_dp, X_dp_from_table, order)
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
@pytest.mark.skipif(
|
|
256
|
+
not dpctl_available,
|
|
257
|
+
reason="dpctl is required for checks.",
|
|
258
|
+
)
|
|
259
|
+
@pytest.mark.skipif(
|
|
260
|
+
not _is_dpc_backend,
|
|
261
|
+
reason="__sycl_usm_array_interface__ support requires DPC backend.",
|
|
262
|
+
)
|
|
263
|
+
@pytest.mark.parametrize(
|
|
264
|
+
"dataframe,queue", get_dataframes_and_queues("dpctl,dpnp", "cpu,gpu")
|
|
265
|
+
)
|
|
266
|
+
@pytest.mark.parametrize("order", ["F", "C"])
|
|
267
|
+
@pytest.mark.parametrize("data_shape", data_shapes)
|
|
268
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
269
|
+
def test_table_conversions(dataframe, queue, order, data_shape, dtype):
|
|
270
|
+
"""Checking that values representing USM allocations `__sycl_usm_array_interface__`
|
|
271
|
+
are preserved during conversion to onedal table and from onedal table to
|
|
272
|
+
sycl usm array dataformat.
|
|
273
|
+
"""
|
|
274
|
+
rng = np.random.RandomState(0)
|
|
275
|
+
X = np.array(5 * rng.random_sample(data_shape), dtype=dtype)
|
|
276
|
+
|
|
277
|
+
X = ORDER_DICT[order](X)
|
|
278
|
+
|
|
279
|
+
X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
280
|
+
alg = DummyEstimatorWithTableConversions()
|
|
281
|
+
X_table, result_responses_table, result_responses_df = alg.fit(X)
|
|
282
|
+
|
|
283
|
+
for obj in [X_table, result_responses_table, result_responses_df, X]:
|
|
284
|
+
assert hasattr(obj, "__sycl_usm_array_interface__"), f"{obj} has no SUA interface"
|
|
285
|
+
_assert_sua_iface_fields(X, X_table)
|
|
286
|
+
|
|
287
|
+
# Work around for saving compute-follows-data execution
|
|
288
|
+
# for CPU sycl context requires cause additional memory
|
|
289
|
+
# allocation using the same queue.
|
|
290
|
+
skip_data_0 = True if queue.sycl_device.is_cpu else False
|
|
291
|
+
# Onedal return table's syclobj is empty for CPU inputs.
|
|
292
|
+
skip_syclobj = True if queue.sycl_device.is_cpu else False
|
|
293
|
+
# TODO:
|
|
294
|
+
# investigate why __sycl_usm_array_interface__["data"][1] is changed
|
|
295
|
+
# after conversion from onedal table to sua array.
|
|
296
|
+
# Test is not turned off because of this. Only check is skipped.
|
|
297
|
+
skip_data_1 = True
|
|
298
|
+
_assert_sua_iface_fields(
|
|
299
|
+
result_responses_df,
|
|
300
|
+
result_responses_table,
|
|
301
|
+
skip_data_0=skip_data_0,
|
|
302
|
+
skip_data_1=skip_data_1,
|
|
303
|
+
skip_syclobj=skip_syclobj,
|
|
304
|
+
)
|
|
305
|
+
assert X.sycl_queue == result_responses_df.sycl_queue
|
|
306
|
+
if order == "F":
|
|
307
|
+
assert X.flags.f_contiguous == result_responses_df.flags.f_contiguous
|
|
308
|
+
else:
|
|
309
|
+
assert X.flags.c_contiguous == result_responses_df.flags.c_contiguous
|
|
310
|
+
# 1D output expected to have the same c_contiguous and f_contiguous flag values.
|
|
311
|
+
assert (
|
|
312
|
+
result_responses_df.flags.c_contiguous == result_responses_df.flags.f_contiguous
|
|
313
|
+
)
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
@pytest.mark.skipif(
|
|
317
|
+
not _is_dpc_backend,
|
|
318
|
+
reason="__sycl_usm_array_interface__ support requires DPC backend.",
|
|
319
|
+
)
|
|
320
|
+
@pytest.mark.parametrize(
|
|
321
|
+
"dataframe,queue", get_dataframes_and_queues("dpctl,dpnp", "cpu,gpu")
|
|
322
|
+
)
|
|
323
|
+
@pytest.mark.parametrize("data_shape", unsupported_data_shapes)
|
|
324
|
+
def test_sua_iface_interop_invalid_shape(dataframe, queue, data_shape):
|
|
325
|
+
X = np.zeros(data_shape)
|
|
326
|
+
X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
327
|
+
sua_iface, _, _ = _get_sycl_namespace(X)
|
|
328
|
+
|
|
329
|
+
expected_err_msg = (
|
|
330
|
+
"Unable to convert from SUA interface: only 1D & 2D tensors are allowed"
|
|
331
|
+
)
|
|
332
|
+
with pytest.raises(ValueError, match=expected_err_msg):
|
|
333
|
+
to_table(X)
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
@pytest.mark.skipif(
|
|
337
|
+
not _is_dpc_backend,
|
|
338
|
+
reason="__sycl_usm_array_interface__ support requires DPC backend.",
|
|
339
|
+
)
|
|
340
|
+
@pytest.mark.parametrize(
|
|
341
|
+
"dataframe,queue", get_dataframes_and_queues("dpctl,dpnp", "cpu,gpu")
|
|
342
|
+
)
|
|
343
|
+
@pytest.mark.parametrize(
|
|
344
|
+
"dtype",
|
|
345
|
+
[
|
|
346
|
+
pytest.param(np.uint16, id=np.dtype(np.uint16).name),
|
|
347
|
+
pytest.param(np.uint32, id=np.dtype(np.uint32).name),
|
|
348
|
+
pytest.param(np.uint64, id=np.dtype(np.uint64).name),
|
|
349
|
+
],
|
|
350
|
+
)
|
|
351
|
+
def test_sua_iface_interop_unsupported_dtypes(dataframe, queue, dtype):
|
|
352
|
+
# sua iface interobility supported only for oneDAL supported dtypes
|
|
353
|
+
# for input data: int32, int64, float32, float64.
|
|
354
|
+
# Checking some common dtypes supported by dpctl, dpnp for exception
|
|
355
|
+
# raise.
|
|
356
|
+
X = np.zeros((10, 20), dtype=dtype)
|
|
357
|
+
X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
358
|
+
sua_iface, _, _ = _get_sycl_namespace(X)
|
|
359
|
+
|
|
360
|
+
expected_err_msg = "Unable to convert from SUA interface: unknown data type"
|
|
361
|
+
with pytest.raises(ValueError, match=expected_err_msg):
|
|
362
|
+
to_table(X)
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
@pytest.mark.parametrize(
|
|
366
|
+
"dataframe,queue", get_dataframes_and_queues("numpy,dpctl,dpnp", "cpu,gpu")
|
|
367
|
+
)
|
|
368
|
+
def test_to_table_non_contiguous_input(dataframe, queue):
|
|
369
|
+
if dataframe in "dpnp,dpctl" and not _is_dpc_backend:
|
|
370
|
+
pytest.skip("__sycl_usm_array_interface__ support requires DPC backend.")
|
|
371
|
+
X, _ = np.mgrid[:10, :10]
|
|
372
|
+
X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
373
|
+
X = X[:, :3]
|
|
374
|
+
sua_iface, _, _ = _get_sycl_namespace(X)
|
|
375
|
+
# X expected to be non-contiguous.
|
|
376
|
+
assert not X.flags.c_contiguous and not X.flags.f_contiguous
|
|
377
|
+
X_t = to_table(X)
|
|
378
|
+
assert X_t and X_t.shape == (10, 3) and X_t.has_data
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
@pytest.mark.skipif(
|
|
382
|
+
_is_dpc_backend,
|
|
383
|
+
reason="Required check should be done if no DPC backend.",
|
|
384
|
+
)
|
|
385
|
+
@pytest.mark.parametrize(
|
|
386
|
+
"dataframe,queue", get_dataframes_and_queues("dpctl,dpnp", "cpu,gpu")
|
|
387
|
+
)
|
|
388
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
389
|
+
def test_sua_iface_interop_if_no_dpc_backend(dataframe, queue, dtype):
|
|
390
|
+
X = np.zeros((10, 20), dtype=dtype)
|
|
391
|
+
X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
392
|
+
sua_iface, _, _ = _get_sycl_namespace(X)
|
|
393
|
+
|
|
394
|
+
expected_err_msg = "SYCL usm array conversion to table requires the DPC backend"
|
|
395
|
+
with pytest.raises(RuntimeError, match=expected_err_msg):
|
|
396
|
+
to_table(X)
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
@pytest.mark.skipif(
|
|
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):
|
|
405
|
+
# Use a dummy queue as fp32 hardware is not in public testing
|
|
406
|
+
|
|
407
|
+
class DummySyclQueue:
|
|
408
|
+
"""This class is designed to act like dpctl.SyclQueue
|
|
409
|
+
to force dtype conversion"""
|
|
410
|
+
|
|
411
|
+
class DummySyclDevice:
|
|
412
|
+
has_aspect_fp64 = False
|
|
413
|
+
|
|
414
|
+
sycl_device = DummySyclDevice()
|
|
415
|
+
|
|
416
|
+
queue = DummySyclQueue()
|
|
417
|
+
|
|
418
|
+
if sparse:
|
|
419
|
+
X = sp.random(100, 100, format="csr", dtype=dtype)
|
|
420
|
+
else:
|
|
421
|
+
X = np.random.rand(100, 100).astype(dtype)
|
|
422
|
+
|
|
423
|
+
if dtype == np.float64:
|
|
424
|
+
with pytest.warns(
|
|
425
|
+
RuntimeWarning,
|
|
426
|
+
match="Data will be converted into float32 from float64 because device does not support it",
|
|
427
|
+
):
|
|
428
|
+
X_table = to_table(X, queue=queue)
|
|
429
|
+
else:
|
|
430
|
+
X_table = to_table(X, queue=queue)
|
|
431
|
+
|
|
432
|
+
assert X_table.dtype == np.float32
|
|
433
|
+
if dtype == np.float32 and not sparse:
|
|
434
|
+
assert_allclose(X, from_table(X_table))
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
@pytest.mark.parametrize("X", [None, 5, "test", True, [], np.pi, lambda: None])
|
|
438
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
439
|
+
def test_non_array(X, queue):
|
|
440
|
+
# Verify that to and from table doesn't raise errors
|
|
441
|
+
# no guarantee is made about type or content
|
|
442
|
+
err_str = ""
|
|
443
|
+
|
|
444
|
+
if np.isscalar(X):
|
|
445
|
+
if np.atleast_2d(X).dtype not in [np.float64, np.float32, np.int64, np.int32]:
|
|
446
|
+
err_str = "Found unsupported array type"
|
|
447
|
+
elif not (X is None or isinstance(X, np.ndarray)):
|
|
448
|
+
err_str = r"\[convert_to_table\] Not available input format for convert Python object to onedal table."
|
|
449
|
+
|
|
450
|
+
if err_str:
|
|
451
|
+
with pytest.raises(ValueError, match=err_str):
|
|
452
|
+
to_table(X)
|
|
453
|
+
else:
|
|
454
|
+
X_table = to_table(X, queue=queue)
|
|
455
|
+
from_table(X_table)
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
@pytest.mark.skipif(
|
|
459
|
+
not _is_dpc_backend, reason="Requires DPC backend for dtype conversion"
|
|
460
|
+
)
|
|
461
|
+
@pytest.mark.parametrize("X", [None, 5, "test", True, [], np.pi, lambda: None])
|
|
462
|
+
def test_low_precision_non_array(X):
|
|
463
|
+
# Use a dummy queue as fp32 hardware is not in public testing
|
|
464
|
+
|
|
465
|
+
class DummySyclQueue:
|
|
466
|
+
"""This class is designed to act like dpctl.SyclQueue
|
|
467
|
+
to force dtype conversion"""
|
|
468
|
+
|
|
469
|
+
class DummySyclDevice:
|
|
470
|
+
has_aspect_fp64 = False
|
|
471
|
+
|
|
472
|
+
sycl_device = DummySyclDevice()
|
|
473
|
+
|
|
474
|
+
queue = DummySyclQueue()
|
|
475
|
+
test_non_array(X, queue)
|