ultralytics / hub

Ultralytics HUB tutorials and support
https://hub.ultralytics.com
GNU Affero General Public License v3.0
125 stars 11 forks source link

DVCLive Folder not created in CI YOLOv10 #785

Open coucjh opened 1 month ago

coucjh commented 1 month ago

Search before asking

Question

I am using DVC live to track experiments and print dvclive created .tsv files to a PR to run models in CI. However I am having an issue in creating any logging metrics in CI, while they are created all fine locally:

I am stuck at this point, I am capturing the results in the logging folder so will proceed to use these, however the .tsv files and dvc functionality is much more useful for model monitoring. I have attached full logs and settings screenshots.

yolo_ci_log.txt

yolo_ci_settings

yolo_local_log.txt

yolo_local_settings

Additional

No response

github-actions[bot] commented 1 month ago

👋 Hello @coucjh, thank you for raising an issue about Ultralytics HUB 🚀! Please visit our HUB Docs to learn more:

If this is a 🐛 Bug Report, please provide screenshots and steps to reproduce your problem to help us get started working on a fix.

If this is a ❓ Question, please provide as much information as possible, including dataset, model, environment details etc. so that we might provide the most helpful response.

We try to respond to all issues as promptly as possible. Thank you for your patience!

coucjh commented 1 month ago

Thanks @pderrenger ! I ran through all the steps, added the upgrades and the debug logging, confirmed we have write permissions and that the ULTRALYTICS_DVC_DISABLED=False. Here is the full log, a dvc lock is clearly being created but no dvclive folder still. Also note I have tried yolo settings dvc=True which says that dvc=true. yolo_full_log_ci.txt

coucjh commented 1 month ago

Someone from the dvc community managed to find the issue!

dberenbaum — Yesterday at 16:49 The issue might be here: https://github.com/ultralytics/ultralytics/blob/8648572809fa2e58967862f9a4748abddd0f60a7/ultralytics/utils/callbacks/dvc.py#L6 GitHub ultralytics/ultralytics/utils/callbacks/dvc.py at 8648572809fa2e589... NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLite - ultralytics/ultralytics ultralytics/ultralytics/utils/callbacks/dvc.py at 8648572809fa2e589... TESTS_RUNNING is defined in https://github.com/ultralytics/ultralytics/blob/8648572809fa2e58967862f9a4748abddd0f60a7/ultralytics/utils/__init__.py#L1072. It looks like if GH actions are running, yolo will assume tests are running and skip the integration.

I checked via a print and this is the problem. I have written a command to replace that output of the function as a temporary fix, but how can this be changed in the ultralytics package? I believe my use case is valid as a non test CI usage of YOLO + DVClive. Is this something that can be reported or should I attempt to fork and contribute myself? The sed command is: sed -i 's/return "GITHUB_ACTIONS" in os.environ and "GITHUB_WORKFLOW" in os.environ and "RUNNER_OS" in os.environ/return False/' /opt/tensorflow/lib/python3.10/site-packages/ultralytics/utils/__init__.py