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 2 months ago
Votes Newest

Answers 3


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 2 months 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 2 months ago

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 2 months ago