Reputation
Badges 1
25 × Eureka!is there a built in programmatic way to adjustΒ
development.default_output_uri
?
How about: In your Task.init(output_uri='...')
Sure thing, and I agree it seems unlikely to be an issue π
Yeah we should definitely have get_requirements π
ReassuredTiger98 yes this is exactly it π
agent.package_manager.type will select for the agent weather it should use conda or pip to do the installation. Basically if you develop on conda you should select conda.
The agent will first try to install packages using conda, then it will collect the missing packages and install them into the save environment only using pip.
Hi TastyOwl44
So this depends on your code itself, but usually you need a CPU machine to run ClearML server (or use the free community server), than a machine to run the pipeline controller (usually the same machine running the clearml-server
, as the pipeline control code is basically controller only and does not execute the Task itself), lastly you need machines with GPU running the clearml-agent
(these GPU machines are the one actually doing the training inference etc.)
Make ...
ThickFox50 I also have to point that there is a free hosted server here π https://app.community.clear.ml
Hi TightElk12
it would raise an error if the env where execution happens is not configured to track things on our custom server to prevent logging to the public demo server ?
What do you mean by that? catching the default server instead of the configured one ?
Hmm, let me see if you can somehow "signal" to the subprocess that it should not use the main process Task. (btw: are you forking or spawning a subprocess?)
TightElk12 are you still looking for a way to create a new "sub-task" ?
Okay, I'm pretty sure there is a hack, let me see if there is something "nicer"
And if you could also update the docs with all env vars possible to set up it would awesome!
Yes, I'll pass it on, that is a good point
Thanks! Yes, this could be great !
Could you please open a GitHub issue, so we remember to update the feature ?
Hi TightElk12
Are you looking for a way to set the output_uri
from environment variable ? Is this it?
Hi AdventurousRabbit79
In the wizard
https://github.com/allegroai/clearml/blob/1ab3710074cbfc6a19dd8a57078b10b31b2df31a/examples/services/aws-autoscaler/aws_autoscaler.py#L214
Add the S3 section like you would in the clearml.conf:
https://github.com/allegroai/clearml/blob/1ab3710074cbfc6a19dd8a57078b10b31b2df31a/docs/clearml.conf#L73
current task fetches the good Task
Assuming you fork the process than the gloabl instance" is passed to the subprocess. Assuming the sub-process was spawned (e.g. POpen) then an environement variable with the Task's unique ID is passed. then when you call the "Task.current_task" it "knows" the Task was already created and it will fetch the state from the clearml-server and create a new Task object for you to work with.
BTW: please use the latest RC (we fixed an issue with exactly this...
Regrading the project name:
set_project will support project_name in the next version π project_id=[p.id for p in Task.get_projects() if p.name==project_name][0]
My question is what happens if I launch in parallel multiple doit commands that create new Tasks.
Should work out of the box.
I would like to confirm that current_task ...
Correct.
BTW: if you want to sync between artifacts / settings, I would recommend calling task.reload() to get the latest values back from the server.
The problems comes from ClearML that thinks it starts from iteration 420, and then adds again the iteration number (421), so it starts logging from 420+421=841
JitteryCoyote63 Is this the issue ?
Hi JitteryCoyote63 , I cannot reproduce it... when I call set initial iteration 0, it does what I'm expecting, and resend the scalar. I tested with the clearml ignite example, any thoughts on how I can reproduce?
Let me see if I can reproduce something
Hmm so I guess the actual code adds it into the reporting itself ...
How about we call:task.set_initial_iteration(0)
JitteryCoyote63 no I think this is all controlled from the python side.
Let me check something
So I shouldnβt even need to call theΒ
task.set_initial_iteration
Β function
I think just removing this call should solve it, I think that what's going on is that this is called twice (once internal once manually by your code)
After you call task.set_initial_iteration(0)
what do you get with task.get_initial_iteration()
, is it 0 ?