Theo dõi và trực quan hóa thí nghiệm YOLO bằng Weights & Biases
Các model phát hiện đối tượng như Ultralytics YOLO26 đã trở thành thành phần thiết yếu trong nhiều ứng dụng thị giác máy tính. Tuy nhiên, việc huấn luyện, đánh giá và triển khai các model phức tạp này đặt ra một số thách thức. Việc theo dõi các chỉ số huấn luyện quan trọng, so sánh các biến thể model, phân tích hành vi model và phát hiện sự cố đòi hỏi nhiều công sức để bổ sung instrumentation và quản lý thí nghiệm.
Xem: Cách sử dụng Ultralytics YOLO với Weights and Biases
Hướng dẫn này giới thiệu cách tích hợp Ultralytics YOLO26 với Weights & Biases để theo dõi thí nghiệm, lưu artifact của model tốt nhất và trực quan hóa hiệu năng model. Hướng dẫn cũng bao gồm cách thiết lập tích hợp, huấn luyện và trực quan hóa kết quả bằng các tính năng tương tác của Weights & Biases.
Bạn đã ghi lại checkpoint YOLO trong W&B? Nhập các dự án đó vào Ultralytics Platform từ Settings > Integrations > Weights & Biases.
Weights & Biases#
Weights & Biases là một nền tảng MLOps được thiết kế để theo dõi, trực quan hóa và quản lý các thí nghiệm học máy. Nền tảng này tự động ghi nhật ký các chỉ số huấn luyện để đảm bảo khả năng tái lập thí nghiệm đầy đủ, cung cấp giao diện tương tác giúp đơn giản hóa phân tích dữ liệu và các công cụ quản lý model hiệu quả để triển khai trên nhiều môi trường.
Huấn luyện YOLO26 với Weights & Biases#
Bạn có thể dùng Weights & Biases để nâng cao hiệu quả và tự động hóa quy trình huấn luyện YOLO26. Tích hợp này cho phép bạn theo dõi thí nghiệm, so sánh model và đưa ra quyết định dựa trên dữ liệu để cải thiện dự án thị giác máy tính.
Cài đặt#
Để cài đặt các package cần thiết, hãy chạy:
# Install the required packages for Ultralytics YOLO and Weights & Biases
pip install -U ultralytics wandb
# Enable W&B logging for Ultralytics
yolo settings wandb=TrueĐể xem hướng dẫn chi tiết và các phương pháp tối ưu liên quan đến quá trình cài đặt, hãy tham khảo hướng dẫn cài đặt YOLO26. Nếu gặp khó khăn khi cài đặt các package cần thiết cho YOLO26, hãy xem hướng dẫn về các vấn đề thường gặp để tìm giải pháp và mẹo xử lý.
Cấu hình Weights & Biases#
Sau khi cài đặt các package cần thiết, bước tiếp theo là thiết lập môi trường Weights & Biases. Việc này bao gồm tạo tài khoản Weights & Biases và lấy API key cần thiết để kết nối thuận tiện giữa môi trường phát triển của bạn với nền tảng W&B.
Bắt đầu bằng cách khởi tạo môi trường Weights & Biases trong workspace. Bạn có thể thực hiện việc này bằng cách chạy lệnh sau và làm theo hướng dẫn được hiển thị.
import wandb
# Khởi tạo môi trường Weights & Biases (yêu cầu nhập API key hoặc đọc WANDB_API_KEY)
wandb.login()Truy cập trang ủy quyền Weights & Biases để tạo và lấy API key. Dùng key này khi được nhắc để xác thực môi trường của bạn với W&B.
Cách dùng: Huấn luyện YOLO26 với Weights & Biases#
from ultralytics import YOLO
# Tải model YOLO
model = YOLO("yolo26n.pt")
# Huấn luyện và tinh chỉnh model
model.train(data="coco8.yaml", epochs=5, project="ultralytics", name="yolo26n")Các run mà Ultralytics tạo sẽ biểu đồ hóa các metric huấn luyện theo epoch. Nếu bạn bắt đầu một run bằng wandb.init() trước khi huấn luyện, Ultralytics sẽ ghi log vào run đó, với giá trị epoch trong mỗi hàng, đồng thời giữ run ở trạng thái mở để bạn tiếp tục ghi log vào đó và tự gọi wandb.finish(). Các tham số huấn luyện được thêm vào config của run đó, và mọi key mà bạn hoặc một sweep W&B đã thiết lập đều giữ nguyên giá trị.
Các đối số W&B#
| Đối số | Mặc định | Mô tả |
|---|---|---|
| project | None | Chỉ định tên dự án được ghi log cục bộ và trong W&B, dùng để nhóm nhiều lượt chạy. Nếu không đặt, các lượt chạy W&B sẽ được ghi log vào dự án Ultralytics. |
| name | None | Tên của lượt chạy huấn luyện. Tên này được dùng để tạo thư mục con và ghi log trong W&B. |
| save | True | Xác định có tải checkpoint tốt nhất lên dưới dạng model artifact của W&B hay không. |
Nếu muốn bật hoặc tắt tính năng ghi log Weights & Biases trong Ultralytics, bạn có thể dùng lệnh yolo settings. Theo mặc định, tính năng ghi log Weights & Biases sẽ bị tắt.
# Enable Weights & Biases logging
yolo settings wandb=True
# Disable Weights & Biases logging
yolo settings wandb=FalseĐặt WANDB_MODE=offline để ghi log mà không cần kết nối mạng, sau đó tải run lên bằng wandb sync <save_dir>/wandb/offline-run-*. Tiếp tục huấn luyện bằng resume=True sẽ tiếp tục cùng một run W&B, dù trực tuyến hay ngoại tuyến và trên mọi hệ điều hành, bằng cách đọc ID run từ thư mục run gần nhất trong thư mục wandb/ của thư mục lưu ban đầu; vì vậy, hãy giữ nguyên thư mục đó.
Tìm hiểu về đầu ra#
Sau khi chạy đoạn mã ví dụ ở trên, bạn có thể thấy các kết quả chính sau:
- Một lượt chạy mới được thiết lập với ID riêng, cho biết quá trình huấn luyện đã bắt đầu.
- Tóm tắt ngắn gọn cấu trúc model, bao gồm số lớp và số tham số.
- Cập nhật thường xuyên các chỉ số quan trọng như loss huấn luyện, độ chính xác, độ bao phủ và điểm mAP trong mỗi epoch huấn luyện.
- Khi kết thúc huấn luyện, các chỉ số chi tiết, bao gồm tốc độ inference của model và các chỉ số độ chính xác tổng thể, sẽ được hiển thị.
- Các liên kết đến dashboard Weights & Biases để phân tích chuyên sâu và trực quan hóa quá trình huấn luyện, cùng thông tin về vị trí các file log cục bộ.
Xem Dashboard Weights & Biases#
Sau khi chạy đoạn mã ví dụ, bạn có thể truy cập dashboard Weights & Biases (W&B) qua liên kết được cung cấp trong đầu ra. Dashboard này cung cấp cái nhìn toàn diện về quá trình huấn luyện model YOLO26.
Các tính năng chính của Dashboard Weights & Biases#
-
Theo dõi chỉ số theo thời gian thực: Quan sát các chỉ số như loss, độ chính xác và điểm validation khi chúng thay đổi trong quá trình huấn luyện, từ đó có được thông tin tức thời để tinh chỉnh model. Xem cách theo dõi thí nghiệm bằng Weights & Biases.
-
So sánh siêu tham số: Mỗi run ghi log các tham số huấn luyện, chẳng hạn như learning rate và kích thước batch, để bạn có thể so sánh cấu hình giữa các run. Để tự động tìm kiếm và ghi log bằng W&B, hãy sử dụng Ray Tune.
-
Phân tích so sánh: Nền tảng cho phép so sánh song song các lượt chạy huấn luyện khác nhau, rất cần thiết để đánh giá tác động của nhiều cấu hình model và xác định những thay đổi giúp cải thiện hiệu năng.
-
Trực quan hóa tiến trình huấn luyện: Các biểu đồ biểu diễn những chỉ số chính giúp bạn nắm bắt trực quan hiệu năng của model qua từng epoch. Xem cách Weights & Biases giúp bạn trực quan hóa kết quả validation.
-
Giám sát tài nguyên: Theo dõi mức sử dụng CPU, GPU và bộ nhớ để tối ưu hiệu quả của quá trình huấn luyện và xác định các điểm nghẽn tiềm ẩn trong quy trình làm việc.
-
Quản lý artifact của model: Truy cập và chia sẻ checkpoint model tốt nhất, được tải lên dưới dạng artifact W&B khi kết thúc quá trình huấn luyện, giúp dễ dàng triển khai và cộng tác với các thành viên trong nhóm ở những dự án phức tạp.
Nhờ các tính năng này, bạn có thể theo dõi, phân tích và tối ưu hóa quá trình huấn luyện model YOLO26 cho các tác vụ phát hiện đối tượng.
Tóm tắt#
Hướng dẫn này đã trình bày cách tích hợp Ultralytics YOLO với Weights & Biases để theo dõi và trực quan hóa kết quả huấn luyện model. Với W&B, bạn có thể đơn giản hóa quy trình học máy, đưa ra quyết định dựa trên dữ liệu và cải thiện hiệu năng model.
Để biết thêm chi tiết, hãy xem bài thuyết trình của Soumik Rakshit tại YOLO VISION 2023 về tính năng tích hợp này.
Câu hỏi thường gặp#
Để tích hợp Weights & Biases với Ultralytics YOLO26:
-
Cài đặt các gói cần thiết:
pip install -U ultralytics wandb yolo settings wandb=True -
Đăng nhập vào tài khoản Weights & Biases của bạn:
wandb login -
Huấn luyện model YOLO26 với tính năng ghi log W&B được bật:
from ultralytics import YOLO model = YOLO("yolo26n.pt") model.train(data="coco8.yaml", epochs=5, project="ultralytics", name="yolo26n")
Thao tác này sẽ tự động ghi log các chỉ số, siêu tham số và model artifact vào dự án W&B của bạn.
-
Các tính năng chính bao gồm:
- Theo dõi chỉ số theo thời gian thực trong quá trình huấn luyện
- So sánh siêu tham số giữa các run
- Phân tích so sánh các lượt chạy huấn luyện khác nhau
- Trực quan hóa tiến trình huấn luyện bằng biểu đồ
- Giám sát tài nguyên (mức sử dụng CPU, GPU và bộ nhớ)
- Quản lý và chia sẻ model artifact
Các tính năng này giúp theo dõi thí nghiệm, tối ưu model và cộng tác hiệu quả hơn trong các dự án YOLO26.
Sau khi chạy script huấn luyện có tích hợp W&B:
- Liên kết đến dashboard W&B của bạn sẽ được cung cấp trong đầu ra của console.
- Nhấp vào liên kết hoặc truy cập wandb.ai rồi đăng nhập vào tài khoản của bạn.
- Truy cập dự án của bạn để xem chi tiết các chỉ số, nội dung trực quan hóa và dữ liệu hiệu năng model.
Dashboard cung cấp thông tin chuyên sâu về quá trình huấn luyện model, giúp bạn phân tích và cải thiện hiệu quả các model YOLO26.
Có, bạn có thể tắt tính năng ghi log W&B bằng lệnh sau:
yolo settings wandb=FalseĐể bật lại tính năng ghi log, hãy dùng:
yolo settings wandb=TrueNhờ đó, bạn có thể chủ động kiểm soát thời điểm sử dụng tính năng ghi log W&B mà không cần sửa script huấn luyện.
Weights & Biases giúp tối ưu model YOLO26 bằng cách:
- Cung cấp biểu đồ trực quan chi tiết về các chỉ số huấn luyện
- Cho phép dễ dàng so sánh các phiên bản model khác nhau
- Ghi log tham số huấn luyện của từng run để so sánh tinh chỉnh siêu tham số
- Cho phép cộng tác phân tích hiệu năng model
- Giúp dễ dàng chia sẻ model artifact và kết quả
Các tính năng này giúp nhà nghiên cứu và nhà phát triển lặp lại quy trình nhanh hơn, đồng thời đưa ra quyết định dựa trên dữ liệu để cải thiện model YOLO26.
Bình luận25
Đặt câu hỏi, chia sẻ kết quả hoặc giúp đỡ người khác.
TJdeWet
Hi there,
I would like to know how (if possible) to log more than just these standard metrics for a yolov8 or v11 model during HP tuning logged with wandb: train/loss, val/loss, metrics/accuracy_top1, metrics_accuracy_top5.
This is what the code looks like:
!pip install -U ultralytics wandb !yolo settings wandb=True import wandb from ultralytics import YOLO wandb.login(key="...")
sweep_config = { 'method': "bayes", 'metric': { 'name': 'val/loss', 'goal': 'minimize', }, 'parameters': { .... } }
sweep_id = ...
def train(): run = wandb.init() model = YOLO('yolo11n-cls.pt')
results = model.train( data='...', batch=wandb.config.batch, lr0=wandb.config.lr0, epochs=..., optimizer=..., momentum=..., patience=..., save_period=..., imgsz=..., cache=False, save=True )wandb.agent(sweep_id, train, count=...)
Glenn JocherUltralytics@TJdeWet for custom metric logging beyond default training metrics in YOLO11 with W&B, you can access the complete results dictionary during training and log additional metrics manually through W&B's API. The automatically logged metrics vary by task type (detection/classification), but you can extend them using a callback. For implementation details, refer to the Weights & Biases integration documentation.
marcory-hub
Integration of Weights & Biases with YOLO11 in Google Colab
Is it currently possible to integrate Weights & Biases (W&B) with Ultralytics YOLO11 in Google Colab? If yes, where can I find the correct and up-to-date information to set this up properly?
My Issue
With YOLOv10, I was able to track all my training metrics in W&B seamlessly. However, when trying to replicate this with YOLO11, only GPU and system-related data are logged to the W&B platform. None of the training metrics or results appear.
Summary of things I've Tried
- Following the YouTube tutorial linked at the top of this page.
- Using the Try on Colab button on W&B's site
WARNING: Did not find branch or tag 'feat/ultralytics', assuming revision or ref. error: subprocess-exited-with-error × git checkout -q feat/ultralytics did not run successfully. │ exit code: 1 ╰─> See above for output. note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error × git checkout -q feat/ultralytics did not run successfully. │ exit code: 1 ╰─> See above for output. note: This error originates from a subprocess, and is likely not a problem with pip. Note: The Ultralytcs integration will be soon available as a fully supported feature on Weights & Biases once this pull request is merged.This is because the branch https://github.com/wandb/wandb@feat/ultralytics does not exist. To resolve this, I tried various fixes, including following older tutorials and experimenting with suggestions from forums and community discussions.
I’m particularly keen to switch to YOLO11 because it shows significant improvements in wildlife detection when compared to YOLOv10.
Any guidance, updates, or resources on enabling this integration would be greatly appreciated!
Glenn JocherUltralytics@marcory-hub yes, you can integrate Weights & Biases (W&B) with YOLO11 in Google Colab. Please ensure the latest
ultralyticsandwandbpackages are installed usingpip install -U ultralytics wandb. If training metrics are not being logged, ensure your W&B environment is authenticated (wandb.login(key="<API_KEY>")) and thatprojectandnameparameters are correctly specified inmodel.train(). Detailed setup instructions are available in our documentation: https://docs.ultralytics.com/integrations/weights-biases/. Let us know if further assistance is needed!marcory-hub
Thanks for the suggestions, @glenn-jocker ! I tried starting from scratch with W&B with YOLO11 but unfortunately, only system information showed up in W&B.
On top of that, it seems like my Colab runtime might be banned due to a potential issue with a compromised package. Hopefully, they'll restore access soon for everyone affected.
marcory-hub
Good news! My initial code now works for YOLO11. All metrics are automatically saved to W&B, and training is significantly faster than last week without maxing out Colab's RAM.
I'm not sure why it's significantly faster today, but I suspect the previous slowness prevented training from progressing beyond the warmup epochs, resulting in only system information being sent to W&B.
Glenn JocherUltralytics@marcory-hub glad to hear it's working well now, and thank you for sharing your experience! The faster training could indeed be related to runtime or hardware optimizations in Colab. Feel free to explore additional tips and resources in the YOLO11 W&B integration guide to further enhance your workflow. Let us know if you run into any other issues!
Pushtogithub23
I used this code, but it only logs system logs; no training metrics, media, or validation metrics are being logged as shown in the video. How can I log all the training metrics and media as demonstrated in the video? Can anyone help me with this?
from ultralytics import YOLO from wandb.integration.ultralytics import add_wandb_callback wandb.login() wandb.init(project = 'Hand-Gestures-Detection', name = 'yolov8n_5', job_type='training') model = YOLO("yolov8n.pt") add_wandb_callback(model, enable_model_checkpointing=True) model.train(data="HAND-GESTURE-DETECTION-1/data.yaml", epochs=5, imgsz = 640, project = "Hand-Gestures-Detection", name = 'yolov8n_5' )
Glenn JocherUltralytics@Pushtogithub23 to log all training metrics and media with Weights & Biases, ensure you have the latest versions of
ultralyticsandwandbinstalled. Also, verify that your Weights & Biases account is properly authenticated. For detailed setup instructions, visit the Weights & Biases integration guide.
TJdeWet
Hi!
I am using wandb to do hyperparameter tuning. Is it possible to maximise validation mAP50? This seems to be maximising the training mAP50 if I am not mistaken?
metric: name: mAP50 goal: maximise
Otherwise should I do hyperparameter using something like this instead:
metric: name: val/box_loss goal: minimize
Thanks!
Glenn JocherUltralytics(đã chỉnh sửa)Hi there!
For your hyperparameter tuning in Weights & Biases, if you're aiming to maximize validation mAP50 specifically, I recommend adjusting your metric settings accordingly. To focus on validation mAP50, your metric configuration might look something like this:
metric: name: metrics/mAP50(B) goal: maximizeThis setup ensures you're targeting the maximization of mAP50 on the validation data directly.
Using
val/box_losswith the goal to minimize can also be effective, especially if you prefer to focus on reducing the box prediction errors during validation:metric: name: val/box_loss goal: minimizeBoth approaches are valid and can be chosen based on your specific model performance goals. Hope this helps! If you have more questions, feel free to ask. 😊
TJdeWet
Hi Glenn,
Thanks for getting back to me. I just tried it, and it doesn't seem that tuning to maximize val/mAP50 is working - the only metrics I see that are being logged are: cls, box, and dfl loss (both train and val), and metrics/mAP50(B), metrics/mAP50-75(B), metrics/Recall(B), and metrics/Precision(B), which I believe are the training metrics? I would like to log those same metrics for validation, and tune based on val/mAP50. Is there a way I can do this?
Thanks!
Glenn JocherUltralytics(đã chỉnh sửa)Hi there!
In the Ultralytics W&B integration, validation metrics are logged automatically under names such as
metrics/mAP50(B)andmetrics/mAP50-95(B)(notval/mAP50; theval/prefix is used for validation losses likeval/box_loss). Use that name in your sweep config:metric: name: metrics/mAP50(B) goal: maximizeEnable the integration with
yolo settings wandb=True; no manualwandb.log()call is needed.
JiyongBoo
Is it possible to train RT-DETR model with wandb? In add_wandb_callback() function, there are nothing about rt-detr. I tried replacing yolov8 with rt-detr in the example code. In the result, I confirmed that runs.summary["Validation-Table"] and runs.summary["Train-Table"] did not appear. How do I solve this problem?
Paula DerrengerUltralytics(đã chỉnh sửa)@JiyongBoo hi there! 😊 RT-DETR trains with the same built-in Weights & Biases integration as other Ultralytics models, so you don't need
add_wandb_callback()or manualwandb.log()calls. Enable it withyolo settings wandb=True, then train as usual:from ultralytics import RTDETR model = RTDETR("rtdetr-l.pt") model.train(data="coco8.yaml", epochs=5, project="ultralytics", name="rtdetr-l")See the Weights & Biases integration guide for details.
DungHD-1997
from ultralytics import YOLO from wandb.integration.ultralytics import add_wandb_callback import wandb def train(): wandb.login() project_name = "test_ai" # Step 1: Initialize a Weights & Biases run wandb.init(project=project_name, job_type="training",name="old_data")
# Step 2: Define the YOLOv8 Model and Dataset model_name = "yolov8x" dataset_name = "C://Users//Administrator//project//yolov5_train_data//data//slant_2024.yaml" model = YOLO(f"{model_name}.pt") # Step 3: Add W&B Callback for Ultralytics add_wandb_callback(model, enable_model_checkpointing=True) model_name = "train_01" # Step 4: Train and Fine-Tune the Model model.train(project=project_name,name=model_name, data=dataset_name, epochs=100, imgsz=640, batch = 8) # Step 5: Validate the Model model.val() # Step 6: Perform Inference and Log Results #model(["path/to/image1", "path/to/image2"]) # Step 7: Finalize the W&B Run wandb.finish()if name == "main": train() I used the above code to train custom data, but when using wandb, the GPU memory continuously increases over epochs until an out of memory error appears. program has been stopped. Error message: torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 20.00 MiB. GPU 0 has a total capacity of 15.88 GiB of which 7.62 MiB is free. Of the allocated memory 14.53 GiB is allocated by PyTorch, and 103.44 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation. See documentation for Memory Management (https://pytorch.org/docs/stable/notes/cuda.html#environment-variables)
DungHD-1997
If I don't use wandb, the GPU memory hardly changes over each epoch. Is there something wrong with my code?
Glenn JocherUltralytics(đã chỉnh sửa)Hey there! It looks like you're encountering a memory issue related to using Weights & Biases (W&B) with YOLOv8, specifically the GPU running out of memory during training. This can happen for a few reasons, including excessive memory allocation by PyTorch or W&B logging mechanisms. Here are a couple of suggestions that might help:
-
Reduce Batch Size: Lowering the batch size can significantly reduce memory usage. Although this might increase training time, it can help avoid out-of-memory errors.
model.train(batch=4) # Try reducing the batch size -
Clear CUDA Cache: Manually clearing the CUDA cache after each epoch might help release unused memory.
import torch torch.cuda.empty_cache() -
Optimize Model and DataLoader: Ensure that your DataLoader is not the source of the memory leak, and try to optimize your model's memory usage.
-
Disable W&B to isolate the cause: Run
yolo settings wandb=Falseand train again; if the out-of-memory error persists, W&B is not the cause.
Finally, consider profiling your code to identify specific lines or operations that cause the memory spike. PyTorch and W&B offer tools and documentation on best practices to optimize memory usage. 📘
Hope this helps! If the issue persists, feel free to reach out with more details or check the W&B and YOLOv8 docs for more insights.
-
danielst4
Hey there, I am trying to make a sweep using WandB but cant quite put together where to insert what into the YOLO call, to use different hyperparameters and track them. Even though I found a site where one has done this he too doesnt describe what he had to do. I am not sure if it is more complicated than I think and if I really have to insert stuff into the training function or if there is an easy way to achieve this. I would be really greatful for help to know what exactly is necessary to make a WandB hyperparameter sweep with YOLO Thanks Daniel
Paula DerrengerUltralytics(đã chỉnh sửa)Hey Daniel 👋,
Great to hear you're exploring hyperparameter sweeps with WandB and YOLO! It's simpler than it might seem at first. Here's a quick guide to get you started:
- Initialize WandB: Before starting your training, make sure to log in to WandB in your script or notebook using:
import wandb wandb.login() - Set Up the Sweep: Define your sweep configuration in WandB, using Ultralytics training argument names for the hyperparameters. For example:
method: random metric: name: val/box_loss goal: minimize parameters: lr0: min: 0.0001 max: 0.001 batch: values: [16, 32, 64] - Integrate Sweep with YOLO: Enable the built-in integration with
yolo settings wandb=True. If a W&B run is already active (as in a sweep agent), Ultralytics logs into it and keeps any config values the sweep already set.import wandb from ultralytics import YOLO def train(): wandb.init(project="your_project_name") model = YOLO("yolov8n.pt") model.train(data="coco128.yaml", epochs=5, imgsz=640, lr0=wandb.config.lr0, batch=wandb.config.batch) - Start the Sweep: Once everything is set up, you can start the sweep in WandB. This will iterate over the defined hyperparameter space, automatically logging each experiment's results.
Remember, the key parts are enabling the W&B setting and making sure your sweep parameter names match Ultralytics training arguments.
Hope this helps! If you have any more questions or run into issues, feel free to ask. Happy sweeping! 🚀
- Initialize WandB: Before starting your training, make sure to log in to WandB in your script or notebook using:
danielst4
Thank you Paula, this helped a lot! I can make a sweep now but I noticed that the values of the parameters which are given from the sweep to the script dont match the parameters used. Even though the command looks like this:
wandb.wandb_agent - INFO - About to run command: /usr/bin/env python training_rtdetr.py --batch=8 --epochs=6 --imgsz=1280 --learning_rate=0.0007013348811086657where "training_rtdetr.py" is a script with the code you gave me. (I am working with the RTDETR but it shouldnt make a difference as the metrics and calls are the same if I understand correctly?) But then after engine/trainer it says its using epochs=100 and it also uses that number for training. So just to be sure about a few things, I already logged in to WandB, I wrote a script with the code from your 3., I went to wandb, created a sweep there with the code from 2. + the lineprogram: training_rtdetr.pyand in a terminal I used the resulting callwandb agent [sweepid]Also I am kinda confused because you used "learning_rate" and "batch_size" but as far as I can tell these are not the parameters I can give for the training and they should be called "lr0" and "batch" respectively (which I both tried but they didnt work) I hope I provided all the necessary information otherwise just tell me what you need to know
Paula DerrengerUltralytics@danielst4 hey Daniel,
It sounds like you're on the right track with setting up your WandB sweep with YOLOv8! Regarding the mismatch in parameter values, it seems like there might be a discrepancy between the parameter names expected by your script and those defined in your WandB sweep configuration.
For YOLOv8, the correct parameter names for learning rate and batch size are indeed
lr0andbatch, respectively. If you're using these parameters in yourtraining_rtdetr.pyscript, ensure they're correctly parsed from the command line arguments. Here's a quick Python snippet usingargparsefor reference:import argparse # Parse command line arguments parser = argparse.ArgumentParser() parser.add_argument('--batch', type=int, help='batch size') parser.add_argument('--epochs', type=int, help='number of epochs') parser.add_argument('--imgsz', type=int, help='image size') parser.add_argument('--learning_rate', type=float, help='learning rate') args = parser.parse_args() # Now you can use args.batch, args.epochs, etc., in your scriptMake sure your WandB sweep configuration uses the same parameter names as those your script expects. For example:
program: training_rtdetr.py method: bayes metric: name: val/box_loss goal: minimize parameters: learning_rate: min: 0.0001 max: 0.001 batch: values: [8, 16, 32] epochs: value: 6 imgsz: value: 1280If you've already done this and the issue persists, it might be helpful to double-check how your script handles these parameters and ensure they're being correctly applied to your YOLOv8 model configuration.
Feel free to share more details if you're still encountering issues. We're here to help! 🚀
J0ELh
Is it possible to remove logging and only log progress in the command line? For my training process yolov8 seems to automatically connect with my wandb account and start logging. This process is very time-consuming so I'd like to know whether there's a flag like
log = Falseor something like that.J0ELh
^ this is because I'm done experimenting and need quick retraining options now.
Glenn JocherUltralytics(đã chỉnh sửa)Hey there! 👋 If you're looking to disable automatic logging to Weights & Biases (W&B) during your YOLOv8 training to speed things up, you can do so by setting the
wandbargument toFalsewhen initiating your training command. Here's how you can do it:yolo settings wandb=FalseThis is a global Ultralytics setting, not a train argument, and it stops YOLOv8 from connecting to your W&B account and logging training progress there. Happy training! 🚀