Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix for n_iter_ SVM attribute and oneDAL kNN classifier result option #1071

Merged
merged 4 commits into from
Dec 2, 2022

Conversation

Alexsandruss
Copy link
Contributor

@Alexsandruss Alexsandruss commented Dec 1, 2022

Description

Changes proposed in this pull request:

  • Add workaround for n_iter_ SVM attribute: oneDAL doesn't return number of iterations now, setting it to 1 or max in python interface
  • Add pytest run for onedal directory
  • fix result_option fail for kneighbors method in knn classifier (fix for circleci sklearn test)

@Alexsandruss Alexsandruss marked this pull request as ready for review December 2, 2022 13:12
@Alexsandruss Alexsandruss changed the title Fix for n_iter_ SVM attribute Fix for n_iter_ SVM attribute and oneDAL kNN classifier result option Dec 2, 2022
Comment on lines +168 to +170
# TODO: remove this workaround
# when oneDAL SVM starts support of 'n_iterations' result
self.n_iter_ = 1 if max_iter < 1 else max_iter
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we don't have this feature lets do fallback on sklearnex side

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's not feature or parameter, but output
n_iter_ is for number of computed svm iterations

@Alexsandruss Alexsandruss merged commit 8fdb83b into intel:develop Dec 2, 2022
inteldimitrius pushed a commit to Vika-F/scikit-learn-intelex that referenced this pull request Dec 13, 2022
…intel#1071)

* Add workaround for n_iter_ SVM attribute

* Pytest onedal dir

* Exclude test_policy

* fix result_option fail for kneighbors method in knn classifier
napetrov pushed a commit that referenced this pull request Dec 15, 2022
…#1071)

* Add workaround for n_iter_ SVM attribute

* Pytest onedal dir

* Exclude test_policy

* fix result_option fail for kneighbors method in knn classifier
napetrov added a commit that referenced this pull request Feb 25, 2023
* ENH: OneDAL python ifaces for Random Forest

* initial pybinds

* update

python wrappers, test

* update init

* misc tests update

* update + tests

* intro import

* update

sample weights

* sklearnex dispather: cls

* bump up version

* update fixed params for bins

* update backend wrappers

* update RF cl

* update onedal rf classifier fit

* update fallback to base

* update constraints for falback

* update some attributes saving

* fallback when n_outputs is not 1

* revert additions to deselected_tests.yaml

* update esimators_ for cl

* enabled using onedal rf regression

* PEP8 fixes (#1031)

* Added shape attr check in validation (#1014)

Co-authored-by: Aleksandr Pivovar <apivovar@Aleksandrs-MacBook-Pro.local>

* Fix binary AUC calculation for boolean labels (#1030)

* Fix binary AUC calculation when labels are bool.

Converting y_score to int using label_binarizer just like y_true.

* Optional binarization for y_score

Co-authored-by: Alexander Andreev <alexander.andreev@intel.com>

* Update dependency numpy [SECURITY] (#946)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update dependency nbconvert to v6.5.1 [SECURITY] (#1037)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update algorithm wrappers to latest Scikit-learn changes (#1032)

* Update algorithm wrappers to latest sklearn changes

* PEP8 and lasso fixes

* Fix pca versioning

* Update KMeans versioning

* Rewrite kmeans.fit versions branching

* Fix TSNE perplexity to pass parameter check (perplexity < n_samples)

* Future warnings fix

* Restore auto kmeans algorithm for compatibility with sklearn<1.1

* Numpy versions change; in-function imports removal; load_boston removal (#1041)

* Bump up `dal` and `dal-devel` version to 2021.6.0 in conda recipe (#1015)

* Bump up `dal` and `dal-devel` version to 2021.6.0 in conda recipe

* Update meta.yaml

* Code owners update (#1039)

* Update of code owners

* Replace DTClassifier with DTRegressor in RFRegressor (#1052)

* allow n_init param in KMeans to accept str 'auto' (#1045)

* allow n_init param to accept in kmeans

* whitespace removed

* whitespace removed

* removed check for string for param n_init in kmeans

* changed param 'algorithm' default to lloyd

* whitespace

* add versioning for param change

* pep8 fix

* pep8 fix

* pep8 fix

* Fixed typo: sklern to sklearn in README.md (#1047)

* fixed typo, sklern to sklearn

Co-authored-by: Alexander Andreev <alexander.andreev@intel.com>

* Update dependency jupyter-core to v4.11.2 [SECURITY] (#1056)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* ENH: multi-gpu enable

* CI updates (#1062)

* Fix mpich headers for macOS

* Update Ubuntu version to 22.04

* Update macos version to 12

* Change numpy version (#1057)

* Change 'host' to 'cpu' in sycl_execution_content (#1064)

* Change 'host' to 'cpu' in sycl_execution_content

* Remove deprecated host device

* Update python version to 3.10

* Revert "Update python version to 3.10"

This reverts commit 9bf55d4.

Co-authored-by: Samir Nasibli <samir.nasibli@intel.com>

* Fix for n_iter_ SVM attribute and oneDAL kNN classifier result option (#1071)

* Add workaround for n_iter_ SVM attribute

* Pytest onedal dir

* Exclude test_policy

* fix result_option fail for kneighbors method in knn classifier

* Numpy version fix (#1070)

* Downgrade build version and set test version of numpy

* Upgrade version to 1.20 for python<=3.9

* Set base numpy to be 1.19.* for build

* Set numpy for future python version

* Enabling full versions and >=3.10 python

Co-authored-by: Nikolay Petrov <nikolay.a.petrov@intel.com>

* System info output in CI (#1073)

* add system info

* fix python activation on win

* add system descriptor

* fix descriptor calls

* fix descriptor calls 2

* fix cpufeature installation on mac

* change system descriptor url to oneapi-src/onedal

* Add descriptor script

* Remove extra variable

* Update dependency certifi to v2022 [SECURITY] (#1079)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Fix for balanced class weight (#1080)

* add balanced branch of _compute_class_weight

* Remove extra computation of weights

* Migration to new compiler for 2023.0 release (#1059)

* link libonedal_dpc.so with libonedal_sycl.a due to mkl depency issue

* only changing linker if linux

* additional condition for windows linkage

* removing multiply defined symbols

* windows build completes, sycl errors, trying to start job

* builds and 86/100 examples pass, cleaned up previous unnecessary additions

* initial fix for Linux DPCPP failure

* Flake8 appliance

* add env variables for Linux DPCPP

* Linux DPCPP ci update

* Linux DPCPP check: update conda build step

* moved compiler options setting into conda-recipe build

* reverting linkage changes - resolved from mkl fpk update

* address some comments

updates passing -fsycl flag

some refactoring

* rebase

* fix comments

* Update CMakeLists.txt

fix using gcc compiler

* Apply pep8

* Apply pep8 n2

* Update CMakeLists.txt

* resolving windows intel compiler issues

* MD to MT flag for compiler and removing unneeded cmake verbose flag

* updated gitignore

* link libonedal_dpc.so with libonedal_sycl.a due to mkl depency issue

* only changing linker if linux

* additional condition for windows linkage

* removing multiply defined symbols

* windows build completes, sycl errors, trying to start job

* builds and 86/100 examples pass, cleaned up previous unnecessary additions

* initial fix for Linux DPCPP failure

* Flake8 appliance

* add env variables for Linux DPCPP

* Linux DPCPP ci update

* Linux DPCPP check: update conda build step

* moved compiler options setting into conda-recipe build

* reverting linkage changes - resolved from mkl fpk update

* address some comments

updates passing -fsycl flag

some refactoring

* rebase

* fix comments

* Update CMakeLists.txt

fix using gcc compiler

* Apply pep8

* Apply pep8 n2

* Update CMakeLists.txt

* resolving windows intel compiler issues

* MD to MT flag for compiler and removing unneeded cmake verbose flag

* updated gitignore

* Update setup.py

* reverting MT flag back to MD

* undoing last commit

* reverting sycl linking addition

* removing sycl addition pt. 2

* addressing Mac comments

* link fsycl in cmake only when using dpc interface

* FIX: daal4py spmd test

* some misc fixes setup.py

Co-authored-by: Samir Nasibli <samir.nasibli@intel.com>
Co-authored-by: Alexander Andreev <alexander.andreev@intel.com>

* FIX: daal4py sycl examples (#1081)

Added required extra_link_args for `icpx/icx` compiler.

* CI matrix and sklearn>1.1 fixes (#1086)

* fix for 'normalize' deprecation in linear_model

* Add initial jobs matrix

* Rework matrix

* Dependencies fix

* Disable DPCPPROOT; fix clang-format installation

* Modify sklearn dep

* Modify scikit-learn installation with pip

* Disable df examples/tests

* fix for sed command

* Fix scipy version on Windows

* Fix scipy version on Windows 2

* Build docs only on py3.9

* Build docs only on py3.9 n2

* Build docs only on py3.9 n3

* Select one job for docs generation

* Increase testing numpy version on Windows

* Extend matrix to sklearn 1.2

* PCA n_features_ deprecation

* Update linear model __init__

* Correct daal version with fixed decision forest

* Move docs building to separate job

* Change matrix; update deps; add sklearnex/* tests

* Enable onedal iface

* Temp.disable dpcpp

* Update pybind11 for py311

* Add upgrade for testing deps installation

* Add sourcing of MSVS on Windows

* Update setup*.py

* Correct requirements.txt

* Correct conda-recipe/build* - d4p installation

* Modify Windows testing

* Fix paths for Windows testing

* Fix paths for Windows testing 2

* Repair docs job

* Repair docs job 2

* Repair docs job 3

* Enable older dpcpp compiler build

* Try to fix deselect for daal4py/sklearn tests on Windows

* fix daal4py docs build - tbb runtime libs exception

* Try to fix deselect for daal4py/sklearn tests on Windows 2

* change dpcpp compiler

* Change dep. versions

* CI matrix change

* Add global patching testing on lnx; remove extra exmples run on mac

* Explicit passing of gamma paramater for kmeans (#1091)

* Revert record filenames in conda-recipe (#1092)

* removed outdated code

* some refactoring

* update onedal4py

* temp: using daal4py backend for sklearnex testing

leaving onlu onedal module tests

* tmp: using daal4py backend

* initial update for the build

* misc fixes

* added using spmd policy

* added some python primitives for spmd policy

* add instantiation for spmd interface

* all together

bringing updated changes from #1058

spmd interface

dpctl integration

updates for MPI

* update onedal.spmd.ensemble

* dpctl installation for ci

initial

* some tests fix

* add missed decorator

* update GPU support condition

* removed merge artefacts

* dev/linear-regression

* All is working. Final polishing is required

* Dispatching

* Clang-format applied as weel as some comments from @samir-nasibli

* PEP8 applied

* Tests fixed

* Minor

* Minor

* Minor

* Minor

* _onedal_supported fixes

* Date in _common.py fixed

* More date fixes

* Proper initialization

* Minor

* PEP8 compliant

* Minor

* ENH: common for SPMD

* PEP8

* Borrowing

* Minor fixes

* Minor

* Comments applied

* Minor

* Switching by versions

* Minor

* Minor

* More define switching

* ONEDAL_STR as string

* Minor

* Correct DALROOT environment variable usage

* No triling space

* Changes in setup_*.py

* Proper versions

* Version define revisited

* Comments by @Alexsandruss applied

* Comparison in integers

* Minor

* Switch in linear.py

* Minor

* Minor

* Optional testing

* Correct dispatching

* Minor

* Bug fixes

* Minor

* Another try

* Minor

* Minor

* Minor

* Complete rework

* PEP8 rules

* Minor

* Comments by @Alexsandruss

* Minor

* Minor

* Another minor commit

* Minor

* Fixes for PEP8

* Minor

* Fixes

* New trimmed deselected list

* PEP8

* Minor

* Minor

* Minor

* Minor

* Temp

* Minor

* Minor

* Minor

* Minor

* Minor

* Steady progress

* Minor

* Test for finiteness

* Minor

* Minor

* Convertation

* minor

* Minor

* minor

* Minor

* update build

* pep8 codestyle

* update

* minor

* Everything is working

* License plate

* Minor

* Minor

* Changes in testing

* SPMD init changes

* Minor

* Minor

* Further improvements

* Minor

* PEP8 application

* Minor

* Minor

* required changes

* Minor

* Minor

* CI changes

* Reversed

* Minor

* minor

* Minor improvements

* Filtered list of tests

* Minor changes according to @Alexsandruss

* Filtering fixed

* Another #ifdef

---------

Co-authored-by: snasibli <samir.nasibli@intel.com>
Co-authored-by: Alexander Andreev <alexander.andreev@intel.com>
Co-authored-by: PivovarA <pivovar3al@gmail.com>
Co-authored-by: Aleksandr Pivovar <apivovar@Aleksandrs-MacBook-Pro.local>
Co-authored-by: Furkan Tektas <tektasfurkan@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: msa <111298646+md-shafiul-alam@users.noreply.github.com>
Co-authored-by: Shittu Samson <57238841+LOVE-DOCTOR@users.noreply.github.com>
Co-authored-by: Nikolay Petrov <nikolay.a.petrov@intel.com>
Co-authored-by: glasere@purdue.edu <42726565+ethanglaser@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants