-
Notifications
You must be signed in to change notification settings - Fork 219
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
Decision forest random splitter #2270
Decision forest random splitter #2270
Conversation
/intelci: run |
Any chance you could run the CI Random Forest tests/examples with bootstrap=False and show the results? |
Hi, I added testcases for bootstrap_mode / splitter_mode switching. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The main concern is that extra trees still process histogram bins in parallel to compute the split. This needs to be changed. And there are also several minor comments.
cpp/oneapi/dal/algo/decision_forest/backend/gpu/train_splitter_sp_opt_impl_dpc.cpp
Outdated
Show resolved
Hide resolved
cpp/oneapi/dal/algo/decision_forest/backend/gpu/train_splitter_sp_opt_impl_dpc.cpp
Outdated
Show resolved
Hide resolved
cpp/oneapi/dal/algo/decision_forest/backend/gpu/train_splitter_impl_dpc.cpp
Outdated
Show resolved
Hide resolved
cpp/oneapi/dal/algo/decision_forest/backend/gpu/train_splitter_impl_dpc.cpp
Outdated
Show resolved
Hide resolved
cpp/oneapi/dal/algo/decision_forest/backend/gpu/train_misc_structs.hpp
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for addressing part of the issues.
But the main change request remains the same as previously: need to remove threading by histogram bins (cgh.parallel_for) for extra trees.
cpp/oneapi/dal/algo/decision_forest/backend/gpu/train_misc_structs.hpp
Outdated
Show resolved
Hide resolved
Yes, it is in progress. |
cpp/oneapi/dal/algo/decision_forest/backend/gpu/train_splitter_impl_dpc.cpp
Outdated
Show resolved
Hide resolved
cpp/oneapi/dal/algo/decision_forest/backend/gpu/train_splitter_impl.hpp
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The overall logic of the random splitter is correct now, that is great.
But I have several comments regarding the implementation details that need to be addressed or proved that there is no need in fixing them.
cpp/oneapi/dal/algo/decision_forest/backend/gpu/train_kernel_hist_impl_dpc.cpp
Outdated
Show resolved
Hide resolved
cpp/oneapi/dal/algo/decision_forest/backend/gpu/train_kernel_hist_impl.hpp
Outdated
Show resolved
Hide resolved
cpp/oneapi/dal/algo/decision_forest/backend/gpu/train_splitter_sp_opt_impl_dpc.cpp
Outdated
Show resolved
Hide resolved
examples/oneapi/dpc/source/decision_forest/df_cls_hist_batch_random.cpp
Outdated
Show resolved
Hide resolved
examples/oneapi/dpc/source/decision_forest/df_reg_hist_batch.cpp
Outdated
Show resolved
Hide resolved
examples/oneapi/dpc/source/decision_forest/df_reg_hist_batch_random.cpp
Outdated
Show resolved
Hide resolved
7e2ebec
to
1de2733
Compare
I have rebased onto master this branch and resolved all change requests. The implementation is ready for merge. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems the adding of using v1::splitter_mode
was done a bit incorrectly.
Please see the comments.
cpp/oneapi/dal/algo/decision_forest/backend/gpu/train_splitter_sp_opt_impl.hpp
Show resolved
Hide resolved
cpp/oneapi/dal/algo/decision_forest/backend/gpu/train_splitter_sp_opt_impl.hpp
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The changes look good to me.
examples/oneapi/dpc/source/decision_forest/df_reg_hist_batch_random.cpp
Outdated
Show resolved
Hide resolved
examples/oneapi/dpc/source/decision_forest/df_cls_hist_batch_random.cpp
Outdated
Show resolved
Hide resolved
c7ad5ee
to
3286808
Compare
Description
Added random splitting strategy.
Changes proposed in this pull request:
descriptor
andtrain_context
classes.