Examples: query, "exact match", wildcard*, wild?ard, wild*rd
Fuzzy search: cake~ (finds cakes, bake)
Term boost: "red velvet"^4, chocolate^2
Field grouping: tags:(+work -"fun-stuff")
Escaping: Escape characters +-&|!(){}[]^"~*?:\ with \, e.g. \+
Range search: properties.timestamp:[1587729413488 TO *] (inclusive), properties.title:{A TO Z}(excluding A and Z)
Combinations: chocolate AND vanilla, chocolate OR vanilla, (chocolate OR vanilla) NOT "vanilla pudding"
Field search: properties.title:"The Title" AND text
Answered
Hi Folks! I Am Trying To Create A Pipeline With Clearml And Ultralytics. While There'S Already Amazing Integration Among The Tools, I Found Some Difficulties Trying To Utilized All The Magic Features From Clearml. Specifically:

Hi folks!
I am trying to create a pipeline with ClearML and Ultralytics. While there's already amazing integration among the tools, I found some difficulties trying to utilized all the magic features from ClearML. Specifically:

  • I would like to use ClearML to log the experiment
  • I would like to use ClearML to trigger clearml-agnet , change the InputModel , dataset , and hyperparameters, and train the new model base on new settings.
    While experimenting with the following example script:
from clearml import Task

from ultralytics import YOLO, settings

# Step 1: Creating a ClearML Task
task = Task.init(project_name="sandbox", task_name="test_1")

# Step 2: Selecting the YOLOv8 Model
model_variant = "yolov8n"
task.set_parameter("model_variant", model_variant)

# Step 3: Loading the YOLOv8 Model
model = YOLO(f"{model_variant}.pt")

# Step 4: Setting Up Training Arguments
args = dict(data="coco8.yaml", epochs=16)
task.connect(args)

# Step 5: Initiating Model Training
results = model.train(**args)

The experiment is successfully log in clearml. But While I tried to clone the Task, and run in different agent, some issues occurs:

  • The data in hparams use the local path, instead of a simple string. I can manually fix it by changing the settings in webui. (check attached photos)
  • I tried editing the Input Model in the webui to the previous output, which is successful in the webui. But the console show it is still using the original yolov8n.pt , instead of the best.pt from previous training result. (check attached photos)
    The best scenario will be:
  • Set InputModel for Ultralytics in webui, which I can pick from previous OutputModel from different Tasks
  • Set dataset for Ultralytics in webui
  • Trigger the expereiment with clearml-agent
  • and all other benefit from clearml
    I read a bit on the doc about Model OutputModel InputModel , and know how it can be integrate with Pytorch, but not sure how it works with Ultralytics . Much appreciate your advise and help in advance!
    image
    image
    image
  
  
Posted 26 days ago
Votes Newest

Answers 3


I deepdive into Ultralytics code and found that clearML is not logging the expereiment, but rather the model used in checking amp on the machine, specifically def check_amp(model): create a new model and get tracked, which is not the one for training.
Thanks! I will test it for a bit and see if I can utilized the model feature in clearml

  
  
Posted 26 days ago

hmmm it seems that it is not the case. Neverthless, the following code works:

input_model: InputModel = InputModel.import_model(name="test_input", weights_url="model/yolov8n.pt")
task.connect(input_model)

model = YOLO(input_model.get_local_copy())
  
  
Posted 25 days ago

Hi @<1750327622178443264:profile|CleanOwl48> , I think you need to also connect the model object to the task as an InputModel and this way you will be able to use the input model.

  
  
Posted 26 days ago