scikit-learn-intelex 2025.0.1__py311-none-win_amd64.whl → 2025.2.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.

Files changed (276) hide show
  1. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/daal4py/_daal4py.cp311-win_amd64.pyd +0 -0
  2. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp311-win_amd64.pyd +0 -0
  3. {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
  4. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +11 -7
  5. {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
  6. {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
  7. {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
  8. {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
  9. {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
  10. {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
  11. {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
  12. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/_config.py +1 -0
  13. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/_device_offload.py +15 -40
  14. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp311-win_amd64.pyd +0 -0
  15. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp311-win_amd64.pyd +0 -0
  16. {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
  17. {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
  18. {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
  19. {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
  20. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +50 -0
  21. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +5 -10
  22. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +16 -19
  23. {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
  24. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_policy.py +0 -4
  25. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +22 -13
  26. {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
  27. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/common/tests/test_sycl.py +128 -0
  28. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +6 -9
  29. {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
  30. {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
  31. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +19 -0
  32. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +121 -0
  33. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/datatypes/tests/common.py +126 -0
  34. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +475 -0
  35. {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
  36. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +7 -7
  37. {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
  38. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +30 -14
  39. {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
  40. {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
  41. {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
  42. {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
  43. {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
  44. {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
  45. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +55 -70
  46. {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
  47. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/svm.py +10 -10
  48. {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
  49. {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
  50. {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
  51. {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
  52. {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
  53. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +56 -0
  54. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/utils/tests/test_validation.py +142 -0
  55. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/utils/validation.py +52 -20
  56. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/__init__.py +1 -0
  57. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/_config.py +19 -1
  58. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +17 -12
  59. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/_utils.py +45 -11
  60. {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
  61. {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
  62. {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
  63. {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
  64. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +12 -7
  65. {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
  66. {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
  67. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/conftest.py +9 -0
  68. {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
  69. {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
  70. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +30 -19
  71. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +1 -10
  72. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +72 -59
  73. {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
  74. {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
  75. {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
  76. {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
  77. {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
  78. {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
  79. {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
  80. {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
  81. {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
  82. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +256 -0
  83. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +250 -0
  84. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +16 -11
  85. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +4 -4
  86. {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
  87. {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
  88. {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
  89. {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
  90. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +1 -1
  91. {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
  92. {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
  93. {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
  94. {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
  95. {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
  96. {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
  97. {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
  98. {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
  99. {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
  100. {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
  101. {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
  102. {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
  103. {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
  104. {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
  105. {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
  106. {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
  107. {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
  108. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +58 -47
  109. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +68 -29
  110. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +40 -18
  111. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +66 -27
  112. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +36 -18
  113. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +491 -0
  114. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +123 -0
  115. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +43 -0
  116. {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
  117. {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
  118. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +108 -0
  119. {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
  120. {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
  121. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +48 -0
  122. 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
  123. 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
  124. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +238 -0
  125. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/utils/validation.py +208 -0
  126. {scikit_learn_intelex-2025.0.1.dist-info → scikit_learn_intelex-2025.2.0.dist-info}/METADATA +2 -2
  127. scikit_learn_intelex-2025.2.0.dist-info/RECORD +259 -0
  128. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/_daal4py.cp311-win_amd64.pyd +0 -0
  129. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp311-win_amd64.pyd +0 -0
  130. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/_onedal_py_host.cp311-win_amd64.pyd +0 -0
  131. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/datatypes/__init__.py +0 -19
  132. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +0 -95
  133. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +0 -235
  134. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -17
  135. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +0 -24
  136. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -26
  137. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/preview/linear_model/__init__.py +0 -19
  138. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_ridge.py +0 -102
  139. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/tests/test_common.py +0 -54
  140. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -43
  141. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -103
  142. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -19
  143. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/utils/tests/test_finite.py +0 -89
  144. scikit_learn_intelex-2025.0.1.dist-info/RECORD +0 -255
  145. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
  146. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
  147. {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
  148. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/mb/__init__.py +0 -0
  149. {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
  150. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
  151. {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
  152. {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
  153. {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
  154. {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
  155. {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
  156. {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
  157. {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
  158. {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
  159. {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
  160. {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
  161. {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
  162. {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
  163. {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
  164. {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
  165. {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
  166. {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
  167. {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
  168. {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
  169. {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
  170. {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
  171. {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
  172. {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
  173. {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
  174. {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
  175. {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
  176. {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
  177. {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
  178. {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
  179. {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
  180. {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
  181. {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
  182. {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
  183. {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
  184. {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
  185. {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
  186. {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
  187. {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
  188. {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
  189. {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
  190. {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
  191. {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
  192. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/__init__.py +0 -0
  193. {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
  194. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
  195. {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
  196. {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
  197. {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
  198. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_base.py +0 -0
  199. {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
  200. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
  201. {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
  202. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
  203. {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
  204. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
  205. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
  206. {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
  207. {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
  208. {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
  209. {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
  210. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
  211. {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
  212. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
  213. {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
  214. {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
  215. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
  216. {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
  217. {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
  218. {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
  219. {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
  220. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/utils/__init__.py +0 -0
  221. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  222. {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
  223. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
  224. {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
  225. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  226. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  227. {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
  228. {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
  229. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  230. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  231. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
  232. {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
  233. {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
  234. {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
  235. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  236. {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
  237. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  238. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
  239. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
  240. {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
  241. {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
  242. {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
  243. {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
  244. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  245. {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
  246. {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
  247. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  248. {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
  249. {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
  250. {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
  251. {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
  252. {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
  253. {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
  254. {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
  255. {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
  256. {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
  257. {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
  258. {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
  259. {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
  260. {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
  261. {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
  262. {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
  263. {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
  264. {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
  265. {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
  266. {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
  267. {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
  268. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  269. {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
  270. {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
  271. /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
  272. {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
  273. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  274. {scikit_learn_intelex-2025.0.1.dist-info → scikit_learn_intelex-2025.2.0.dist-info}/LICENSE.txt +0 -0
  275. {scikit_learn_intelex-2025.0.1.dist-info → scikit_learn_intelex-2025.2.0.dist-info}/WHEEL +0 -0
  276. {scikit_learn_intelex-2025.0.1.dist-info → scikit_learn_intelex-2025.2.0.dist-info}/top_level.txt +0 -0
@@ -15,12 +15,16 @@
15
15
  # ==============================================================================
16
16
 
17
17
  import logging
18
+ from typing import Any, Dict, Tuple
18
19
  from warnings import warn
19
20
 
20
21
  from daal4py.sklearn._utils import daal_check_version
21
22
  from onedal import _backend
22
23
 
23
- if daal_check_version((2024, "P", 0)):
24
+ if not daal_check_version((2024, "P", 0)):
25
+ warn("Hyperparameters are supported in oneDAL starting from 2024.0.0 version.")
26
+ hyperparameters_map = {}
27
+ else:
24
28
  _hparams_reserved_words = [
25
29
  "algorithm",
26
30
  "op",
@@ -56,9 +60,16 @@ if daal_check_version((2024, "P", 0)):
56
60
  return super().__getattribute__(__name)
57
61
  elif __name in self.getters.keys():
58
62
  return self.getters[__name]()
59
- else:
60
- raise ValueError(
61
- f"Unknown '{__name}' name in "
63
+ try:
64
+ # try to return attribute from base class
65
+ # required to read builtin attributes like __class__, __doc__, etc.
66
+ # which are used in debuggers
67
+ return super().__getattribute__(__name)
68
+ except AttributeError:
69
+ # raise an AttributeError with a hyperparameter-specific message
70
+ # for easier debugging
71
+ raise AttributeError(
72
+ f"Unknown attribute '{__name}' in "
62
73
  f"'{self.algorithm}.{self.op}' hyperparameters"
63
74
  )
64
75
 
@@ -70,7 +81,7 @@ if daal_check_version((2024, "P", 0)):
70
81
  self.setters[__name](__value)
71
82
  else:
72
83
  raise ValueError(
73
- f"Unknown '{__name}' name in "
84
+ f"Unknown attribute '{__name}' in "
74
85
  f"'{self.algorithm}.{self.op}' hyperparameters"
75
86
  )
76
87
 
@@ -83,13 +94,16 @@ if daal_check_version((2024, "P", 0)):
83
94
  for method in filter(lambda f: f.startswith(prefix), dir(obj))
84
95
  }
85
96
 
86
- hyperparameters_backend = {
97
+ hyperparameters_backend: Dict[Tuple[str, str], Any] = {
87
98
  (
88
99
  "linear_regression",
89
100
  "train",
90
101
  ): _backend.linear_model.regression.train_hyperparameters(),
91
102
  ("covariance", "compute"): _backend.covariance.compute_hyperparameters(),
92
103
  }
104
+ if daal_check_version((2024, "P", 300)):
105
+ df_infer_hp = _backend.decision_forest.infer_hyperparameters
106
+ hyperparameters_backend[("decision_forest", "infer")] = df_infer_hp()
93
107
  hyperparameters_map = {}
94
108
 
95
109
  for (algorithm, op), hyperparameters in hyperparameters_backend.items():
@@ -106,11 +120,6 @@ if daal_check_version((2024, "P", 0)):
106
120
  algorithm, op, setters, getters, hyperparameters
107
121
  )
108
122
 
109
- def get_hyperparameters(algorithm, op):
110
- return hyperparameters_map[(algorithm, op)]
111
-
112
- else:
113
123
 
114
- def get_hyperparameters(algorithm, op):
115
- warn("Hyperparameters are supported in oneDAL starting from 2024.0.0 version.")
116
- return None
124
+ def get_hyperparameters(algorithm, op):
125
+ return hyperparameters_map.get((algorithm, op), None)
@@ -22,8 +22,9 @@ from onedal.tests.utils._device_selection import (
22
22
  device_type_to_str,
23
23
  get_memory_usm,
24
24
  get_queues,
25
- is_dpctl_available,
25
+ is_dpctl_device_available,
26
26
  )
27
+ from onedal.utils._dpep_helpers import dpctl_available
27
28
 
28
29
 
29
30
  @pytest.mark.parametrize("queue", get_queues())
@@ -43,7 +44,7 @@ def test_with_numpy_data(queue):
43
44
  assert _get_policy(queue, X, y).get_device_name() == device_name
44
45
 
45
46
 
46
- @pytest.mark.skipif(not is_dpctl_available(), reason="depends on dpctl")
47
+ @pytest.mark.skipif(not dpctl_available, reason="depends on dpctl")
47
48
  @pytest.mark.parametrize("queue", get_queues("cpu,gpu"))
48
49
  @pytest.mark.parametrize("memtype", get_memory_usm())
49
50
  def test_with_usm_ndarray_data(queue, memtype):
@@ -61,7 +62,7 @@ def test_with_usm_ndarray_data(queue, memtype):
61
62
 
62
63
 
63
64
  @pytest.mark.skipif(
64
- not is_dpctl_available(["cpu", "gpu"]), reason="test uses multiple devices"
65
+ not is_dpctl_device_available(["cpu", "gpu"]), reason="test uses multiple devices"
65
66
  )
66
67
  @pytest.mark.parametrize("memtype", get_memory_usm())
67
68
  def test_queue_parameter_with_usm_ndarray(memtype):
@@ -0,0 +1,128 @@
1
+ # ==============================================================================
2
+ # Copyright 2024 Intel Corporation
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ # ==============================================================================
16
+
17
+ import numpy as np
18
+ import pytest
19
+
20
+ from onedal import _backend, _is_dpc_backend
21
+ from onedal.tests.utils._device_selection import get_queues
22
+ from onedal.utils._dpep_helpers import dpctl_available
23
+
24
+
25
+ @pytest.mark.skipif(
26
+ not _is_dpc_backend or not dpctl_available, reason="requires dpc backend and dpctl"
27
+ )
28
+ @pytest.mark.parametrize("device_type", ["cpu", "gpu"])
29
+ @pytest.mark.parametrize("device_number", [None, 0, 1, 2, 3])
30
+ def test_sycl_queue_string_creation(device_type, device_number):
31
+ # create devices from strings
32
+ from dpctl import SyclQueue
33
+ from dpctl._sycl_queue import SyclQueueCreationError
34
+
35
+ onedal_SyclQueue = _backend.SyclQueue
36
+
37
+ device = (
38
+ ":".join([device_type, str(device_number)])
39
+ if device_number is not None
40
+ else device_type
41
+ )
42
+
43
+ raised_exception_dpctl = False
44
+ raised_exception_backend = False
45
+
46
+ try:
47
+ dpctl_string = SyclQueue(device).sycl_device.filter_string
48
+ except SyclQueueCreationError:
49
+ raised_exception_dpctl = True
50
+
51
+ try:
52
+ onedal_string = onedal_SyclQueue(device).sycl_device.filter_string
53
+ except RuntimeError:
54
+ raised_exception_backend = True
55
+
56
+ assert raised_exception_dpctl == raised_exception_backend
57
+ if not raised_exception_backend:
58
+ # dpctl filter string converts simple sycl filter_strings
59
+ # i.e. "gpu:1" -> "opencl:gpu:0", use SyclQueue to convert
60
+ # for matching, as oneDAL sycl queue only returns simple
61
+ # strings as these are operationally sufficient
62
+ assert SyclQueue(onedal_string).sycl_device.filter_string == dpctl_string
63
+
64
+
65
+ @pytest.mark.skipif(
66
+ not _is_dpc_backend or not dpctl_available, reason="requires dpc backend and dpctl"
67
+ )
68
+ @pytest.mark.parametrize("queue", get_queues())
69
+ def test_sycl_queue_conversion(queue):
70
+ if queue is None:
71
+ pytest.skip("Not a dpctl queue")
72
+ SyclQueue = queue.__class__
73
+ onedal_SyclQueue = _backend.SyclQueue
74
+
75
+ q = onedal_SyclQueue(queue)
76
+
77
+ # convert back and forth to test `_get_capsule` attribute
78
+ for i in range(10):
79
+ q = SyclQueue(q.sycl_device.filter_string)
80
+ q = onedal_SyclQueue(q)
81
+
82
+ assert q.sycl_device.filter_string in queue.sycl_device.filter_string
83
+
84
+
85
+ @pytest.mark.skipif(
86
+ not _is_dpc_backend or not dpctl_available, reason="requires dpc backend and dpctl"
87
+ )
88
+ @pytest.mark.parametrize("queue", get_queues())
89
+ def test_sycl_device_attributes(queue):
90
+ from dpctl import SyclQueue
91
+
92
+ if queue is None:
93
+ pytest.skip("Not a dpctl queue")
94
+ onedal_SyclQueue = _backend.SyclQueue
95
+
96
+ onedal_queue = onedal_SyclQueue(queue)
97
+
98
+ # check fp64 support
99
+ assert onedal_queue.sycl_device.has_aspect_fp64 == queue.sycl_device.has_aspect_fp64
100
+ # check fp16 support
101
+ assert onedal_queue.sycl_device.has_aspect_fp16 == queue.sycl_device.has_aspect_fp16
102
+ # check is_cpu
103
+ assert onedal_queue.sycl_device.is_cpu == queue.sycl_device.is_cpu
104
+ # check is_gpu
105
+ assert onedal_queue.sycl_device.is_gpu == queue.sycl_device.is_gpu
106
+ # check device number
107
+ assert onedal_queue.sycl_device.filter_string in queue.sycl_device.filter_string
108
+
109
+
110
+ @pytest.mark.skipif(not _is_dpc_backend, reason="requires dpc backend")
111
+ def test_backend_queue():
112
+ try:
113
+ q = _backend.SyclQueue("cpu")
114
+ except RuntimeError:
115
+ pytest.skip("OpenCL CPU runtime not installed")
116
+
117
+ # verify copying via a py capsule object is functional
118
+ q2 = _backend.SyclQueue(q._get_capsule())
119
+ # verify copying via the _get_capsule attribute
120
+ q3 = _backend.SyclQueue(q)
121
+
122
+ q_array = [q, q2, q3]
123
+
124
+ assert all([queue.sycl_device.has_aspect_fp64 for queue in q_array])
125
+ assert all([queue.sycl_device.has_aspect_fp16 for queue in q_array])
126
+ assert all([queue.sycl_device.is_cpu for queue in q_array])
127
+ assert all([not queue.sycl_device.is_gpu for queue in q_array])
128
+ assert all(["cpu" in queue.sycl_device.filter_string for queue in q_array])
@@ -22,7 +22,7 @@ from onedal.utils import _check_array
22
22
 
23
23
  from ..common._base import BaseEstimator
24
24
  from ..common.hyperparameters import get_hyperparameters
25
- from ..datatypes import _convert_to_supported, from_table, to_table
25
+ from ..datatypes import from_table, to_table
26
26
 
27
27
 
28
28
  class BaseEmpiricalCovariance(BaseEstimator, metaclass=ABCMeta):
@@ -33,7 +33,7 @@ class BaseEmpiricalCovariance(BaseEstimator, metaclass=ABCMeta):
33
33
 
34
34
  def _get_onedal_params(self, dtype=np.float32):
35
35
  params = {
36
- "fptype": "float" if dtype == np.float32 else "double",
36
+ "fptype": dtype,
37
37
  "method": self.method,
38
38
  }
39
39
  if daal_check_version((2024, "P", 1)):
@@ -95,9 +95,8 @@ class EmpiricalCovariance(BaseEmpiricalCovariance):
95
95
  """
96
96
  policy = self._get_policy(queue, X)
97
97
  X = _check_array(X, dtype=[np.float64, np.float32])
98
- X = _convert_to_supported(policy, X)
99
- dtype = get_dtype(X)
100
- params = self._get_onedal_params(dtype)
98
+ X = to_table(X, queue=queue)
99
+ params = self._get_onedal_params(X.dtype)
101
100
  hparams = get_hyperparameters("covariance", "compute")
102
101
  if hparams is not None and not hparams.is_default:
103
102
  result = self._get_backend(
@@ -107,12 +106,10 @@ class EmpiricalCovariance(BaseEmpiricalCovariance):
107
106
  policy,
108
107
  params,
109
108
  hparams.backend,
110
- to_table(X),
109
+ X,
111
110
  )
112
111
  else:
113
- result = self._get_backend(
114
- "covariance", None, "compute", policy, params, to_table(X)
115
- )
112
+ result = self._get_backend("covariance", None, "compute", policy, params, X)
116
113
  if daal_check_version((2024, "P", 1)) or (not self.bias):
117
114
  self.covariance_ = from_table(result.cov_matrix)
118
115
  else:
@@ -17,7 +17,7 @@ import numpy as np
17
17
 
18
18
  from daal4py.sklearn._utils import daal_check_version, get_dtype
19
19
 
20
- from ..datatypes import _convert_to_supported, from_table, to_table
20
+ from ..datatypes import from_table, to_table
21
21
  from ..utils import _check_array
22
22
  from .covariance import BaseEmpiricalCovariance
23
23
 
@@ -57,10 +57,22 @@ class IncrementalEmpiricalCovariance(BaseEmpiricalCovariance):
57
57
  self._reset()
58
58
 
59
59
  def _reset(self):
60
+ self._need_to_finalize = False
60
61
  self._partial_result = self._get_backend(
61
62
  "covariance", None, "partial_compute_result"
62
63
  )
63
64
 
65
+ def __getstate__(self):
66
+ # Since finalize_fit can't be dispatched without directly provided queue
67
+ # and the dispatching policy can't be serialized, the computation is finalized
68
+ # here and the policy is not saved in serialized data.
69
+
70
+ self.finalize_fit()
71
+ data = self.__dict__.copy()
72
+ data.pop("_queue", None)
73
+
74
+ return data
75
+
64
76
  def partial_fit(self, X, y=None, queue=None):
65
77
  """
66
78
  Computes partial data for the covariance matrix
@@ -89,13 +101,12 @@ class IncrementalEmpiricalCovariance(BaseEmpiricalCovariance):
89
101
 
90
102
  policy = self._get_policy(queue, X)
91
103
 
92
- X = _convert_to_supported(policy, X)
104
+ X_table = to_table(X, queue=queue)
93
105
 
94
106
  if not hasattr(self, "_dtype"):
95
- self._dtype = get_dtype(X)
107
+ self._dtype = X_table.dtype
96
108
 
97
109
  params = self._get_onedal_params(self._dtype)
98
- table_X = to_table(X)
99
110
  self._partial_result = self._get_backend(
100
111
  "covariance",
101
112
  None,
@@ -103,8 +114,9 @@ class IncrementalEmpiricalCovariance(BaseEmpiricalCovariance):
103
114
  policy,
104
115
  params,
105
116
  self._partial_result,
106
- table_X,
117
+ X_table,
107
118
  )
119
+ self._need_to_finalize = True
108
120
 
109
121
  def finalize_fit(self, queue=None):
110
122
  """
@@ -121,26 +133,29 @@ class IncrementalEmpiricalCovariance(BaseEmpiricalCovariance):
121
133
  self : object
122
134
  Returns the instance itself.
123
135
  """
124
- params = self._get_onedal_params(self._dtype)
125
- if queue is not None:
126
- policy = self._get_policy(queue)
127
- else:
128
- policy = self._get_policy(self._queue)
129
-
130
- result = self._get_backend(
131
- "covariance",
132
- None,
133
- "finalize_compute",
134
- policy,
135
- params,
136
- self._partial_result,
137
- )
138
- if daal_check_version((2024, "P", 1)) or (not self.bias):
139
- self.covariance_ = from_table(result.cov_matrix)
140
- else:
141
- n_rows = self._partial_result.partial_n_rows
142
- self.covariance_ = from_table(result.cov_matrix) * (n_rows - 1) / n_rows
143
-
144
- self.location_ = from_table(result.means).ravel()
136
+ if self._need_to_finalize:
137
+ params = self._get_onedal_params(self._dtype)
138
+ if queue is not None:
139
+ policy = self._get_policy(queue)
140
+ else:
141
+ policy = self._get_policy(self._queue)
142
+
143
+ result = self._get_backend(
144
+ "covariance",
145
+ None,
146
+ "finalize_compute",
147
+ policy,
148
+ params,
149
+ self._partial_result,
150
+ )
151
+ if daal_check_version((2024, "P", 1)) or (not self.bias):
152
+ self.covariance_ = from_table(result.cov_matrix)
153
+ else:
154
+ n_rows = self._partial_result.partial_n_rows
155
+ self.covariance_ = from_table(result.cov_matrix) * (n_rows - 1) / n_rows
156
+
157
+ self.location_ = from_table(result.means).ravel()
158
+
159
+ self._need_to_finalize = False
145
160
 
146
161
  return self
@@ -18,6 +18,7 @@ import numpy as np
18
18
  import pytest
19
19
  from numpy.testing import assert_allclose
20
20
 
21
+ from onedal.datatypes import from_table
21
22
  from onedal.tests.utils._device_selection import get_queues
22
23
 
23
24
 
@@ -42,8 +43,8 @@ def test_on_gold_data_unbiased(queue, dtype):
42
43
  assert_allclose(expected_means, result.location_)
43
44
 
44
45
  X = np.array([[1, 2], [3, 6]])
45
- X_split = np.array_split(X, 2)
46
46
  X = X.astype(dtype)
47
+ X_split = np.array_split(X, 2)
47
48
  inccov = IncrementalEmpiricalCovariance()
48
49
 
49
50
  for i in range(2):
@@ -120,3 +121,70 @@ def test_partial_fit_on_random_data(
120
121
 
121
122
  assert_allclose(expected_covariance, result.covariance_, atol=1e-6)
122
123
  assert_allclose(expected_means, result.location_, atol=1e-6)
124
+
125
+
126
+ @pytest.mark.parametrize("queue", get_queues())
127
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
128
+ def test_incremental_estimator_pickle(queue, dtype):
129
+ import pickle
130
+
131
+ from onedal.covariance import IncrementalEmpiricalCovariance
132
+
133
+ inccov = IncrementalEmpiricalCovariance()
134
+
135
+ # Check that estimator can be serialized without any data.
136
+ dump = pickle.dumps(inccov)
137
+ inccov_loaded = pickle.loads(dump)
138
+ seed = 77
139
+ gen = np.random.default_rng(seed)
140
+ X = gen.uniform(low=-0.3, high=+0.7, size=(10, 10))
141
+ X = X.astype(dtype)
142
+ X_split = np.array_split(X, 2)
143
+ inccov.partial_fit(X_split[0], queue=queue)
144
+ inccov_loaded.partial_fit(X_split[0], queue=queue)
145
+
146
+ assert inccov._need_to_finalize == True
147
+ assert inccov_loaded._need_to_finalize == True
148
+
149
+ # Check that estimator can be serialized after partial_fit call.
150
+ dump = pickle.dumps(inccov)
151
+ inccov_loaded = pickle.loads(dump)
152
+
153
+ assert inccov._need_to_finalize == False
154
+ # Finalize is called during serialization to make sure partial results are finalized correctly.
155
+ assert inccov_loaded._need_to_finalize == False
156
+
157
+ partial_n_rows = from_table(inccov._partial_result.partial_n_rows)
158
+ partial_n_rows_loaded = from_table(inccov_loaded._partial_result.partial_n_rows)
159
+ assert_allclose(partial_n_rows, partial_n_rows_loaded)
160
+
161
+ partial_crossproduct = from_table(inccov._partial_result.partial_crossproduct)
162
+ partial_crossproduct_loaded = from_table(
163
+ inccov_loaded._partial_result.partial_crossproduct
164
+ )
165
+ assert_allclose(partial_crossproduct, partial_crossproduct_loaded)
166
+
167
+ partial_sums = from_table(inccov._partial_result.partial_sums)
168
+ partial_sums_loaded = from_table(inccov_loaded._partial_result.partial_sums)
169
+ assert_allclose(partial_sums, partial_sums_loaded)
170
+
171
+ inccov.partial_fit(X_split[1], queue=queue)
172
+ inccov_loaded.partial_fit(X_split[1], queue=queue)
173
+ assert inccov._need_to_finalize == True
174
+ assert inccov_loaded._need_to_finalize == True
175
+
176
+ dump = pickle.dumps(inccov_loaded)
177
+ inccov_loaded = pickle.loads(dump)
178
+
179
+ assert inccov._need_to_finalize == True
180
+ assert inccov_loaded._need_to_finalize == False
181
+
182
+ inccov.finalize_fit()
183
+ inccov_loaded.finalize_fit()
184
+
185
+ # Check that finalized estimator can be serialized.
186
+ dump = pickle.dumps(inccov_loaded)
187
+ inccov_loaded = pickle.loads(dump)
188
+
189
+ assert_allclose(inccov.location_, inccov_loaded.location_, atol=1e-6)
190
+ assert_allclose(inccov.covariance_, inccov_loaded.covariance_, atol=1e-6)
@@ -0,0 +1,19 @@
1
+ # ==============================================================================
2
+ # Copyright 2021 Intel Corporation
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ # ==============================================================================
16
+
17
+ from ._data_conversion import from_table, to_table
18
+
19
+ __all__ = ["from_table", "to_table"]
@@ -0,0 +1,121 @@
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 warnings
18
+
19
+ import numpy as np
20
+
21
+ from onedal import _backend, _is_dpc_backend
22
+
23
+
24
+ def _apply_and_pass(func, *args, **kwargs):
25
+ if len(args) == 1:
26
+ return func(args[0], **kwargs)
27
+ return tuple(map(lambda arg: func(arg, **kwargs), args))
28
+
29
+
30
+ def _convert_one_to_table(arg, queue=None):
31
+ # All inputs for table conversion must be array-like or sparse, not scalars
32
+ return _backend.to_table(np.atleast_2d(arg) if np.isscalar(arg) else arg, queue)
33
+
34
+
35
+ def to_table(*args, queue=None):
36
+ """Create oneDAL tables from scalars and/or arrays.
37
+
38
+ Note: this implementation can be used with scipy.sparse, numpy ndarrays,
39
+ DPCTL/DPNP usm_ndarrays and scalars. Tables will use pointers to the
40
+ original array data. Scalars and non-contiguous arrays will be copies.
41
+ Arrays may be modified in-place by oneDAL during computation. This works
42
+ for data located on CPU and SYCL-enabled Intel GPUs. Each array may only
43
+ be of a single datatype (i.e. each must be homogeneous).
44
+
45
+ Parameters
46
+ ----------
47
+ *args : {scalar, numpy array, sycl_usm_ndarray, csr_matrix, or csr_array}
48
+ arg1, arg2... The arrays should be given as arguments.
49
+
50
+ Returns
51
+ -------
52
+ tables: {oneDAL homogeneous tables}
53
+ """
54
+ return _apply_and_pass(_convert_one_to_table, *args, queue=queue)
55
+
56
+
57
+ if _is_dpc_backend:
58
+
59
+ try:
60
+ # try/catch is used here instead of dpep_helpers because
61
+ # of circular import issues of _data_conversion.py and
62
+ # utils/validation.py. This is a temporary fix until the
63
+ # issue with dpnp is addressed, at which point this can
64
+ # be removed entirely.
65
+ import dpnp
66
+
67
+ def _table_to_array(table, xp=None):
68
+ # By default DPNP ndarray created with a copy.
69
+ # TODO:
70
+ # investigate why dpnp.array(table, copy=False) doesn't work.
71
+ # Work around with using dpctl.tensor.asarray.
72
+ if xp == dpnp:
73
+ return dpnp.array(dpnp.dpctl.tensor.asarray(table), copy=False)
74
+ else:
75
+ return xp.asarray(table)
76
+
77
+ except ImportError:
78
+
79
+ def _table_to_array(table, xp=None):
80
+ return xp.asarray(table)
81
+
82
+ from ..common._policy import _HostInteropPolicy
83
+
84
+ def convert_one_from_table(table, sycl_queue=None, sua_iface=None, xp=None):
85
+ # Currently only `__sycl_usm_array_interface__` protocol used to
86
+ # convert into dpnp/dpctl tensors.
87
+ if sua_iface:
88
+ if (
89
+ sycl_queue
90
+ and sycl_queue.sycl_device.is_cpu
91
+ and table.__sycl_usm_array_interface__["syclobj"] is None
92
+ ):
93
+ # oneDAL returns tables with None sycl queue for CPU sycl queue inputs.
94
+ # This workaround is necessary for the functional preservation
95
+ # of the compute-follows-data execution.
96
+ # Host tables first converted into numpy.narrays and then to array from xp
97
+ # namespace.
98
+ return xp.asarray(
99
+ _backend.from_table(table), usm_type="device", sycl_queue=sycl_queue
100
+ )
101
+ else:
102
+ return _table_to_array(table, xp=xp)
103
+
104
+ return _backend.from_table(table)
105
+
106
+ else:
107
+
108
+ def convert_one_from_table(table, sycl_queue=None, sua_iface=None, xp=None):
109
+ # Currently only `__sycl_usm_array_interface__` protocol used to
110
+ # convert into dpnp/dpctl tensors.
111
+ if sua_iface:
112
+ raise RuntimeError(
113
+ "SYCL usm array conversion from table requires the DPC backend"
114
+ )
115
+ return _backend.from_table(table)
116
+
117
+
118
+ def from_table(*args, sycl_queue=None, sua_iface=None, xp=None):
119
+ return _apply_and_pass(
120
+ convert_one_from_table, *args, sycl_queue=sycl_queue, sua_iface=sua_iface, xp=xp
121
+ )