Reputation
Badges 1
56 × Eureka!A minimal illustration of the problem:
If I run model.tune(...)
from ultralytics, then it automatically will track each iteration in ClearML and each iteration will be its own task (as it should be, given that the parameters change)
But the actual tune result will not be stored in a ClearML task, since I believe there is no integration on ultralytics side to do so.
If I create a task myself which then performs model.tune(...)
it will get immediately overridden by the parameters fro...
How can I adjust the parameter overrides from tasks spawned by the hyperparameter optimizer?
My template task has some environment depending parameters that I would like to clear for the newly spawned tasks, as the function that is run for each tasks handles the environment already.
Here is the code doing the reporting:
def capture_design(design_folder: str):
import subprocess, os, shutil
from clearml import Task
print(f"Capturing designs from {design_folder}...")
task = Task.current_task()
logger = task.get_logger()
design_files = [f for f in os.listdir(design_folder) if os.path.isfile(os.path.join(design_folder, f))]
if len(design_files) == 0:
print(f"No design files found in {design_folder}")
return
widgets = {}
...
Hey. I should have closed this..
The thing that I was looking for is called set_parameter
on the task.
The HPO uses a task I created previously and I had trouble with that, since it contained a path, which wasn't available on the colab instance.
I fixed my code, so it always updates this parameter depending on the environment.
It was less of an HPO issue, more of a programming failure on the function, which didn't properly update the parameter, even though I thought it should.
If there's source URLs in the plots of the task, how can I authenticate against ClearML to properly download them?
Or is there some SDK way to download them?
For anyone else interested in this, I wrote a little script which pulls all the data from a given project, seems to work well enough
Alright, good to know.
Here is an updated and improved version.
if anyone can tell me on how to improve the cookie situation, I'd be grateful
Yea, but even though it's cached, it takes quite a long time, because my project has really alot of submodules, due to the submodules having their own submodules as well.
I don't really understand why fetching the submodules is the default.
just to give an idea about the scale of the problem on my side.
These are the submodules...
`Fetching submodule lvgl_ui_generator
2024-04-27 20:45:34
Fetching submodule lvgl_ui_generator/lv_drivers
Fetching submodule lvgl_ui_generator/lvgl
Fetching submodule lvgl_ui_generator_v2
Fetching submodule lvgl_ui_generator_v2/lv_micropython
Fetching submodule lvgl_ui_generator_v2/lv_micropython/lib/asf4
2024-04-27 20:45:40
Fetching submodule lvgl_ui_generator_v2/lv_micropython/lib/axtls
Fetch...
If there's some or any mechanism that would allow me to constrain what the task sees, it would really help me alot.
None of these submodules are required for the tasks, they are there for a different part of the project dealing with data generation.
So even having them fetched (even when cached) is quite the delay on the actual task.
My experiments are all using YOLOv8 and they contain the data from what is gathered there automatically
I don’t know what would cause slowness
I ‘ m using the app.clearml server
I noticed poetry can be a problem in my run.
Not specifically due to the cache, but due to the installation of much more packages than the runtime might need.
When using regular pip, it will use the requirements list determined by ClearML to install necessary packages, which usually already excludes all dev-tools and similar.
I am not sure if poetry uses the cache properly, but I can't verify either atm.
Hem, yeah might be the case.
What’s considered large in that case?
Back when I wrote this, I thought HPO does something magical for overwriting the general args of the task when cloning.
Turns out it just was my code that was missing a more explicit set_parameter
for this environment path.
Nevermind, all I need is to use Task.get_task() with the id of the dataset, since the ID was re-used.
I'd still be interested in knowing how to retrieve the task_id of a dataset if reuse_task_id
was set to false.
According to None I am supposed to install
libgl1
I changed my clearml.conf
to include that installation for the task container started by the agent.
Will see if it helps in a minute
On another attempt with a cleaned repository (no dirty commits) I get the same result, even though it states that it got a new commit id, so I'm at a loss at what is actually going wrong here:
`Using cached repository in "/root/.clearml/vcs-cache/lvgl-ui-detector.git.7c8ae2688810ceed26c1ebcc1e911cf2/lvgl-ui-detector.git"
remote: Enumerating objects: 11, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 8 (delta 4), reused 7 ...
I cleared the vcs cache manually already, it results in the same behaviour illustrated above
(allthough the logs show that it used the cache, I had another run without cache - but don't have the logs from that)
Hi @<1523701087100473344:profile|SuccessfulKoala55>
I am using 1.8.0 for the clearml-agent.
Attached is the logfile.
I am getting the same when starting regular tasks.
I think it has something to do with my paramaters, which contain an environment variable which contains a list of datasets