-
Notifications
You must be signed in to change notification settings - Fork 217
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
gbt dtrees always use float instead of the real data type cause unexpected predict result. #1628
Comments
@cmsxbc thanks for reporting this bug! Sorry for long response! |
@ShvetsKS Sorry for my poor English.... I'm not sure what's real meaning for "actual For the model , which is from lightGBM example, I mentioned before, the And Actually, I found this error from a model built with thousands of features and thousands of iterations. What I can provide is that |
@ShvetsKS Sorry for bothering, is there any progress? T_T |
@cmsxbc currently we are working on appropriate solution to save support of "old" trained models with float fields. Sorry for slow fix delivery. |
@ShvetsKS Sorry again, but it have took almost another season.... T_T |
Hi all. I reproduced the behavior with the latest version of the library. The accuracy difference has now decreased to approximately 2e-8 compared to the initially reported ~2e-3. We plan to close this issue, as the degradation no longer appears significant. |
Describe the bug
I'm working on convert lightGBM model to daal gbt model. And the converted model predict different result which is much different
to that lightGBM predict.
And I have found that the gbt_dtrees model always use float as the code shows.
https://github.com/oneapi-src/oneDAL/blob/c6c5219c85e5bceb0392e54e653e00e8cc45e21f/cpp/daal/src/algorithms/dtrees/gbt/gbt_predict_dense_default_impl.i#L44
If i changed the typedef to
typedef double ModelFPType
, the result would be just as expected.To Reproduce
Steps to reproduce the behavior:
the release package will see two pred result is not equal.
apply the patch
Expected behavior
Use real data type, or the reason why the float is the one~
Output/Screenshots
Up one is the unexpected result, and bottom is what I recompiled with
typedef double ModelFPType
.My patch:
Environment:
The text was updated successfully, but these errors were encountered: