scikit-learn-intelex 2025.6.1__py311-none-win_amd64.whl → 2025.8.0__py311-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.8.0.data/data/Lib/site-packages/daal4py/_daal4py.cp311-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/mb/__init__.py +2 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +258 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +30 -5
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp311-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +2 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +4 -4
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +616 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +15 -16
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/__init__.py +26 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/_config.py +5 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/_device_offload.py +84 -94
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp311-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp311-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +151 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +42 -57
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +6 -7
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +11 -11
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +7 -25
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +18 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/common/_backend.py +62 -37
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +32 -9
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +6 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +10 -12
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +8 -16
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +12 -2
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +156 -0
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/datatypes/_dlpack.py +61 -0
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +63 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +8 -3
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +61 -19
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +8 -17
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +6 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +15 -9
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +201 -0
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +230 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +14 -15
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +10 -17
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +64 -17
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/svm/svm.py +0 -12
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +15 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +23 -6
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +25 -25
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +106 -54
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/utils/_third_party.py +220 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/utils/validation.py +11 -3
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/__init__.py +2 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/_config.py +17 -8
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +45 -34
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/_utils.py +52 -3
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/base.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +31 -45
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +50 -55
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +30 -27
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +1 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +14 -5
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +21 -9
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +54 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +13 -7
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +17 -5
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +22 -7
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +2 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +90 -73
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +83 -60
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +53 -41
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +11 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +47 -27
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +27 -61
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +577 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +8 -6
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +3 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +54 -8
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +7 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +6 -3
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +12 -8
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +26 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -8
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +11 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -7
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +299 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +21 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -7
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +7 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +16 -8
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +12 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +31 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +41 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +77 -6
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +111 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +0 -8
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +13 -13
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +4 -22
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +71 -0
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +97 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +29 -11
- {scikit_learn_intelex-2025.6.1.dist-info → scikit_learn_intelex-2025.8.0.dist-info}/METADATA +2 -2
- scikit_learn_intelex-2025.8.0.dist-info/RECORD +259 -0
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/daal4py/_daal4py.cp311-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +0 -1025
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp311-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/_onedal_py_host.cp311-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +0 -111
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +0 -117
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +0 -311
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +0 -351
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +0 -71
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -134
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -50
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -71
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -43
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -59
- scikit_learn_intelex-2025.6.1.dist-info/RECORD +0 -257
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/utils/tests/test_validation.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +0 -0
- {scikit_learn_intelex-2025.6.1.dist-info → scikit_learn_intelex-2025.8.0.dist-info}/LICENSE.txt +0 -0
- {scikit_learn_intelex-2025.6.1.dist-info → scikit_learn_intelex-2025.8.0.dist-info}/WHEEL +0 -0
- {scikit_learn_intelex-2025.6.1.dist-info → scikit_learn_intelex-2025.8.0.dist-info}/top_level.txt +0 -0
scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
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 scipy.sparse as sp
|
|
19
|
+
|
|
20
|
+
from onedal import _default_backend as backend
|
|
21
|
+
|
|
22
|
+
from ..utils._third_party import is_dpctl_tensor, is_dpnp_ndarray, lazy_import
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def _apply_and_pass(func, *args, **kwargs):
|
|
26
|
+
if len(args) == 1:
|
|
27
|
+
return func(args[0], **kwargs)
|
|
28
|
+
return tuple(map(lambda arg: func(arg, **kwargs), args))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def _convert_one_to_table(arg, queue=None):
|
|
32
|
+
# All inputs for table conversion must be array-like or sparse, not scalars
|
|
33
|
+
return backend.to_table(np.atleast_2d(arg) if np.isscalar(arg) else arg, queue)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def to_table(*args, queue=None):
|
|
37
|
+
"""Create oneDAL tables from scalars and/or arrays.
|
|
38
|
+
|
|
39
|
+
Parameters
|
|
40
|
+
----------
|
|
41
|
+
*args : scalar, numpy array, sycl_usm_ndarray, csr_matrix, or csr_array
|
|
42
|
+
Arguments to be individually converted to oneDAL tables.
|
|
43
|
+
|
|
44
|
+
queue : SyclQueue or None, default=None
|
|
45
|
+
SYCL Queue object to be associated with the oneDAL tables. Default
|
|
46
|
+
value None causes no change in data location or queue.
|
|
47
|
+
|
|
48
|
+
Returns
|
|
49
|
+
-------
|
|
50
|
+
tables : oneDAL homogeneous or csr tables
|
|
51
|
+
Converted oneDAL tables for scalar, numpy array, sycl_usm_ndarray
|
|
52
|
+
and dlpack inputs; oneDAL csr_table for csr_matrix, csr_array.
|
|
53
|
+
|
|
54
|
+
Notes
|
|
55
|
+
-----
|
|
56
|
+
Tables will use pointers to the original array data. Scalars
|
|
57
|
+
and non-contiguous arrays will be copies. Arrays may be
|
|
58
|
+
modified in-place by oneDAL during computation. Transformation
|
|
59
|
+
is possible only for data located on CPU and SYCL-enabled Intel
|
|
60
|
+
GPUs. Each array may only be of a single data type (i.e. each
|
|
61
|
+
must be homogeneous).
|
|
62
|
+
"""
|
|
63
|
+
return _apply_and_pass(_convert_one_to_table, *args, queue=queue)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
@lazy_import("array_api_compat")
|
|
67
|
+
def _compat_convert(array_api_compat, array):
|
|
68
|
+
return array_api_compat.get_namespace(array).from_dlpack
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def return_type_constructor(array):
|
|
72
|
+
"""Generate a function for converting oneDAL tables to arrays.
|
|
73
|
+
|
|
74
|
+
Parameters
|
|
75
|
+
----------
|
|
76
|
+
array : array-like or None
|
|
77
|
+
Python object representing an array instance of the return type
|
|
78
|
+
for converting oneDAL tables. Arrays are queried for conversion
|
|
79
|
+
namespace when of sycl_usm_array type or array API standard type.
|
|
80
|
+
When set to None, will return numpy arrays or scipy csr arrays.
|
|
81
|
+
|
|
82
|
+
Returns
|
|
83
|
+
-------
|
|
84
|
+
func : callable
|
|
85
|
+
A function which takes in a single table input and returns an array.
|
|
86
|
+
"""
|
|
87
|
+
if isinstance(array, np.ndarray) or array is None or sp.issparse(array):
|
|
88
|
+
func = backend.from_table
|
|
89
|
+
elif hasattr(array, "__sycl_usm_array_interface__"):
|
|
90
|
+
# oneDAL returns tables without sycl queues for CPU sycl queue inputs.
|
|
91
|
+
# This workaround is necessary for the functional preservation
|
|
92
|
+
# of the compute-follows-data execution.
|
|
93
|
+
device = array.sycl_queue
|
|
94
|
+
# Its important to note why the __sycl_usm_array_interface__ is
|
|
95
|
+
# prioritized: it provides finer-grained control of SYCL queues and the
|
|
96
|
+
# related SYCL devices which are generally unavailable via DLPack
|
|
97
|
+
# representations (such as SYCL contexts, SYCL sub-devices, etc.).
|
|
98
|
+
xp = array.__array_namespace__()
|
|
99
|
+
# array api support added in dpnp starting in 0.19, will fail for
|
|
100
|
+
# older versions
|
|
101
|
+
if is_dpctl_tensor(array):
|
|
102
|
+
func = lambda x: (
|
|
103
|
+
xp.asarray(x)
|
|
104
|
+
if hasattr(x, "__sycl_usm_array_interface__")
|
|
105
|
+
else xp.asarray(backend.from_table(x), device=device)
|
|
106
|
+
)
|
|
107
|
+
elif is_dpnp_ndarray(array):
|
|
108
|
+
func = lambda x: (
|
|
109
|
+
xp.asarray(xp.as_usm_ndarray(x))
|
|
110
|
+
if hasattr(x, "__sycl_usm_array_interface__")
|
|
111
|
+
else xp.asarray(backend.from_table(x), device=device)
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
elif hasattr(array, "__array_namespace__"):
|
|
115
|
+
func = array.__array_namespace__().from_dlpack
|
|
116
|
+
else:
|
|
117
|
+
try:
|
|
118
|
+
func = _compat_convert(array)
|
|
119
|
+
except ImportError:
|
|
120
|
+
raise TypeError(
|
|
121
|
+
"array type is unsupported, but may be made compatible by installing `array_api_compat`"
|
|
122
|
+
) from None
|
|
123
|
+
return func
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
def from_table(*args, like=None):
|
|
127
|
+
"""Create 2 dimensional arrays from oneDAL tables.
|
|
128
|
+
|
|
129
|
+
oneDAL tables are converted to numpy ndarrays, dpctl tensors, dpnp
|
|
130
|
+
ndarrays, or array API standard arrays of designated type.
|
|
131
|
+
|
|
132
|
+
Parameters
|
|
133
|
+
----------
|
|
134
|
+
*args : single or multiple python oneDAL tables
|
|
135
|
+
The tables should given as individual arguments.
|
|
136
|
+
|
|
137
|
+
like : callable, array-like or None, default=None
|
|
138
|
+
Python object representing an array instance of the return type
|
|
139
|
+
or function capable of converting oneDAL tables into arrays of
|
|
140
|
+
desired type. Arrays are queried for conversion namespace when
|
|
141
|
+
of sycl_usm_array type or array API standard type. When set to
|
|
142
|
+
None, will return numpy arrays or scipy csr arrays.
|
|
143
|
+
|
|
144
|
+
Returns
|
|
145
|
+
-------
|
|
146
|
+
arrays : numpy arrays, sycl_usm_ndarrays, or array API standard arrays
|
|
147
|
+
Array or tuple of arrays generated from the input oneDAL tables.
|
|
148
|
+
|
|
149
|
+
Notes
|
|
150
|
+
-----
|
|
151
|
+
Support for other array types via array_api_compat is possible (e.g.
|
|
152
|
+
PyTorch), but requires its installation specifically, as it is imported
|
|
153
|
+
only when necessary.
|
|
154
|
+
"""
|
|
155
|
+
func = like if callable(like) else return_type_constructor(like)
|
|
156
|
+
return _apply_and_pass(func, *args)
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright Contributors to the oneDAL Project
|
|
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 collections.abc import Iterable
|
|
18
|
+
|
|
19
|
+
import numpy as np
|
|
20
|
+
|
|
21
|
+
from onedal import _default_backend as backend
|
|
22
|
+
|
|
23
|
+
from ..utils._third_party import convert_sklearnex_queue, lazy_import
|
|
24
|
+
|
|
25
|
+
cpu_dlpack_device = (backend.kDLCPU, 0)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@lazy_import("torch.xpu")
|
|
29
|
+
@convert_sklearnex_queue
|
|
30
|
+
def get_torch_queue(torchxpu, array):
|
|
31
|
+
return backend.SyclQueue(torchxpu.current_stream(array.get_device()).sycl_queue)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def dlpack_to_numpy(obj):
|
|
35
|
+
# check dlpack data location.
|
|
36
|
+
if obj.__dlpack_device__() != cpu_dlpack_device:
|
|
37
|
+
if hasattr(obj, "to_device"):
|
|
38
|
+
# use of the "cpu" string as device not officially part of
|
|
39
|
+
# the array api standard but widely supported
|
|
40
|
+
obj = obj.to_device("cpu")
|
|
41
|
+
elif hasattr(obj, "to"):
|
|
42
|
+
# pytorch-specific fix as it is not array api compliant
|
|
43
|
+
obj = obj.to("cpu")
|
|
44
|
+
else:
|
|
45
|
+
raise TypeError(f"cannot move {type(obj)} to cpu")
|
|
46
|
+
|
|
47
|
+
# convert to numpy
|
|
48
|
+
if hasattr(obj, "__array__"):
|
|
49
|
+
# ``copy`` param for the ``asarray`` is not set.
|
|
50
|
+
# The object is copied only if needed
|
|
51
|
+
obj = np.asarray(obj)
|
|
52
|
+
else:
|
|
53
|
+
# requires numpy 1.23
|
|
54
|
+
try:
|
|
55
|
+
obj = np.from_dlpack(obj)
|
|
56
|
+
except AttributeError:
|
|
57
|
+
raise NotImplementedError(
|
|
58
|
+
"Upgrade NumPy >= 1.23 for dlpack support"
|
|
59
|
+
) from None
|
|
60
|
+
|
|
61
|
+
return obj
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright Contributors to the oneDAL Project
|
|
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 collections.abc import Iterable
|
|
18
|
+
|
|
19
|
+
import numpy as np
|
|
20
|
+
import scipy.sparse as sp
|
|
21
|
+
|
|
22
|
+
from ..utils._third_party import lazy_import
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@lazy_import("dpctl.memory", "dpctl.tensor")
|
|
26
|
+
def _array_to_usm(memory, tensor, queue, array):
|
|
27
|
+
try:
|
|
28
|
+
mem = memory.MemoryUSMDevice(array.nbytes, queue=queue)
|
|
29
|
+
mem.copy_from_host(array.tobytes())
|
|
30
|
+
return tensor.usm_ndarray(array.shape, array.dtype, buffer=mem)
|
|
31
|
+
except ValueError as e:
|
|
32
|
+
# ValueError will raise if device does not support the dtype
|
|
33
|
+
# retry with float32 (needed for fp16 and fp64 support issues)
|
|
34
|
+
# try again as float32, if it is a float32 just raise the error.
|
|
35
|
+
if array.dtype == np.float32:
|
|
36
|
+
raise e
|
|
37
|
+
return _array_to_usm(queue, array.astype(np.float32))
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
@lazy_import("dpnp", "dpctl.tensor")
|
|
41
|
+
def _to_dpnp(dpnp, tensor, array):
|
|
42
|
+
if isinstance(array, tensor.usm_ndarray):
|
|
43
|
+
return dpnp.array(array, copy=False)
|
|
44
|
+
else:
|
|
45
|
+
return array
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def copy_to_usm(queue, array):
|
|
49
|
+
if hasattr(array, "tobytes"):
|
|
50
|
+
return _array_to_usm(queue, array)
|
|
51
|
+
else:
|
|
52
|
+
if isinstance(array, Iterable) and not sp.issparse(array):
|
|
53
|
+
array = [copy_to_usm(queue, i) for i in array]
|
|
54
|
+
return array
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def copy_to_dpnp(queue, array):
|
|
58
|
+
if hasattr(array, "tobytes"):
|
|
59
|
+
return _to_dpnp(_array_to_usm(queue, array))
|
|
60
|
+
else:
|
|
61
|
+
if isinstance(array, Iterable) and not sp.issparse(array):
|
|
62
|
+
array = [copy_to_dpnp(queue, i) for i in array]
|
|
63
|
+
return array
|
|
@@ -14,11 +14,16 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
# ===============================================================================
|
|
16
16
|
|
|
17
|
-
from onedal.utils.
|
|
17
|
+
from onedal.utils._third_party import dpctl_available
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
try:
|
|
20
20
|
import dpnp
|
|
21
21
|
|
|
22
|
+
dpnp_available = True
|
|
23
|
+
except ImportError:
|
|
24
|
+
dpnp_available = False
|
|
25
|
+
|
|
26
|
+
|
|
22
27
|
if dpctl_available:
|
|
23
28
|
import dpctl
|
|
24
29
|
from dpctl.tensor import usm_ndarray
|
|
@@ -99,7 +104,7 @@ if dpctl_available:
|
|
|
99
104
|
if not skip_data_1:
|
|
100
105
|
assert actual_sua_iface["data"][1] == desired_sua_iface["data"][1]
|
|
101
106
|
# shape: a tuple of integers describing dimensions of an N-dimensional array.
|
|
102
|
-
#
|
|
107
|
+
# Reformatting shapes for check cases (r,) vs (r,1). Contiguous flattened array
|
|
103
108
|
# shape (r,) becoming (r,1) just for the check, since oneDAL supports only (r,1)
|
|
104
109
|
# for 1-D arrays. In code after from_table conversion for 1-D expected outputs
|
|
105
110
|
# xp.ravel or reshape(-1) is used.
|
|
@@ -14,15 +14,17 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
# ==============================================================================
|
|
16
16
|
|
|
17
|
+
import gc
|
|
18
|
+
|
|
17
19
|
import numpy as np
|
|
18
20
|
import pytest
|
|
19
21
|
import scipy.sparse as sp
|
|
20
|
-
from numpy.testing import assert_allclose
|
|
22
|
+
from numpy.testing import assert_allclose, assert_array_equal
|
|
21
23
|
|
|
22
24
|
from onedal import _default_backend, _dpc_backend
|
|
23
25
|
from onedal._device_offload import supports_queue
|
|
24
26
|
from onedal.datatypes import from_table, to_table
|
|
25
|
-
from onedal.utils.
|
|
27
|
+
from onedal.utils._third_party import dpctl_available
|
|
26
28
|
|
|
27
29
|
backend = _dpc_backend or _default_backend
|
|
28
30
|
|
|
@@ -79,12 +81,7 @@ class DummyEstimatorWithTableConversions:
|
|
|
79
81
|
# oneDAL backend func is needed to check result table checks.
|
|
80
82
|
result = dbscan.compute(params, X_table, to_table(None))
|
|
81
83
|
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
|
-
)
|
|
84
|
+
result_responses_df = from_table(result_responses_table, like=X)
|
|
88
85
|
return X_table, result_responses_table, result_responses_df
|
|
89
86
|
|
|
90
87
|
|
|
@@ -270,9 +267,7 @@ def test_input_zero_copy_sycl_usm(dataframe, queue, order, dtype):
|
|
|
270
267
|
X_table = to_table(X_dp)
|
|
271
268
|
_assert_sua_iface_fields(X_dp, X_table)
|
|
272
269
|
|
|
273
|
-
X_dp_from_table = from_table(
|
|
274
|
-
X_table, sycl_queue=queue, sua_iface=sua_iface, xp=X_dp_namespace
|
|
275
|
-
)
|
|
270
|
+
X_dp_from_table = from_table(X_table, like=X_dp)
|
|
276
271
|
_assert_sua_iface_fields(X_table, X_dp_from_table)
|
|
277
272
|
_assert_tensor_attr(X_dp, X_dp_from_table, order)
|
|
278
273
|
|
|
@@ -305,8 +300,13 @@ def test_table_conversions_sycl_usm(dataframe, queue, order, data_shape, dtype):
|
|
|
305
300
|
alg = DummyEstimatorWithTableConversions()
|
|
306
301
|
X_table, result_responses_table, result_responses_df = alg.fit(X)
|
|
307
302
|
|
|
308
|
-
for obj in [X_table,
|
|
303
|
+
for obj in [X_table, result_responses_df, X]:
|
|
309
304
|
assert hasattr(obj, "__sycl_usm_array_interface__"), f"{obj} has no SUA interface"
|
|
305
|
+
|
|
306
|
+
assert (
|
|
307
|
+
hasattr(result_responses_table, "__sycl_usm_array_interface__")
|
|
308
|
+
!= queue.sycl_device.is_cpu
|
|
309
|
+
)
|
|
310
310
|
_assert_sua_iface_fields(X, X_table)
|
|
311
311
|
|
|
312
312
|
# Work around for saving compute-follows-data execution
|
|
@@ -320,13 +320,14 @@ def test_table_conversions_sycl_usm(dataframe, queue, order, data_shape, dtype):
|
|
|
320
320
|
# after conversion from onedal table to sua array.
|
|
321
321
|
# Test is not turned off because of this. Only check is skipped.
|
|
322
322
|
skip_data_1 = True
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
323
|
+
if not queue.sycl_device.is_cpu:
|
|
324
|
+
_assert_sua_iface_fields(
|
|
325
|
+
result_responses_df,
|
|
326
|
+
result_responses_table,
|
|
327
|
+
skip_data_0=skip_data_0,
|
|
328
|
+
skip_data_1=skip_data_1,
|
|
329
|
+
skip_syclobj=skip_syclobj,
|
|
330
|
+
)
|
|
330
331
|
assert X.sycl_queue == result_responses_df.sycl_queue
|
|
331
332
|
if order == "F":
|
|
332
333
|
assert X.flags.f_contiguous == result_responses_df.flags.f_contiguous
|
|
@@ -574,3 +575,44 @@ def test_table_conversions_dlpack(dataframe, queue, order, data_shape, dtype):
|
|
|
574
575
|
# oneDAL table construction sets 1d arrays to 2d arrays with 1 col
|
|
575
576
|
# this is counter the numpy strategy, and requires numpy's squeeze
|
|
576
577
|
assert_allclose(np.squeeze(X), np.squeeze(X_out))
|
|
578
|
+
|
|
579
|
+
|
|
580
|
+
@pytest.mark.parametrize(
|
|
581
|
+
"dataframe,queue", get_dataframes_and_queues("dpctl,numpy,array_api", "cpu,gpu")
|
|
582
|
+
)
|
|
583
|
+
@pytest.mark.parametrize("order", ["F", "C"])
|
|
584
|
+
@pytest.mark.parametrize("data_shape", data_shapes)
|
|
585
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64, np.int32, np.int64])
|
|
586
|
+
def test_table___dlpack__(dataframe, queue, order, data_shape, dtype):
|
|
587
|
+
"""Test if __dlpack__ attribute can be properly consumed by other frameworks
|
|
588
|
+
This tests kDLOneAPI devices as well as kDLCPU devices.
|
|
589
|
+
"""
|
|
590
|
+
rng = np.random.RandomState(0)
|
|
591
|
+
X = np.array(5 * rng.random_sample(data_shape), dtype=dtype)
|
|
592
|
+
|
|
593
|
+
X = ORDER_DICT[order](X)
|
|
594
|
+
|
|
595
|
+
X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
596
|
+
|
|
597
|
+
X_table = to_table(X_df)
|
|
598
|
+
if hasattr(X_df, "__dlpack_device__"):
|
|
599
|
+
assert X_df.__dlpack_device__() == X_table.__dlpack_device__()
|
|
600
|
+
|
|
601
|
+
if xp := getattr(X_df, "__array_namespace__", lambda: None)():
|
|
602
|
+
X_out = xp.from_dlpack(X_table)
|
|
603
|
+
X_temp = xp.asnumpy(X_out) if hasattr(xp, "asnumpy") else np.asarray(X)
|
|
604
|
+
if X_temp.dtype == X.dtype:
|
|
605
|
+
assert_array_equal(np.squeeze(X_temp), np.squeeze(X))
|
|
606
|
+
else:
|
|
607
|
+
assert_allclose(np.squeeze(X_temp), np.squeeze(X))
|
|
608
|
+
else:
|
|
609
|
+
# only some numpy versions support array_api and from_dlpack
|
|
610
|
+
pytest.skip(f"{dataframe} does not have an __array_namespace__ attribute")
|
|
611
|
+
|
|
612
|
+
# test capsule deletion, should have no impact on underlying memory
|
|
613
|
+
# important for testing ``dlpack::free_capsule``
|
|
614
|
+
capsule = X_table.__dlpack__()
|
|
615
|
+
assert_allclose(np.squeeze(from_table(X_table)), np.squeeze(X))
|
|
616
|
+
del capsule
|
|
617
|
+
gc.collect()
|
|
618
|
+
assert_allclose(np.squeeze(from_table(X_table)), np.squeeze(X))
|
|
@@ -28,9 +28,7 @@ from .pca import BasePCA
|
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
class IncrementalPCA(BasePCA):
|
|
31
|
-
"""
|
|
32
|
-
Incremental estimator for PCA based on oneDAL implementation.
|
|
33
|
-
Allows to compute PCA if data are splitted into batches.
|
|
31
|
+
"""Incremental oneDAL PCA estimator.
|
|
34
32
|
|
|
35
33
|
Parameters
|
|
36
34
|
----------
|
|
@@ -42,8 +40,8 @@ class IncrementalPCA(BasePCA):
|
|
|
42
40
|
When True the ``components_`` vectors are chosen in deterministic
|
|
43
41
|
way, otherwise some of them can be oppositely directed.
|
|
44
42
|
|
|
45
|
-
method :
|
|
46
|
-
Method used
|
|
43
|
+
method : str, default='cov'
|
|
44
|
+
Method used in oneDAL computation.
|
|
47
45
|
|
|
48
46
|
whiten : bool, default=False
|
|
49
47
|
When True the ``components_`` vectors are divided
|
|
@@ -86,7 +84,6 @@ class IncrementalPCA(BasePCA):
|
|
|
86
84
|
noise_variance_ : float
|
|
87
85
|
Equal to the average of (min(n_features, n_samples) - n_components)
|
|
88
86
|
smallest eigenvalues of the covariance matrix of X.
|
|
89
|
-
|
|
90
87
|
"""
|
|
91
88
|
|
|
92
89
|
def __init__(
|
|
@@ -131,7 +128,7 @@ class IncrementalPCA(BasePCA):
|
|
|
131
128
|
|
|
132
129
|
@supports_queue
|
|
133
130
|
def partial_fit(self, X, queue=None):
|
|
134
|
-
"""
|
|
131
|
+
"""Generate partial PCA from batch data in `_partial_result`.
|
|
135
132
|
|
|
136
133
|
Parameters
|
|
137
134
|
----------
|
|
@@ -139,8 +136,9 @@ class IncrementalPCA(BasePCA):
|
|
|
139
136
|
Training data, where `n_samples` is the number of samples and
|
|
140
137
|
`n_features` is the number of features.
|
|
141
138
|
|
|
142
|
-
|
|
143
|
-
|
|
139
|
+
queue : SyclQueue or None, default=None
|
|
140
|
+
SYCL Queue object for device code execution. Default
|
|
141
|
+
value None causes computation on host.
|
|
144
142
|
|
|
145
143
|
Returns
|
|
146
144
|
-------
|
|
@@ -190,14 +188,7 @@ class IncrementalPCA(BasePCA):
|
|
|
190
188
|
return self
|
|
191
189
|
|
|
192
190
|
def finalize_fit(self):
|
|
193
|
-
"""
|
|
194
|
-
Finalizes principal components computation and obtains resulting
|
|
195
|
-
attributes from the current `_partial_result`.
|
|
196
|
-
|
|
197
|
-
Parameters
|
|
198
|
-
----------
|
|
199
|
-
queue : dpctl.SyclQueue
|
|
200
|
-
Not used here, added for API conformance
|
|
191
|
+
"""Finalize statistics from the current `_partial_result`.
|
|
201
192
|
|
|
202
193
|
Returns
|
|
203
194
|
-------
|
|
@@ -25,14 +25,12 @@ from onedal._device_offload import supports_queue
|
|
|
25
25
|
from onedal.common._backend import bind_default_backend
|
|
26
26
|
|
|
27
27
|
from .._config import _get_config
|
|
28
|
+
from ..common.hyperparameters import get_hyperparameters
|
|
28
29
|
from ..datatypes import from_table, to_table
|
|
29
30
|
from ..utils._array_api import _get_sycl_namespace
|
|
30
31
|
|
|
31
32
|
|
|
32
33
|
class BasePCA(metaclass=ABCMeta):
|
|
33
|
-
"""
|
|
34
|
-
Base class for PCA oneDAL implementation.
|
|
35
|
-
"""
|
|
36
34
|
|
|
37
35
|
def __init__(
|
|
38
36
|
self,
|
|
@@ -172,7 +170,11 @@ class PCA(BasePCA):
|
|
|
172
170
|
|
|
173
171
|
X = to_table(X, queue=queue)
|
|
174
172
|
params = self._get_onedal_params(X)
|
|
175
|
-
|
|
173
|
+
hparams = get_hyperparameters("pca", "train")
|
|
174
|
+
if hparams is not None and not hparams.is_default:
|
|
175
|
+
result = self.train(params, hparams.backend, X)
|
|
176
|
+
else:
|
|
177
|
+
result = self.train(params, X)
|
|
176
178
|
|
|
177
179
|
self.mean_ = from_table(result.means).ravel()
|
|
178
180
|
self.variances_ = from_table(result.variances)
|
|
@@ -34,7 +34,6 @@ from ..common._estimator_checks import _check_is_fitted
|
|
|
34
34
|
from ..common._mixin import ClassifierMixin, RegressorMixin
|
|
35
35
|
from ..datatypes import from_table, to_table
|
|
36
36
|
from ..utils._array_api import _get_sycl_namespace
|
|
37
|
-
from ..utils._dpep_helpers import get_unique_values_with_dpep
|
|
38
37
|
from ..utils.validation import (
|
|
39
38
|
_check_array,
|
|
40
39
|
_check_n_features,
|
|
@@ -315,7 +314,13 @@ class BaseForest(BaseEnsemble, metaclass=ABCMeta):
|
|
|
315
314
|
else:
|
|
316
315
|
if sua_iface is not None:
|
|
317
316
|
queue = X.sycl_queue
|
|
318
|
-
|
|
317
|
+
# try catch needed for raw_inputs + array_api data where unlike
|
|
318
|
+
# numpy the way to yield unique values is via `unique_values`
|
|
319
|
+
# This should be removed when refactored for gpu zero-copy
|
|
320
|
+
try:
|
|
321
|
+
self.classes_ = xp.unique(y)
|
|
322
|
+
except AttributeError:
|
|
323
|
+
self.classes_ = xp.unique_values(y)
|
|
319
324
|
|
|
320
325
|
self.n_features_in_ = X.shape[1]
|
|
321
326
|
|
|
@@ -361,7 +366,7 @@ class BaseForest(BaseEnsemble, metaclass=ABCMeta):
|
|
|
361
366
|
|
|
362
367
|
def _create_model(self, module):
|
|
363
368
|
# TODO:
|
|
364
|
-
#
|
|
369
|
+
# update error msg.
|
|
365
370
|
raise NotImplementedError("Creating model is not supported.")
|
|
366
371
|
|
|
367
372
|
def _predict(self, X, hparams=None):
|
|
@@ -385,14 +390,14 @@ class BaseForest(BaseEnsemble, metaclass=ABCMeta):
|
|
|
385
390
|
|
|
386
391
|
model = self._onedal_model
|
|
387
392
|
queue = QM.get_global_queue()
|
|
388
|
-
|
|
389
|
-
params = self._get_onedal_params(
|
|
393
|
+
X_table = to_table(X, queue=queue)
|
|
394
|
+
params = self._get_onedal_params(X_table)
|
|
390
395
|
if hparams is not None and not hparams.is_default:
|
|
391
|
-
result = self.infer(params, hparams.backend, model,
|
|
396
|
+
result = self.infer(params, hparams.backend, model, X_table)
|
|
392
397
|
else:
|
|
393
|
-
result = self.infer(params, model,
|
|
398
|
+
result = self.infer(params, model, X_table)
|
|
394
399
|
|
|
395
|
-
y = from_table(result.responses,
|
|
400
|
+
y = from_table(result.responses, like=X)
|
|
396
401
|
return y
|
|
397
402
|
|
|
398
403
|
def _predict_proba(self, X, hparams=None):
|
|
@@ -517,7 +522,8 @@ class RandomForestClassifier(ClassifierMixin, BaseForest, metaclass=ABCMeta):
|
|
|
517
522
|
|
|
518
523
|
try:
|
|
519
524
|
return xp.take(
|
|
520
|
-
xp.asarray(self.classes_
|
|
525
|
+
xp.asarray(self.classes_, device=pred.sycl_queue),
|
|
526
|
+
xp.astype(xp.reshape(pred, (-1,)), xp.int64),
|
|
521
527
|
)
|
|
522
528
|
except AttributeError:
|
|
523
529
|
return np.take(self.classes_, pred.ravel().astype(np.int64, casting="unsafe"))
|