Comments (4)
Sorry for coming back to this again but I'm still having this issue.
So far I've tried adding "//yggdrasil_decision_forests/learner/gradient_boosted_trees/loss:loss_imp_binomial" to the cc_library_ydf at \yggdrasil-decision-forests\yggdrasil_decision_forests\learner\gradient_boosted_trees\BUILD and building the lib again but this doesn't fix the issue. Perhaps I should add it somewhere else?
I have also tried adding:
CreateLoss(proto::Loss::BINOMIAL_LOG_LIKELIHOOD, proto::Task::CLASSIFICATION, myFeatureCol, config)
to my code (although probably this is not needed, as I'm not using early stopping). This doesn't help either...
from yggdrasil-decision-forests.
Hi JoseAF,
Sorry to hear about this.
As you noted, the part of the code related to losses has changed. Losses are now using a registration mechanism similarly as for the learner, models and dataset formats. In most existing code, I would expect no changes in the user code. But I could imagine corner cases where you would have to register those losses manually (that is to link :loss_imp_binomial, or one of its dependents).
Following is the path used to inject :loss_imp_binomial in most user code. It could be useful to identify if you need to inject the loss manually:
The loss implementation "BINOMIAL_LOG_LIKELIHOOD" is defined in the file yggdrasil_decision_forests/learner/gradient_boosted_trees/loss/loss_imp_binary_focal.h and compiled in the rule :loss_imp_binomial of the file https://github.com/google/yggdrasil-decision-forests/blob/main/yggdrasil_decision_forests/learner/gradient_boosted_trees/loss/BUILD. Your error suggest that none of the losses are registered. For our tools, those losses are registered in the build rule :all_implementations of in file https://github.com/google/yggdrasil-decision-forests/blob/main/yggdrasil_decision_forests/learner/gradient_boosted_trees/loss/BUILD. ;all_implementations is used in yggdrasil_decision_forests/learner/gradient_boosted_trees, which is itself used in the build rule :all_learners or https://github.com/google/yggdrasil-decision-forests/blob/main/yggdrasil_decision_forests/learner/BUILD.
If this does not solve this issue, please try the bazel query tool. Notably, identify the path from your binary to :loss_imp_binomial. If such path does not exist, you have to register :loss_imp_binomial (or one of its decedents) manually.
from yggdrasil-decision-forests.
Thanks for the reply Mathieu.
In my setting (as it comes from YDF checkout), BinomialLogLikelihoodLoss is defined in loss_imp_binomial.h and registered there as BINOMIAL_LOG_LIKELIHOOD. In gradient_boosted_trees/loss:BUILD we have the cc_library_ydf:loss_imp_binomial and also the cc_library_ydf:all_implementations which includes it. This all_implementations in turn is a dependency of cc_library_ydf:gradient_boosted_trees (at gradient_boosted_trees/BUILD file). When I get to the learner/BUILD file, I see that cc_library_ydf:all_learners depends on all_learners_except_hparam_optimizer, which in turn depends on gradient_boosted_trees. So there seems to be a defined path from learner to BINOMIAL_LOG_LIKELIHOOD - that's what made me think perhaps I'm missing something in the code that now needs to be added (e.g. CreateLoss...).
I'll have a look at the bazel query tool...
from yggdrasil-decision-forests.
Hi guys
I haven't got this working yet. It seems all the dependencies are correct in the BUILD files as far as I can see. I have built a lib with tensorflow in case I was missing something from there but the error persists. I have also added a CreateLoss call and a set_loss call to try to trigger registering of the BINOMIAL_LOG_LIKELIHOOD loss but no luck. I'll keep trying, but any ideas are welcomed here...
Just for your information, in case it helps, the code I have works perfectly well with 0.2.3 and I haven't made changes to the BUILD files that I get from github.
Thanks
from yggdrasil-decision-forests.
Related Issues (20)
- may you help to understand how unbalanced data treaded in your code? HOT 4
- in which file you read all data sets from your paper HOT 3
- Documentation for using Go is out of date HOT 1
- Go module buried in this repo prevents the module importing properly HOT 14
- Go module only supports binary classification HOT 1
- Go model serving does not support DISCRETIZED_NUMERICAL HOT 4
- Running quick Scorer Extended Model HOT 2
- Windows Build Fails - Compiling .cc files results in syntax error HOT 2
- Missing whitespace on page /cli_install.html and please use sudo in build_binary_release.sh HOT 5
- Don't pollute my home !! HOT 1
- minor typo on page /intro_df.html HOT 1
- Cannot import ydf from windows vsc HOT 6
- Cannot compile standalone example on macOS HOT 1
- No aarch64 wheel or source distro HOT 2
- rich reports not rendering graphs in vscode HOT 3
- Cannot use 'discretize_numerical_columns' in tuner HOT 1
- Loading big models is slow HOT 9
- On MacOSX, Mac M Hardware (ARM), a segmentation fault happened with YDF when pyarrow is installed HOT 8
- MHLD_OBLIQUE is unknown while mentioned in the documentation HOT 2
- porting an example from tensorflow HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yggdrasil-decision-forests.