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
omegaconf.errors.MissingMandatoryValue: Missing mandatory value: data._target_
full_key: data._target_
object_type=dict
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 make data mandatory. That way, the error message would clearly say that data 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-pasting segmentation.yaml. I only changed the _target_. Here is what happens when I omit data.* like above, but with my own task:
runner.py task=radrec task/model=enet
task=radrec task/model=enet
omegaconf.errors.InterpolationKeyError: Interpolation key 'data.image_tag' not found
full_key: task.image_tag
object_type=dict
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 setting data and data.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:
hydra.errors.InstantiationException: Error in call to target 'radrec.dataset.datamodule.RadrecDataModule':
TypeError('expected str, bytes or os.PathLike object, not NoneType')
full_key: data
Note that data/radrec.yaml contains dataset_path: null.
Any thoughts?
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=enetThis message does not inform of the real problem, which is that
datais not set. I'm thinking it might be better if we makedatamandatory. That way, the error message would clearly say thatdatais missing, instead of one of its keys.The following is another unclear error message that is related.
I have created a new
taskin 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=enetIt's weird that I don't get the same message. But also, it seems like making
datamandatory would help. (By the way, after settingdataanddata.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.yamlcontainsdataset_path: null.Any thoughts?