-
Notifications
You must be signed in to change notification settings - Fork 4
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
Unclear error messages when misconfiguring data #131
Comments
I'll start by adressing the specific errors (especially where I can explain them), before we take a step back to properly discuss the design of the data config.
I'm not able to properly explain why the error message changes between the 2 commands. Out of curiosity, did you implement your project inside Because the only thing that comes to mind as an explanation would be a difference in the order in which different configs are resolved (maybe across projects hence my previous question), which would cause one error or the other to trigger first.
I admit that it's not especially intuitive, but in my experience it's how Hydra outputs errors, especially in multirun mode where each individual run is a subprocess (or thread? I'm not sure), which can obfuscate a bit where the error originally came from. The error that is printed last is not especially clear, but if you scroll up the stack trace you'll eventually find the original "native python" error, which ought to be clearer. In your case, what the error is telling you line-by-line is this:
So, in your case, if you want a clear error message, you should set |
Merci beaucoup! J'apprécie que tu aies pris le temps de répondre, car ce n'est clairement pas prioritaire. To answer your question, my projects depends on vital as a git submodule. Thanks for the suggestion about setting Now, a question remains unanswered: why isn't |
In my project, the following config works:
runner.py task=segmentation task/model=enet data=radrec data.dataset_path=<DATASET_PATH>
Here is the error I get if I omit the
data.*
args:runner.py task=segmentation task/model=enet
This message does not inform of the real problem, which is that
data
is not set. I'm thinking it might be better if we makedata
mandatory. That way, the error message would clearly say thatdata
is missing, instead of one of its keys.The following is another unclear error message that is related.
I have created a new
task
in my project by copy-pastingsegmentation.yaml
. I only changed the_target_
. Here is what happens when I omitdata.*
like above, but with my own task:runner.py task=radrec task/model=enet
It's weird that I don't get the same message. But also, it seems like making
data
mandatory would help. (By the way, after settingdata
anddata.dataset_path
, it works.)Another error that I find unclear is when I omit just
data.dataset_path
; the error does not mention the actual argument name:Note that
data/radrec.yaml
containsdataset_path: null
.Any thoughts?
The text was updated successfully, but these errors were encountered: