Reputation
Badges 1
40 × Eureka!CLEARML-AGENT version 0.17.2
allegroai 3.3.5
SuccessfulKoala55 on a different question that came up in the context of this use case, I want to use Task.init(continue_last_task=id) in order to add the inference results to the original task that ran the inference.
I was able to do this for a single task. I locally fetch the task ids, then for the first task I run Task.init with continue_last_task and subsequently I run task.execute_remotely() and the task is then run remotely with the outputs appended to the original training task.
Whe...
SuccessfulKoala55 I ran a training task. I now wish to run inference on some data. My model's init function expects the parsed args Namespace as an argument. In order to load the weights of the saved model I need to instantiate the class for which I need the args variable.
This is what's working for me.for task in tasks: subprocess.run(['python', './test_task.py', '--task_id', task.id])
where in test_task.py I have the following:
` parser = ArgumentParser()
if Task.running_locally():
parser.add_argument('--task_id',type=str)
args=parser.parse_args()
task = Task.init(
continue_last_task=args.task_id
)
task.execute_remotely(queue_name='default') `and the rest is the inference code, which is only run on the remote, and include...
TimelyPenguin76 I've been using this for a bit now, I would like to set it from code, just like I set docker image, for example. Can you point me in the right direction? I couldn't find anything in the docs
This is a great feature for debugging setup. kinda feels like a superpower 🙂 I already used it to work around another issue with my docker setup. now I'll only need to update the docker file after I iron everything out and I will already have the startup shell script as documentation for what should be fixed. awesome.
TimelyPenguin76 what version of clearml are you using? my task.set_base_docker only has a single positional command. am I using an old version?
I understand. Thing is I already have a bunch of tasks where I logged the tables and did not upload an artifact. If I can get them using the SDK, as something that I can possibly extract the values from as JSON (as in the web GUI) that would be great. Currently I'm just manually downloading the json one by one as I need them.
AgitatedDove14 same thing happens to me when I run via git bash
I'm having some issues with my github access, I'll guess I'll update later/tomorrow when I solve them
(and as you said, running as a module didn't change anything)
I can also send you a link to the task this created on our hosted allegro web server, to look at the logs, if that helps
AgitatedDove14 - nailed it! it was due to my notebook being pwd protected rather than token protected. I shared that with Moshik. I wonder whether that could be worked around.
It's working as expected. Thanks!
the only solution I see is to have another script that would run the test task using (for example) popen in a separate process.
args_string = ['--{} {}'.format(k, v) for k, v in task.get_parameters_as_dict().get('Args', {}).items()] args_strings = [a.replace("'", '').replace("[", '').replace("]", '').replace(",", '') for a in reduce(lambda l, s: l + s.split(' '), args_string, []) if a]
and then just parser.parse_args(ars_strings)
It's not even very clean, I could have replaced the multiple replace calls with a regex etc. just a quick hack to work around it.
Actually, I found out that if I use exe...
AgitatedDove14 is there some way I can update the script file manually and retrigger the git discovery process?
SuccessfulKoala55 I managed to find a workaround, by instantiating a new parser and feeding it the string values. if there'd be a cleaner solution I'll be happy to hear about it.
I'm on windows, this is a python 3.6 conda venv, I think you can see the name of the env in the logs...
Yeah, I know how to do it manually from the web GUI using the button, that's just not scalable. What I need is the Python SDK code. It doesn't have to be a single liner.
SuccessfulKoala55 this seems to work, but I would have preferred a continue_last_task version of enqueue, which would handle things for me, instead of introducing another level of hierarchy
AgitatedDove14 Looks goo, thanks! I see that I can also find the plot index based on the 'metric' key, so I can write something that would choose the plot by name rather than ordinal position.
I'll try running using gitbash, perhaps it would work better, although I use the same conda env when I run scripts from pycharm, or from the windows cmd
hi TimelyPenguin76 I tried doing this, but it didn't work. When enqueueing the task the contents of the textbox were emptied and the script was not run. I did make sure that it was saved before clicking on enqueue (by changing to another task and back and making sure the script appeared).
in the mean time, I installed a new clean virtualenv (no conda) and got the exact same behavior. I'll try running as a module and we'll see
ok got it. Moshik just sent me a snippet that identified that this is indeed the problem. I will try to see if I can setup an exception. that may prove tricky since that's the IT control
same same. I ran inside clearml git repo and got the same warnings
create a notebook, add the following lines to it's first cell:from clearml import Task task=Task.init(project_name='proj', task_name='notebook', task_type=Task.TaskTypes.custom, continue_last_task=True,)
run the cell