Link to this sectionHướng dẫn Điều chỉnh siêu tham số cho Ultralytics YOLO#
Link to this sectionGiới thiệu#
Điều chỉnh siêu tham số không chỉ là một thiết lập một lần mà là một quy trình lặp đi lặp lại nhằm tối ưu hóa các chỉ số hiệu suất của mô hình machine learning, chẳng hạn như độ chính xác (accuracy), độ chính xác (precision) và độ thu hồi (recall). Trong bối cảnh của Ultralytics YOLO, các siêu tham số này có thể bao gồm từ tốc độ học (learning rate) đến các chi tiết kiến trúc, chẳng hạn như số lượng lớp hoặc các loại hàm kích hoạt được sử dụng. Ultralytics Platform cũng hỗ trợ đào tạo trên đám mây với các siêu tham số có thể cấu hình và theo dõi chỉ số theo thời gian thực.
Watch: How to Tune Hyperparameters for Better Model Performance 🚀
Link to this sectionSiêu tham số là gì?#
Siêu tham số là các thiết lập cấu trúc cấp cao cho thuật toán. Chúng được đặt trước giai đoạn đào tạo và giữ nguyên trong suốt quá trình này. Dưới đây là một số siêu tham số thường được điều chỉnh trong Ultralytics YOLO:
- Tốc độ học (Learning Rate)
lr0: Xác định kích thước bước tại mỗi lần lặp trong khi di chuyển về phía giá trị tối thiểu trong hàm mất mát. - Batch Size
batch: Số lượng hình ảnh được xử lý đồng thời trong một lần truyền tiến (forward pass). - Số lượng Epochs
epochs: Một epoch là một lần truyền tiến và truyền ngược hoàn chỉnh của tất cả các ví dụ đào tạo. - Chi tiết kiến trúc: Chẳng hạn như số lượng kênh, số lượng lớp, loại hàm kích hoạt, v.v.
Để có danh sách đầy đủ các siêu tham số tăng cường (augmentation hyperparameters) được sử dụng trong YOLO26, vui lòng tham khảo trang cấu hình.
Link to this sectionTiến hóa di truyền và đột biến#
Ultralytics YOLO sử dụng thuật toán di truyền để tối ưu hóa siêu tham số. Các thuật toán di truyền được lấy cảm hứng từ cơ chế chọn lọc tự nhiên và di truyền học.
- Lai ghép (Crossover): Mỗi lần lặp kết hợp các gen từ tối đa chín cấu hình có độ thích nghi cao nhất được ghi nhận cho đến nay, sử dụng phương pháp lai ghép BLX-α với lựa chọn cha mẹ dựa trên trọng số thích nghi.
- Đột biến (Mutation): Ứng viên được tái tổ hợp sau đó được làm nhiễu bởi một hệ số nhân log-normal áp dụng cho từng siêu tham số (với xác suất 0,5 cho mỗi tham số). Độ mạnh đột biến sigma giảm dần từ 0,2 xuống 0,1 qua 300 lần lặp đầu tiên, vì vậy thuật toán khám phá rộng rãi ở giai đoạn đầu và tinh chỉnh khi nó hội tụ. Lần lặp 1 không có cha mẹ để lai ghép và sử dụng các siêu tham số đào tạo mặc định làm cơ sở.
Link to this sectionChuẩn bị cho việc điều chỉnh siêu tham số#
Trước khi bạn bắt đầu quy trình điều chỉnh, điều quan trọng là:
- Xác định các chỉ số: Xác định các chỉ số bạn sẽ sử dụng để đánh giá hiệu suất của mô hình. Đây có thể là AP50, F1-score hoặc các chỉ số khác.
- Thiết lập ngân sách điều chỉnh: Xác định lượng tài nguyên tính toán bạn sẵn sàng phân bổ. Việc điều chỉnh siêu tham số có thể đòi hỏi nhiều tài nguyên tính toán.
Link to this sectionCác bước thực hiện#
Link to this sectionKhởi tạo siêu tham số#
Bắt đầu với một bộ siêu tham số ban đầu hợp lý. Đây có thể là các siêu tham số mặc định do Ultralytics YOLO đặt ra hoặc dựa trên kiến thức chuyên môn của bạn hoặc các thử nghiệm trước đó.
Link to this sectionĐột biến siêu tham số#
Sử dụng phương thức _mutate để tạo ra một bộ siêu tham số mới dựa trên bộ hiện có. Lớp Tuner xử lý quy trình này một cách tự động.
Link to this sectionHuấn luyện mô hình#
Đào tạo được thực hiện bằng cách sử dụng bộ siêu tham số đã đột biến. Hiệu suất đào tạo sau đó được đánh giá bằng cách sử dụng các chỉ số đã chọn của bạn.
Link to this sectionĐánh giá mô hình#
Sử dụng các chỉ số như AP50, F1-score hoặc các chỉ số tùy chỉnh để đánh giá hiệu suất của mô hình. Quy trình đánh giá giúp xác định xem các siêu tham số hiện tại có tốt hơn các siêu tham số trước đó hay không.
Link to this sectionGhi nhật ký kết quả#
Điều quan trọng là phải ghi lại cả chỉ số hiệu suất và các siêu tham số tương ứng để tham khảo trong tương lai. Ultralytics YOLO tự động lưu các kết quả này ở định dạng NDJSON.
Link to this sectionLặp lại#
Quy trình được lặp lại cho đến khi đạt được số lần lặp đã đặt hoặc chỉ số hiệu suất đạt yêu cầu. Mỗi lần lặp được xây dựng dựa trên kiến thức thu được từ các lần chạy trước đó.
Link to this sectionSố lần lặp và quy mô quần thể#
Với trình điều chỉnh tích hợp (use_ray=False), iterations kiểm soát tổng số lần thử nghiệm tuần tự. Mỗi lần thử nghiệm đào tạo một mô hình với một cấu hình siêu tham số — ví dụ, iterations=40 với epochs=50 sẽ lên lịch 40 lần đào tạo 50-epoch độc lập, không phải một lần chạy 50-epoch với quần thể riêng biệt gồm 40 ứng viên.
Thuật toán di truyền tích hợp không có tham số quy mô quần thể rõ ràng. Khi đã có các lần thử nghiệm trước đó, nó lấy mẫu tối đa chín cấu hình có độ thích nghi cao nhất làm cha mẹ, áp dụng lai ghép BLX-α và đột biến, và tạo ra một ứng viên mỗi lần lặp.
Đối với các lần thử nghiệm song song hoặc các chiến lược tìm kiếm nâng cao hơn, hãy đặt use_ray=True để sử dụng Ray Tune, nhận iterations dưới dạng num_samples. Xem hướng dẫn tích hợp Ray Tune để biết chi tiết.
Link to this sectionMô tả không gian tìm kiếm mặc định#
Bảng sau đây liệt kê các tham số không gian tìm kiếm mặc định để điều chỉnh siêu tham số trong YOLO26. Mỗi tham số có một phạm vi giá trị cụ thể được xác định bởi một bộ (min, max).
| Tham số | Loại | Phạm vi giá trị | Mô tả |
|---|---|---|---|
lr0 | float | (1e-5, 1e-2) | Tốc độ học ban đầu khi bắt đầu đào tạo. Các giá trị thấp hơn giúp việc đào tạo ổn định hơn nhưng hội tụ chậm hơn |
lrf | float | (0.01, 1.0) | Hệ số tốc độ học cuối cùng dưới dạng một phần của lr0. Kiểm soát mức độ giảm tốc độ học trong quá trình đào tạo |
momentum | float | (0.7, 0.98) | Hệ số xung lượng (momentum) SGD. Các giá trị cao hơn giúp duy trì hướng gradient nhất quán và có thể tăng tốc độ hội tụ |
weight_decay | float | (0.0, 0.001) | Hệ số chính quy hóa L2 để ngăn ngừa quá khớp (overfitting). Các giá trị lớn hơn thực thi chính quy hóa mạnh hơn |
warmup_epochs | float | (0.0, 5.0) | Số lượng epoch cho việc khởi động tốc độ học tuyến tính (linear learning rate warmup). Giúp ngăn ngừa sự không ổn định trong giai đoạn đầu đào tạo |
warmup_momentum | float | (0.0, 0.95) | Xung lượng ban đầu trong giai đoạn khởi động. Tăng dần đến giá trị xung lượng cuối cùng |
box | float | (1.0, 20.0) | Trọng số mất mát BBox trong tổng hàm mất mát. Cân bằng giữa hồi quy hộp và phân loại |
cls | float | (0.1, 4.0) | Trọng số mất mát phân loại trong tổng hàm mất mát. Các giá trị cao hơn nhấn mạnh vào dự đoán lớp chính xác |
cls_pw | float | (0.0, 1.0) | Lũy thừa trọng số lớp để xử lý mất cân bằng lớp. Các giá trị cao hơn tăng trọng số cho các lớp hiếm |
dfl | float | (0.4, 12.0) | Trọng số DFL (Distribution Focal Loss) trong tổng hàm mất mát. Các giá trị cao hơn nhấn mạnh vào việc xác định vị trí hộp bao chính xác |
hsv_h | float | (0.0, 0.1) | Phạm vi tăng cường màu sắc (hue) ngẫu nhiên trong không gian màu HSV. Giúp mô hình tổng quát hóa qua các biến thể màu sắc |
hsv_s | float | (0.0, 0.9) | Phạm vi tăng cường độ bão hòa (saturation) ngẫu nhiên trong không gian HSV. Mô phỏng các điều kiện ánh sáng khác nhau |
hsv_v | float | (0.0, 0.9) | Phạm vi tăng cường giá trị (độ sáng) ngẫu nhiên. Giúp mô hình xử lý các mức độ phơi sáng khác nhau |
degrees | float | (0.0, 45.0) | Tăng cường xoay tối đa tính bằng độ. Giúp mô hình trở nên bất biến với hướng của đối tượng |
translate | float | (0.0, 0.9) | Tăng cường tịnh tiến tối đa dưới dạng phần nhỏ của kích thước hình ảnh. Cải thiện độ bền vững với vị trí đối tượng |
scale | float | (0.0, 0.95) | Phạm vi tăng cường tỷ lệ ngẫu nhiên. Giúp mô hình phát hiện đối tượng ở các kích thước khác nhau |
shear | float | (0.0, 10.0) | Tăng cường cắt xén (shear) tối đa tính bằng độ. Thêm các biến dạng giống như phối cảnh vào hình ảnh đào tạo |
perspective | float | (0.0, 0.001) | Phạm vi tăng cường phối cảnh ngẫu nhiên. Mô phỏng các góc nhìn khác nhau |
flipud | float | (0.0, 1.0) | Xác suất lật ảnh dọc trong quá trình đào tạo. Hữu ích cho hình ảnh chụp từ trên cao/trên không |
fliplr | float | (0.0, 1.0) | Xác suất lật ảnh ngang. Giúp mô hình trở nên bất biến với hướng của đối tượng |
bgr | float | (0.0, 1.0) | Xác suất sử dụng tăng cường BGR, giúp hoán đổi các kênh màu. Có thể giúp đạt được độ bất biến màu sắc |
mosaic | float | (0.0, 1.0) | Xác suất sử dụng tăng cường mosaic, kết hợp 4 hình ảnh. Đặc biệt hữu ích cho việc phát hiện đối tượng nhỏ |
mixup | float | (0.0, 1.0) | Xác suất sử dụng tăng cường mixup, pha trộn hai hình ảnh. Có thể cải thiện độ bền vững của mô hình |
cutmix | float | (0.0, 1.0) | Xác suất sử dụng tăng cường cutmix. Kết hợp các vùng hình ảnh trong khi vẫn duy trì các đặc trưng cục bộ |
copy_paste | float | (0.0, 1.0) | Xác suất sử dụng tăng cường copy-paste. Giúp cải thiện hiệu suất phân đoạn cá thể (instance segmentation) |
close_mosaic | float | (0.0, 10.0) | Vô hiệu hóa mosaic trong N epoch cuối cùng để ổn định việc đào tạo trước khi hoàn tất |
Link to this sectionVí dụ về không gian tìm kiếm tùy chỉnh#
Dưới đây là cách xác định không gian tìm kiếm và sử dụng phương thức model.tune() để tận dụng lớp Tuner nhằm điều chỉnh siêu tham số của YOLO26n trên COCO8 trong 30 epoch với trình tối ưu hóa AdamW và bỏ qua việc vẽ biểu đồ, lưu checkpoint và xác thực trừ epoch cuối cùng để điều chỉnh nhanh hơn.
Ví dụ này chỉ dành cho mục đích minh họa. Các siêu tham số thu được từ các lần chạy điều chỉnh ngắn hoặc quy mô nhỏ hiếm khi tối ưu cho việc đào tạo trong thực tế. Trong thực tiễn, việc điều chỉnh nên được thực hiện trong các thiết lập tương tự như đào tạo đầy đủ — bao gồm các tập dữ liệu, epoch và tăng cường dữ liệu tương đương — để đảm bảo kết quả đáng tin cậy và có khả năng chuyển đổi. Việc điều chỉnh nhanh có thể làm lệch các tham số theo hướng hội tụ nhanh hơn hoặc đạt được lợi ích xác thực ngắn hạn mà không có khả năng tổng quát hóa.
from ultralytics import YOLO
# Initialize the YOLO model
model = YOLO("yolo26n.pt")
# Define search space
search_space = {
"lr0": (1e-5, 1e-2),
"degrees": (0.0, 45.0),
}
# Tune hyperparameters on COCO8 for 30 epochs
model.tune(
data="coco8.yaml",
epochs=30,
iterations=300,
optimizer="AdamW",
space=search_space,
plots=False,
save=False,
val=False,
)Link to this sectionTiếp tục phiên điều chỉnh siêu tham số bị gián đoạn#
Bạn có thể tiếp tục một phiên điều chỉnh siêu tham số bị gián đoạn bằng cách chuyển resume=True. Bạn có thể tùy chọn chuyển thư mục name đã sử dụng trong runs/{task} để tiếp tục. Nếu không, nó sẽ tiếp tục phiên gián đoạn cuối cùng. Bạn cũng cần cung cấp tất cả các đối số đào tạo trước đó bao gồm data, epochs, iterations và space.
from ultralytics import YOLO
# Define a YOLO model
model = YOLO("yolo26n.pt")
# Define search space
search_space = {
"lr0": (1e-5, 1e-2),
"degrees": (0.0, 45.0),
}
# Resume previous run
results = model.tune(data="coco8.yaml", epochs=50, iterations=300, space=search_space, resume=True)
# Resume tuning run with name 'tune_exp'
results = model.tune(data="coco8.yaml", epochs=50, iterations=300, space=search_space, name="tune_exp", resume=True)Link to this sectionKết quả#
Sau khi bạn đã hoàn thành thành công quy trình điều chỉnh siêu tham số, bạn sẽ nhận được một số tệp và thư mục gói gọn kết quả điều chỉnh. Sau đây mô tả từng mục:
Link to this sectionCấu trúc tệp#
Đây là cấu trúc thư mục của kết quả. Các thư mục đào tạo như train1/ chứa các lần lặp điều chỉnh riêng lẻ, tức là một mô hình được đào tạo với một bộ siêu tham số. Thư mục tune/ chứa kết quả điều chỉnh từ tất cả các lần đào tạo mô hình riêng lẻ:
runs/
└── detect/
├── train1/
├── train2/
├── ...
└── tune/
├── best_hyperparameters.yaml
├── tune_fitness.png
├── tune_results.ndjson
├── tune_scatter_plots.png
└── weights/
├── last.pt
└── best.ptLink to this sectionMô tả tệp#
Link to this sectionbest_hyperparameters.yaml#
Tệp YAML này chứa các siêu tham số có hiệu suất tốt nhất được tìm thấy trong quá trình điều chỉnh. Bạn có thể sử dụng tệp này để khởi tạo các quá trình đào tạo trong tương lai với các cài đặt tối ưu này.
-
Định dạng: YAML
-
Sử dụng: Kết quả siêu tham số
-
Ví dụ:
# 558/900 iterations complete ✅ (45536.81s) # Results saved to /usr/src/ultralytics/runs/detect/tune # Best fitness=0.64297 observed at iteration 498 # Best fitness metrics are {'metrics/precision(B)': 0.87247, 'metrics/recall(B)': 0.71387, 'metrics/mAP50(B)': 0.79106, 'metrics/mAP50-95(B)': 0.62651, 'val/box_loss': 2.79884, 'val/cls_loss': 2.72386, 'val/dfl_loss': 0.68503, 'fitness': 0.64297} # Best fitness model is /usr/src/ultralytics/runs/detect/train498 # Best fitness hyperparameters are printed below. lr0: 0.00269 lrf: 0.00288 momentum: 0.73375 weight_decay: 0.00015 warmup_epochs: 1.22935 warmup_momentum: 0.1525 box: 18.27875 cls: 1.32899 dfl: 0.56016 hsv_h: 0.01148 hsv_s: 0.53554 hsv_v: 0.13636 degrees: 0.0 translate: 0.12431 scale: 0.07643 shear: 0.0 perspective: 0.0 flipud: 0.0 fliplr: 0.08631 mosaic: 0.42551 mixup: 0.0 copy_paste: 0.0
Link to this sectiontune_fitness.png#
Đây là biểu đồ hiển thị độ thích nghi so với số lần lặp. Nó giúp bạn trực quan hóa cách thuật toán di truyền thực hiện theo thời gian.
- Định dạng: PNG
- Sử dụng: Trực quan hóa hiệu suất
Biểu đồ chứa:
- Một điểm đánh dấu cho mỗi lần lặp trên mỗi tập dữ liệu, vì vậy một lần chạy trên một tập dữ liệu hiển thị một điểm cho mỗi lần lặp, và một lần chạy trên nhiều tập dữ liệu hiển thị một điểm cho mỗi tập dữ liệu mỗi lần lặp.
- Một đường "trung bình làm mượt" đứt nét được tính toán dưới dạng làm mượt Gaussian (
sigma=3) trên các giá trị thích nghi cấp cao nhất mỗi lần lặp.
Link to this sectiontune_results.ndjson#
Một tệp NDJSON chứa các kết quả chi tiết của mỗi lần lặp điều chỉnh. Mỗi dòng là một đối tượng JSON với tổng độ thích nghi, các siêu tham số đã điều chỉnh và các chỉ số trên mỗi tập dữ liệu. Việc điều chỉnh trên một tập dữ liệu và nhiều tập dữ liệu sử dụng cùng một định dạng tệp.
- Định dạng: NDJSON
- Sử dụng: Theo dõi kết quả mỗi lần lặp.
- Ví dụ:
Một ví dụ được định dạng đẹp mắt được hiển thị bên dưới để dễ đọc. Trong tệp .ndjson thực tế, mỗi đối tượng được lưu trữ trên một dòng duy nhất.
{
"iteration": 1,
"fitness": 0.48628,
"hyperparameters": {
"lr0": 0.01,
"lrf": 0.01,
"momentum": 0.937,
"weight_decay": 0.0005
},
"datasets": {
"coco8": {
"metrics/precision(B)": 0.65666,
"metrics/recall(B)": 0.85,
"metrics/mAP50(B)": 0.85086,
"metrics/mAP50-95(B)": 0.64104,
"val/box_loss": 1.57958,
"val/cls_loss": 1.04986,
"val/dfl_loss": 1.32641,
"fitness": 0.64104
},
"coco8-grayscale": {
"metrics/precision(B)": 0.6582,
"metrics/recall(B)": 0.51667,
"metrics/mAP50(B)": 0.59106,
"metrics/mAP50-95(B)": 0.33152,
"val/box_loss": 1.95424,
"val/cls_loss": 1.64059,
"val/dfl_loss": 1.70226,
"fitness": 0.33152
}
},
"save_dirs": {
"coco8": "runs/detect/coco8",
"coco8-grayscale": "runs/detect/coco8-grayscale"
}
}fitness cấp cao nhất là trung bình cộng của các giá trị fitness trên mỗi tập dữ liệu. Đối với việc điều chỉnh trên một tập dữ liệu, dict datasets có một mục có fitness bằng với fitness cấp cao nhất. Một đối tượng JSON được ghi lại cho mỗi lần lặp hoàn thành. Các đường dẫn save_dirs thực tế là đường dẫn tuyệt đối; chúng được viết tắt ở trên để dễ đọc.
Link to this sectiontune_scatter_plots.png#
Tệp này chứa các biểu đồ phân tán được tạo từ tune_results.ndjson, giúp bạn hình dung mối quan hệ giữa các siêu tham số (hyperparameter) khác nhau và các chỉ số hiệu suất. Những siêu tham số có giá trị mặc định là 0 (ví dụ: degrees và shear bên dưới) có thể chỉ tiến hóa chậm từ giá trị gốc ban đầu vì hệ số đột biến nhân có rất ít không gian để mở rộng từ giá trị gần bằng 0.
- Định dạng: PNG
- Cách sử dụng: Phân tích dữ liệu khám phá
Link to this sectionweights/#
Thư mục này chứa các model PyTorch đã lưu cho các lần lặp cuối cùng và tốt nhất trong quá trình tinh chỉnh siêu tham số.
last.pt: last.pt là các trọng số từ epoch đào tạo cuối cùng.best.pt: Trọng số best.pt cho lần lặp đạt được điểm số fitness tốt nhất.
Sử dụng các kết quả này, bạn có thể đưa ra các quyết định sáng suốt hơn cho việc đào tạo và phân tích model trong tương lai. Hãy tham khảo các tệp tin này để hiểu rõ hiệu suất của model và cách bạn có thể cải thiện nó hơn nữa.
Link to this sectionKết luận#
Quá trình tinh chỉnh siêu tham số trong Ultralytics YOLO được đơn giản hóa nhưng vẫn rất mạnh mẽ, nhờ vào phương pháp tiếp cận dựa trên thuật toán di truyền kết hợp lai chéo BLX-α với đột biến log-normal. Việc làm theo các bước được nêu trong hướng dẫn này sẽ hỗ trợ bạn tinh chỉnh model một cách hệ thống để đạt được hiệu suất tốt hơn.
Link to this sectionĐọc thêm#
- Tối ưu hóa siêu tham số trên Wikipedia
- Hướng dẫn về sự tiến hóa siêu tham số YOLOv5
- Tinh chỉnh siêu tham số hiệu quả với Ray Tune và YOLO26
Để có những hiểu biết sâu sắc hơn, bạn có thể khám phá mã nguồn lớp Tuner class và tài liệu đi kèm. Nếu bạn có bất kỳ câu hỏi, yêu cầu tính năng hoặc cần hỗ trợ thêm, đừng ngần ngại liên hệ với chúng tôi trên GitHub hoặc Discord.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionLàm thế nào để tôi tối ưu hóa learning rate cho Ultralytics YOLO trong quá trình tinh chỉnh siêu tham số?#
Để tối ưu hóa learning rate cho Ultralytics YOLO, hãy bắt đầu bằng cách thiết lập tốc độ học ban đầu sử dụng tham số lr0. Các giá trị phổ biến nằm trong khoảng từ 0.001 đến 0.01. Trong quá trình tinh chỉnh siêu tham số, giá trị này sẽ được đột biến để tìm ra thiết lập tối ưu. Bạn có thể sử dụng phương thức model.tune() để tự động hóa quá trình này. Ví dụ:
from ultralytics import YOLO
# Initialize the YOLO model
model = YOLO("yolo26n.pt")
# Tune hyperparameters on COCO8 for 30 epochs
model.tune(data="coco8.yaml", epochs=30, iterations=300, optimizer="AdamW", plots=False, save=False, val=False)Để biết thêm chi tiết, hãy kiểm tra trang cấu hình Ultralytics YOLO.
Link to this sectionNhững lợi ích của việc sử dụng thuật toán di truyền để tinh chỉnh siêu tham số trong YOLO26 là gì?#
Các thuật toán di truyền trong Ultralytics YOLO26 cung cấp một phương pháp mạnh mẽ để khám phá không gian siêu tham số, dẫn đến hiệu suất model được tối ưu hóa cao. Các lợi ích chính bao gồm:
- Tìm kiếm hiệu quả: Lai chéo BLX-α kết hợp các gen từ các cha mẹ có fitness cao nhất, trong khi đột biến log-normal làm xáo trộn kết quả để khám phá các ứng viên mới.
- Tránh các cực tiểu địa phương (Local Minima): Bằng cách đưa vào tính ngẫu nhiên, chúng giúp tránh các cực tiểu địa phương, đảm bảo tối ưu hóa toàn cục tốt hơn.
- Chỉ số hiệu suất: Chúng thích ứng dựa trên điểm số fitness cụ thể cho tác vụ (mAP50-95 cho phát hiện).
Để xem cách các thuật toán di truyền có thể tối ưu hóa siêu tham số, hãy xem hướng dẫn về sự tiến hóa siêu tham số.
Link to this sectionQuá trình tinh chỉnh siêu tham số cho Ultralytics YOLO mất bao lâu?#
Thời gian cần thiết để tinh chỉnh siêu tham số với Ultralytics YOLO phụ thuộc phần lớn vào nhiều yếu tố như kích thước tập dữ liệu, độ phức tạp của kiến trúc model, số lần lặp và tài nguyên tính toán khả dụng. Ví dụ, việc tinh chỉnh YOLO26n trên một tập dữ liệu như COCO8 trong 30 epoch có thể mất vài giờ đến vài ngày, tùy thuộc vào phần cứng.
Để quản lý thời gian tinh chỉnh hiệu quả, hãy xác định ngân sách tinh chỉnh rõ ràng trước (liên kết phần nội bộ). Điều này giúp cân bằng việc phân bổ tài nguyên và các mục tiêu tối ưu hóa.
Link to this sectionTôi nên sử dụng những chỉ số nào để đánh giá hiệu suất model trong quá trình tinh chỉnh siêu tham số trong YOLO?#
Khi đánh giá hiệu suất model trong quá trình tinh chỉnh siêu tham số trong YOLO, bạn có thể sử dụng một số chỉ số chính:
- AP50: Độ chính xác trung bình tại ngưỡng IoU là 0.50.
- F1-Score: Trung bình điều hòa giữa độ chính xác (precision) và độ thu hồi (recall).
- Precision và Recall: Các chỉ số riêng lẻ cho biết accuracy của model trong việc xác định các kết quả dương tính thật so với kết quả dương tính giả và âm tính giả.
Các chỉ số này giúp bạn hiểu các khía cạnh khác nhau về hiệu suất của model. Tham khảo hướng dẫn chỉ số hiệu suất Ultralytics YOLO để có cái nhìn tổng quan toàn diện.
Link to this sectionTôi có thể sử dụng Ray Tune để tối ưu hóa siêu tham số nâng cao với YOLO26 không?#
Có, Ultralytics YOLO26 tích hợp với Ray Tune để tối ưu hóa siêu tham số nâng cao. Ray Tune cung cấp các thuật toán tìm kiếm phức tạp như Tối ưu hóa Bayesian và Hyperband, cùng với các khả năng thực thi song song để tăng tốc quá trình tinh chỉnh.
Để sử dụng Ray Tune với YOLO26, chỉ cần thiết lập tham số use_ray=True trong lời gọi phương thức model.tune() của bạn. Để biết thêm chi tiết và ví dụ, hãy kiểm tra hướng dẫn tích hợp Ray Tune.