I'm able to reproduce, but your workaround seems to be the best one for now. I tried launching with clearml-task
command as well, but we have the same issue there: only argparse arguments are allowed.
AgitatedDove14 any better workaround for this, other than waiting for the jsonargparse issue to be fixed?
I commented this and a bit more on an existing issue: https://github.com/allegroai/clearml/issues/403#issuecomment-1316689416
I found a hack! 🎉 See the issue for details: https://github.com/allegroai/clearml/issues/403#issuecomment-1317362482
Thanks SmugDolphin23 for the suggestion.
Sadly this does not solve the problem of having Namespace
s inside the config, which cannot be parsed by jsonargparse
when running remotely. The Error message is the same as shown https://github.com/allegroai/clearml/issues/403#issuecomment-1316689416 .
HomelyShells16 looks like some changes have been made to jsonargparse
and pytorch_lightning
since we released this binding feature. could you try with jsonargparse==3.19.4
and pytorch_lightning==1.5.0
? (no namespace parsing hack should be needed with these versions I believe)
HomelyShells16 Thanks for the detailed write-up and minimal example. I'm running it now too
Awesome, thanks! Make sure to check out the linked issue, as I have added more findings there
Also, feel free to open a GH ticket (thank you for reporting this issue :d)
Hi HomelyShells16 How about doing things this way? does it work for you?
` class ClearmlLightningCLI(LightningCLI):
def init(self, *args, **kwargs):
Task.add_requirements("requirements.txt")
self.task = Task.init(
project_name="example",
task_name="pytorch_lightning_jsonargparse",
)
super().init(*args, **kwargs)
def instantiate_classes(self, *args, **kwargs):
super().instantiate_classes(*args, **kwargs)
self.task.execute_remotely(queue_name="Eugene")
if name == "main":
ClearmlLightningCLI(ImageClassifier, seed_everything_default=42, save_config_overwrite=True, run=True) `