Công thức luyện tập YOLO26
Giới thiệu
Hướng dẫn này ghi lại chính xác... huấn luyện công thức được sử dụng để sản xuất sản phẩm chính thức YOLO26 các điểm kiểm tra được đào tạo trước trên COCO. Mọi siêu tham số Hình ảnh hiển thị ở đây đã được nhúng vào phiên bản đã phát hành. .pt Trọng lượng và có thể được kiểm tra bằng lập trình.
Hiểu cách các mô hình cơ bản được huấn luyện sẽ giúp bạn đưa ra quyết định tốt hơn khi tinh chỉnh : nên giữ lại những phần bổ sung dữ liệu nào, nên điều chỉnh trọng số hàm mất mát nào và cài đặt trình tối ưu hóa nào hoạt động tốt nhất cho kích thước tập dữ liệu của bạn.
Hướng dẫn này dành cho ai?
Hướng dẫn này dành cho những người thực hành muốn hiểu rõ những yếu tố nào đã tạo nên các điểm kiểm tra chính thức của YOLO26 — không chỉ kiến trúc, mà còn cả lịch trình tốc độ học , các đường dẫn tăng cường và trọng số mất mát đã định hình hiệu suất của chúng. Hãy sử dụng thông tin này để đưa ra những lựa chọn sáng suốt khi tinh chỉnh trên dữ liệu của riêng bạn.
Kiểm tra huấn luyện Args
Mọi Ultralytics Checkpoint lưu trữ toàn bộ cấu hình huấn luyện được sử dụng để tạo ra nó. Bạn có thể kiểm tra các cài đặt này bất cứ lúc nào:
Kiểm tra các tham số huấn luyện điểm kiểm tra
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])
import torch
# Load any official checkpoint
ckpt = torch.load("yolo26n.pt", map_location="cpu", weights_only=False)
# Print all training arguments
for k, v in sorted(ckpt["train_args"].items()):
print(f"{k}: {v}")
Điều này có tác dụng với bất kỳ ai .pt Điểm kiểm tra — bao gồm cả các bản phát hành chính thức và các mô hình được tinh chỉnh của riêng bạn. Để xem danh sách đầy đủ các tham số huấn luyện có thể cấu hình, hãy xem phần [liên kết]. Tài liệu tham khảo cấu hình đào tạo.
Tổng quan về đào tạo
Tất cả các mô hình cơ bản của YOLO26 đều được huấn luyện trên COCO Ở độ phân giải 640x640 sử dụng trình tối ưu hóa MuSGD với kích thước batch là 128. Các mô hình được khởi tạo từ trọng số trung gian đã được huấn luyện trước và được tinh chỉnh bằng các siêu tham số tìm thấy thông qua tìm kiếm tiến hóa. Nhật ký huấn luyện đầy đủ và các số liệu cho mỗi kích thước mô hình đều có sẵn trên Nền tảng Ultralytics :
Các lựa chọn thiết kế chính áp dụng cho mọi kích cỡ:
- Đào tạo toàn diện từ đầu đến cuối (
end2end=True) với NMS - Tư vấn riêng miễn phí - Bộ tối ưu hóa MuSGD kết hợp SGD với các cập nhật trực giao kiểu Muon cho trọng số tích chập
- Tăng cường khảm nặng (Xác suất ~0,9-1,0) bị vô hiệu hóa trong 10 kỷ nguyên gần đây (
close_mosaic=10) - Tăng tỷ lệ thu phóng mạnh (0,56-0,95) để xử lý các đối tượng có kích thước khác nhau.
- Giảm thiểu sự xoay/biến dạng đối với hầu hết các kích thước, giúp giữ cho sự biến dạng hình học ở mức thấp.
Số lượng siêu tham số trên mỗi kích thước mô hình
Bộ tối ưu hóa và tốc độ học
| Thiết lập | N | S | M | L | X |
|---|---|---|---|---|---|
optimizer | MuSGD | MuSGD | MuSGD | MuSGD | MuSGD |
lr0 | 0.0054 | 0.00038 | 0.00038 | 0.00038 | 0.00038 |
lrf | 0.0495 | 0.882 | 0.882 | 0.882 | 0.882 |
momentum | 0.947 | 0.948 | 0.948 | 0.948 | 0.948 |
weight_decay | 0.00064 | 0.00027 | 0.00027 | 0.00027 | 0.00027 |
warmup_epochs | 0.98 | 0.99 | 0.99 | 0.99 | 0.99 |
epochs | 245 | 70 | 80 | 60 | 40 |
batch | 128 | 128 | 128 | 128 | 128 |
imgsz | 640 | 640 | 640 | 640 | 640 |
chiến lược tốc độ học
Mô hình N sử dụng tốc độ học ban đầu cao hơn với sự suy giảm mạnh (lrf=0.0495), trong khi các mô hình S/M/L/X sử dụng LR ban đầu thấp hơn nhiều với lịch trình nhẹ nhàng hơn (lrf=0.882Điều này phản ánh sự khác biệt về động lực hội tụ giữa các mô hình nhỏ và lớn — các mô hình nhỏ cần cập nhật mạnh mẽ hơn để học hỏi hiệu quả.
Giảm cân
| Thiết lập | N | S | M | L | X |
|---|---|---|---|---|---|
box | 5.63 | 9.83 | 9.83 | 9.83 | 9.83 |
cls | 0.56 | 0.65 | 0.65 | 0.65 | 0.65 |
dfl | 9.04 | 0.96 | 0.96 | 0.96 | 0.96 |
Mô hình N ưu tiên tổn thất DFL, trong khi các mô hình S/M/L/X chuyển trọng tâm sang hồi quy hộp giới hạn. Tổn thất phân loại vẫn tương đối nhất quán trên tất cả các kích thước.
Đường ống tăng cường
Để có giải thích chi tiết về từng kỹ thuật, hãy xem hướng dẫn Tăng cường dữ liệu YOLO .
| Thiết lập | N | S | M | L | X |
|---|---|---|---|---|---|
mosaic | 0.909 | 0.992 | 0.992 | 0.992 | 0.992 |
mixup | 0.012 | 0.05 | 0.427 | 0.427 | 0.427 |
copy_paste | 0.075 | 0.404 | 0.304 | 0.404 | 0.404 |
scale | 0.562 | 0.9 | 0.95 | 0.95 | 0.95 |
fliplr | 0.606 | 0.304 | 0.304 | 0.304 | 0.304 |
degrees | 1.11 | ~0 | ~0 | ~0 | ~0 |
shear | 1.46 | ~0 | ~0 | ~0 | ~0 |
translate | 0.071 | 0.275 | 0.275 | 0.275 | 0.275 |
hsv_h | 0.014 | 0.013 | 0.013 | 0.013 | 0.013 |
hsv_s | 0.645 | 0.353 | 0.353 | 0.353 | 0.353 |
hsv_v | 0.566 | 0.194 | 0.194 | 0.194 | 0.194 |
bgr | 0.106 | 0.0 | 0.0 | 0.0 | 0.0 |
Các mô hình lớn hơn sử dụng phương pháp tăng cường mạnh mẽ hơn nói chung ( mức độ trộn , sao chép-dán và tỷ lệ cao hơn), vì chúng có dung lượng lớn hơn và được hưởng lợi từ việc điều chỉnh mạnh mẽ hơn. Mô hình N là kích thước duy nhất có sự tăng cường xoay , biến dạng và BGR có ý nghĩa.
Các thông số đào tạo nội bộ
Nâng cao: các tham số đường ống nội bộ
Các điểm kiểm tra cũng chứa các tham số được sử dụng trong quy trình huấn luyện nội bộ nhưng là không được hiển thị dưới dạng cài đặt do người dùng cấu hình trong default.yaml:
| Thiết lập | Mô tả | N | S | M | L | X |
|---|---|---|---|---|---|---|
muon_w | Trọng lượng cập nhật Muon trong MuSGD | 0.528 | 0.436 | 0.436 | 0.436 | 0.436 |
sgd_w | SGD cập nhật trọng số trong MuSGD | 0.674 | 0.479 | 0.479 | 0.479 | 0.479 |
cls_w | Trọng lượng phân loại nội bộ | 2.74 | 3.48 | 3.48 | 3.48 | 3.48 |
o2m | Giảm cân từ một đến nhiều đầu | 1.0 | 0.705 | 0.705 | 0.705 | 0.705 |
topk | Gán nhãn Top-k | 8 | 5 | 5 | 5 | 5 |
Các thông số này được ghi lại để đảm bảo tính khả thi nhưng không cần thiết phải thiết lập lại khi tinh chỉnh. Xem phần Câu hỏi thường gặp để biết thêm chi tiết.
Hướng dẫn tinh chỉnh
Khi tinh chỉnh YOLO26 trên tập dữ liệu của riêng bạn, bạn không cần phải sao chép toàn bộ quy trình huấn luyện trước. Các trọng số được huấn luyện trước đã mã hóa kiến thức về tăng cường và tối ưu hóa từ đó. COCO đào tạo. Để biết thêm các phương pháp đào tạo tốt nhất nói chung, hãy xem Mẹo đào tạo mô hình .
Hãy bắt đầu đơn giản
Tinh chỉnh bằng các thiết lập mặc định
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
yolo train model=yolo26n.pt data=your-dataset.yaml epochs=100 imgsz=640
Việc tinh chỉnh với các thiết lập mặc định là một điểm khởi đầu tốt. Chỉ điều chỉnh các siêu tham số nếu bạn có lý do cụ thể.
Khi nào cần điều chỉnh
Small datasets (< 1,000 images):
- Giảm cường độ tăng cường:
mosaic=0.5,mixup=0.0,copy_paste=0.0 - Tốc độ học tập thấp hơn:
lr0=0.001 - Sử dụng ít hơn epochs Với sự kiên nhẫn:
epochs=50,patience=20 - Hãy cân nhắc việc đóng băng các lớp xương sống:
freeze=10
Bộ dữ liệu lớn (> 50.000 hình ảnh):
- Hãy điều chỉnh công thức huấn luyện trước sao cho phù hợp hơn.
- Coi như
optimizer=MuSGDcho những lần chạy dài hơn - Tăng cường khả năng khuếch đại:
mosaic=1.0,mixup=0.3,scale=0.9
Hình ảnh chuyên biệt theo từng lĩnh vực (trên không, y tế, dưới nước):
- Tăng
flipud=0.5nếu hướng thẳng đứng thay đổi - Tăng
degreesnếu các đối tượng xuất hiện ở các góc xoay tùy ý - Điều chỉnh
hsv_svàhsv_vnếu điều kiện chiếu sáng khác biệt đáng kể so với COCO
Để tối ưu hóa siêu tham số tự động, hãy xem hướng dẫn Điều chỉnh siêu tham số .
Lựa chọn kích thước mô hình
| Mô hình | Tốt nhất cho | Hướng dẫn về kích thước lô |
|---|---|---|
| YOLO26n | Các thiết bị biên, thiết bị di động, thời gian thực trên CPU | Xử lý hàng loạt lớn (64-128) trên GPU dành cho người tiêu dùng |
| YOLO26s | Tốc độ và độ chính xác được cân bằng. | Số lượng trung bình (32-64) |
| YOLO26m | Độ chính xác cao hơn với mức tính toán vừa phải | Số lượng mỗi lô nhỏ hơn (16-32) |
| YOLO26l | Độ chính xác cao khi GPU có sẵn | Số lượng nhỏ (8-16) hoặc nhiều GPU |
| YOLO26x | Độ chính xác tối đa, triển khai máy chủ | Số lượng nhỏ (4-8) hoặc nhiều GPU |
Để biết các tùy chọn xuất và triển khai, hãy xem hướng dẫn Xuất và Tùy chọn triển khai mô hình .
Câu hỏi thường gặp
Làm sao tôi có thể xem chính xác các siêu tham số được sử dụng cho mỗi điểm kiểm tra?
Tải điểm kiểm tra với torch.load() và truy cập vào train_args khóa, hoặc sử dụng model.ckpt["train_args"] với Ultralytics API. Xem Kiểm tra huấn luyện Args Để xem các ví dụ đầy đủ.
Tại sao số lượng epoch lại khác nhau đối với mỗi kích thước mô hình?
Các mô hình lớn hơn hội tụ nhanh hơn. COCO Bởi vì chúng có dung lượng lớn hơn. Mô hình N cần 245 epoch trong khi mô hình X chỉ cần 40 epoch. Khi tinh chỉnh trên tập dữ liệu của riêng bạn, số lượng epoch tối ưu phụ thuộc vào kích thước và độ phức tạp của tập dữ liệu, chứ không phải kích thước của mô hình. Sử dụng dừng sớm (early stopping)patience) để tự động tìm điểm dừng phù hợp.
Tôi có nên sử dụng MuSGD để tinh chỉnh không?
Khi optimizer=auto (mặc định), Ultralytics tự động chọn MuSGD cho các lần chạy huấn luyện dài hơn (>10.000 lần lặp) và AdamW Đối với những đoạn ngắn hơn. Bạn có thể thiết lập một cách rõ ràng. optimizer=MuSGD Nếu bạn muốn. Để biết thêm thông tin về lựa chọn trình tối ưu hóa, hãy xem phần... tài liệu đào tạo.
Đó là gì? muon_w, sgd_w, cls_w, o2m, và topk Tại trạm kiểm soát?
Đây là các tham số nội bộ từ quy trình huấn luyện đã tạo ra các điểm kiểm tra cơ bản. Chúng được lưu trữ để đảm bảo tính khả thi nhưng... không cài đặt do người dùng cấu hình trong default.yamlBạn không cần phải thiết lập chúng khi tinh chỉnh. Xem Các thông số đào tạo nội bộ để biết chi tiết.
Tôi có thể tạo lại chính xác quá trình huấn luyện trước đó từ đầu không?
Các điểm kiểm tra được tạo ra bằng cách sử dụng một nhánh đào tạo nội bộ với các tính năng bổ sung không có trong mã nguồn công khai (như có thể cấu hình) o2m trọng lượng và cls_wBạn có thể đạt được kết quả rất gần bằng cách sử dụng các siêu tham số được ghi lại trên trang này với phiên bản công khai. Ultralytics gói này, nhưng để tái tạo chính xác cần phải sử dụng nhánh nội bộ.