With that said, can I run another thing by you related to this. What do you think about a PR that adds the functionality I originally assumed schedule_function was for? By this I mean: adding a new parameter (this wouldn't change anything about schedule_function or how .add_task() currently behaves) that also takes a function but the function expects to get a task_id when called. This function is run at runtime (when the task scheduler would normally execute the scheduled task) and use ...
Hi @<1545216070686609408:profile|EnthusiasticCow4> ! That's correct. The job function will run in a separate thread on the machine you are running the scheduler from. That's it. You can create tasks from functions tho using backend_interface.task.populate.CreateFromFunction.create_task_from_function
@<1545216070686609408:profile|EnthusiasticCow4> a PR would be greatly appreciated. If the problem lies in _query_tasks
then it should be addressed there
Hi @<1545216070686609408:profile|EnthusiasticCow4> ! Note that the Datasets
section is created only if you get the dataset with an alias? are you sure that number_of_datasets_on_remote != 0
?
If so, can you provide a short snippet that would help us reproduce? The code you posted looks fine to me, not sure what the problem could be.
Hi @<1545216070686609408:profile|EnthusiasticCow4> !
So you can inject new command line args that hydra will recognize.
This is true.
However, if you enable _allow_omegaconf_edit_: True, I think ClearML will "inject" the OmegaConf saved under the configuration object of the prior run, overwriting the overrides
This is also true.
@<1545216070686609408:profile|EnthusiasticCow4> yes, that's true. I would aggregate the tasks by tags (the steps will be tagged with opt: ID
), None then get the metrics to get the losses None , and look into the tasks config to get the term you wanted to optimize [None](https://clear.ml/docs/latest/docs/references/sdk/task/#get_last...
Hi @<1558986821491232768:profile|FunnyAlligator17> ! There are a few things you should consider:
- Artifacts are not necessarily pickles. The objects you upload as artifacts can be serialized in a variety of ways. Our artifacts manager handles both serialization and deserialization. Because of this, you should not pickle the objects yourself, but specify
artifact_object
as being the object itself. - To get the deserialized artifact, just call
task.artifacts[name].get()
(not get_local...
can you share the logs of the controller?
@<1702492411105644544:profile|YummyGrasshopper29> you could try adding the directory you are starting the pipeline with to the python path. then you would run the pipeline like this:
PYTHONPATH="${PYTHONPATH}:/path/to/pipeline_dir" python my_pipeline.py
Also, feel free to open a GH ticket (thank you for reporting this issue :d)
Hi @<1523703961872240640:profile|CrookedWalrus33> ! The way connect works by default is:
While running locally, all the values (and value changes) of a connected object are sent to the backend.
While running remotely (in your case here), all the values sent in the local run are fetched from the backend and the connected dictionary is populated with these values. The values are readonly, chaning them will not have any effect.
To avoid this behaviour, you could use the `ignore_remote_override...
Hi DrabOwl94 Looks like this is a bug. Strange no one found it until now. Anyway, you can just add a --params-override
at the end of the command line and it should work (and --max-iteration-per-job <YOUR_INT>
and --total-max-job <YOUR_INT>
as Optuna requires this). We will fix this one in the next patch.
Also, could you please open a Github issue? It should contain your command line and this error.
Thank you
Hi @<1581454875005292544:profile|SuccessfulOtter28> ! The logger is likely outdated. Can you please open a Github issue about it?
check the output_uri
parameter in Task.init
You need to specify it. Or you could specify this in your config: https://github.com/allegroai/clearml/blob/54c601eea2f9981bb8e360a8203bc36696a55cfd/clearml/config/default/sdk.conf#L164
Yeah, that's always the case with complex systems 😕
And I believe that by default we send artifacts to the clearml server if not specified
FierceHamster54initing the task before the execution of the file like in my snippet is not sufficient ?
It is not because os.system
spawns a whole different process then the one you initialized your task in, so no patching is done on the framework you are using. Child processes need to call Task.init
because of this, unless they were forked, in which case the patching is already done.
` But the training.py has already a CLearML task created under the hood since its integratio...
Hi @<1523701240951738368:profile|RoundMosquito25> ! Yes, you should be able to do that
@<1523701949617147904:profile|PricklyRaven28> Can you please try clearml==1.16.2rc0
? We have released a fix that will hopefully solve your problem
no problem. we will soon release a RC that solves both issues
@<1523703472304689152:profile|UpsetTurkey67> It would be great if you could write a script we could use to reproduce
Hi @<1545216070686609408:profile|EnthusiasticCow4> ! Can't you just get the values of the hyperparameters and the losses, then plot them with something like mathplotlib
then just report the plot to ClearML?
do you have any STATUS REASON
under the INFO
section of the controller task?
After you do s['Function']['random_number'] = random.random()
you still need to call set_parameters_as_dict(s)
Hi @<1590514584836378624:profile|AmiableSeaturtle81> ! Looks like remove_files
doesn't support lists indeed. It does support paths with wildcards tho, if that helps.
I would remove all the files to the dataset and add only the ones you need back as a workaround for now, or just create a new dataset