Bỏ để qua phần nội dung

Đào tạo mô hình với Ultralytics YOLO

Ultralytics YOLO Hệ sinh thái và tích hợp

Giới thiệu

Đào tạo một mô hình học sâu bao gồm việc cung cấp dữ liệu và điều chỉnh các tham số của nó để nó có thể đưa ra dự đoán chính xác. Chế độ đào tạo trong Ultralytics YOLO11 được thiết kế để đào tạo hiệu quả và hiệu suất các mô hình phát hiện đối tượng, tận dụng tối đa khả năng của phần cứng hiện đại. Hướng dẫn này nhằm mục đích bao gồm tất cả các chi tiết bạn cần để bắt đầu đào tạo các mô hình của riêng bạn bằng bộ tính năng mạnh mẽ của YOLO11.



Xem: Làm thế nào để đào tạo một YOLO mô hình trên Bộ dữ liệu tùy chỉnh của bạn trong Google Hợp tác.

Tại sao chọn Ultralytics YOLO để đào tạo?

Sau đây là một số lý do thuyết phục để lựa chọn chế độ Train của YOLO11:

  • Hiệu quả: Tận dụng tối đa phần cứng của bạn, cho dù bạn đang sử dụng một phần cứng duy nhấtGPU thiết lập hoặc thay đổi quy mô trên nhiều GPU.
  • Linh hoạt: Đào tạo về các bộ dữ liệu tùy chỉnh ngoài các bộ dữ liệu có sẵn như COCO, VOC và ImageNet.
  • Thân thiện với người dùng: Đơn giản nhưng mạnh mẽ CLI và Python giao diện cho trải nghiệm đào tạo đơn giản.
  • Tính linh hoạt của siêu tham số: Một loạt các siêu tham số có thể tùy chỉnh để tinh chỉnh hiệu suất mô hình.

Các tính năng chính của chế độ tàu

Sau đây là một số tính năng đáng chú ý của chế độ Train của YOLO11:

  • Tải xuống tập dữ liệu tự động: Các bộ dữ liệu tiêu chuẩn như COCO, VOC và ImageNet được tải xuống tự động vào lần sử dụng đầu tiên.
  • Đa-GPU Hỗ trợ: Mở rộng quy mô nỗ lực đào tạo của bạn một cách liền mạch trên nhiều GPU để đẩy nhanh quá trình.
  • Cấu hình siêu tham số: Tùy chọn sửa đổi siêu tham số thông qua tệp cấu hình YAML hoặc CLI lập luận.
  • Trực quan hóa và giám sát: Theo dõi thời gian thực các số liệu đào tạo và trực quan hóa quá trình học tập để có thông tin chi tiết tốt hơn.

Mẹo

  • Các tập dữ liệu YOLO11 như COCO, VOC, ImageNet và nhiều tập dữ liệu khác tự động tải xuống khi sử dụng lần đầu, tức là yolo train data=coco.yaml

Ví dụ sử dụng

Đào tạo YOLO11n trên tập dữ liệu COCO8 trong 100 thời đại ở kích thước hình ảnh 640. Thiết bị đào tạo có thể được chỉ định bằng cách sử dụng device lý lẽ. Nếu không có đối số nào được thông qua GPU device=0 sẽ được sử dụng nếu có, nếu không device='cpu' sẽ được sử dụng. Xem phần Đối số bên dưới để biết danh sách đầy đủ các đối số đào tạo.

Đơn-GPU và CPU Ví dụ đào tạo

Thiết bị được xác định tự động. Nếu một GPU có sẵn sau đó nó sẽ được sử dụng, nếu không đào tạo sẽ bắt đầu trên CPU.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.yaml")  # build a new model from YAML
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo11n.yaml").load("yolo11n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolo11n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolo11n.yaml pretrained=yolo11n.pt epochs=100 imgsz=640

Đa-GPU Đào tạo

Đa-GPU đào tạo cho phép sử dụng hiệu quả hơn các tài nguyên phần cứng có sẵn bằng cách phân phối tải đào tạo trên nhiều GPU. Tính năng này có sẵn thông qua cả hai Python API và giao diện dòng lệnh. Để bật multi-GPU đào tạo, chỉ định GPU ID thiết bị bạn muốn sử dụng.

Đa-GPU Ví dụ đào tạo

Để đào tạo với 2 GPU, CUDA Thiết bị 0 và 1 sử dụng các lệnh sau. Mở rộng sang GPU bổ sung theo yêu cầu.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])
# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=0,1

Apple Silicon MPS Đào tạo

Với sự hỗ trợ cho chip silicon của Apple được tích hợp trong Ultralytics YOLO mô hình, giờ đây bạn có thể đào tạo mô hình của mình trên các thiết bị sử dụng Metal Performance Shaders mạnh mẽ ( MPS ) khung. Các MPS cung cấp giải pháp hiệu suất cao để thực hiện các tác vụ tính toán và xử lý hình ảnh trên chip silicon tùy chỉnh của Apple.

Để kích hoạt đào tạo trên chip silicon của Apple, bạn nên chỉ định ' mps ' như thiết bị của bạn khi bắt đầu quá trình đào tạo. Dưới đây là một ví dụ về cách bạn có thể thực hiện điều này trong Python và thông qua dòng lệnh:

MPS Ví dụ đào tạo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model with MPS
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")
# Start training from a pretrained *.pt model using MPS
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=mps

Trong khi tận dụng sức mạnh tính toán của chip silicon Apple, điều này cho phép xử lý hiệu quả hơn các tác vụ đào tạo. Để biết hướng dẫn chi tiết hơn và các tùy chọn cấu hình nâng cao, vui lòng tham khảo tài liệu PyTorch MPS .

Tiếp tục các khóa đào tạo bị gián đoạn

Tiếp tục đào tạo từ trạng thái đã lưu trước đó là một tính năng quan trọng khi làm việc với các mô hình học sâu. Điều này có thể hữu ích trong các tình huống khác nhau, như khi quá trình đào tạo bị gián đoạn bất ngờ hoặc khi bạn muốn tiếp tục đào tạo một mô hình với dữ liệu mới hoặc cho nhiều kỷ nguyên hơn.

Khi việc đào tạo được tiếp tục, Ultralytics YOLO tải trọng số từ mô hình đã lưu cuối cùng và cũng khôi phục trạng thái trình tối ưu hóa, trình lập lịch tốc độ học và số kỷ nguyên. Điều này cho phép bạn tiếp tục quá trình đào tạo liền mạch từ nơi nó đã dừng lại.

Bạn có thể dễ dàng tiếp tục đào tạo trong Ultralytics YOLO bằng cách thiết lập resume Lập luận để True Khi gọi train phương pháp và chỉ định đường dẫn đến .pt tệp chứa trọng lượng mô hình được đào tạo một phần.

Dưới đây là ví dụ về cách tiếp tục đào tạo bị gián đoạn bằng cách sử dụng Python và thông qua dòng lệnh:

Ví dụ về đào tạo sơ yếu lý lịch

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/last.pt")  # load a partially trained model

# Resume training
results = model.train(resume=True)
# Resume an interrupted training
yolo train resume model=path/to/last.pt

Bằng cách cài đặt resume=True, các train Hàm sẽ tiếp tục đào tạo từ nơi nó dừng lại, sử dụng trạng thái được lưu trữ trong tệp 'path / to / last.pt'. Nếu resume Đối số bị bỏ qua hoặc đặt thành False, các train Chức năng sẽ bắt đầu một buổi đào tạo mới.

Hãy nhớ rằng các điểm kiểm tra được lưu vào cuối mỗi kỷ nguyên theo mặc định hoặc theo các khoảng thời gian cố định bằng cách sử dụng save_period lập luận, vì vậy bạn phải hoàn thành ít nhất 1 kỷ nguyên để tiếp tục chạy đào tạo.

Cài đặt tàu

Các thiết lập đào tạo cho YOLO mô hình bao gồm nhiều siêu tham số và cấu hình khác nhau được sử dụng trong quá trình đào tạo. Các thiết lập này ảnh hưởng đến hiệu suất, tốc độ và độ chính xác của mô hình. Các thiết lập đào tạo chính bao gồm kích thước lô, tốc độ học, động lượng và giảm trọng số. Ngoài ra, lựa chọn trình tối ưu hóa, hàm mất mát và thành phần tập dữ liệu đào tạo có thể ảnh hưởng đến quá trình đào tạo. Việc điều chỉnh và thử nghiệm cẩn thận với các thiết lập này là rất quan trọng để tối ưu hóa hiệu suất.

Lý lẽMặc địnhSự miêu tả
modelNoneChỉ định tệp mô hình để đào tạo. Chấp nhận đường dẫn đến một trong hai .pt mô hình được đào tạo sẵn hoặc một .yaml tệp cấu hình. Cần thiết để xác định cấu trúc mô hình hoặc khởi tạo trọng số.
dataNoneĐường dẫn đến tệp cấu hình tập dữ liệu (ví dụ: coco8.yaml). Tệp này chứa các tham số cụ thể của tập dữ liệu, bao gồm các đường dẫn đến đào tạo và dữ liệu xác thực, tên lớp và số lượng lớp.
epochs100Tổng số kỷ nguyên đào tạo. Mỗi kỷ nguyên đại diện cho một lần chạy đầy đủ trên toàn bộ tập dữ liệu. Việc điều chỉnh giá trị này có thể ảnh hưởng đến thời lượng đào tạo và hiệu suất mô hình.
timeNoneThời gian đào tạo tối đa tính bằng giờ. Nếu được đặt, thao tác này sẽ ghi đè epochs đối số, cho phép đào tạo tự động dừng sau khoảng thời gian quy định. Hữu ích cho các tình huống đào tạo hạn chế về thời gian.
patience100Số kỷ nguyên phải chờ mà không cải thiện số liệu xác thực trước khi dừng đào tạo sớm. Giúp ngăn ngừa tình trạng quá khớp bằng cách dừng đào tạo khi hiệu suất đạt đến mức ổn định.
batch16Kích thước lô, với ba chế độ: đặt thành số nguyên (ví dụ: batch=16), chế độ tự động cho 60% GPU Sử dụng bộ nhớ (batch=-1), hoặc chế độ tự động với phân số sử dụng được chỉ định (batch=0.70).
imgsz640Kích thước hình ảnh mục tiêu để đào tạo. Tất cả hình ảnh được thay đổi kích thước theo kích thước này trước khi đưa vào mô hình. Ảnh hưởng đến độ chính xác của mô hình và độ phức tạp tính toán.
saveTrueCho phép lưu các điểm kiểm tra đào tạo và trọng số mô hình cuối cùng. Hữu ích cho việc tiếp tục đào tạo hoặc triển khai mô hình .
save_period-1Tần suất lưu các điểm kiểm tra mô hình, được chỉ định trong các kỷ nguyên. Giá trị -1 sẽ vô hiệu hóa tính năng này. Hữu ích để lưu các mô hình tạm thời trong các buổi đào tạo dài.
cacheFalseCho phép lưu vào bộ nhớ đệm của hình ảnh tập dữ liệu trong bộ nhớ (True/ram), trên đĩa (disk), hoặc vô hiệu hóa nó (False). Cải thiện tốc độ đào tạo bằng cách giảm I / O đĩa với chi phí sử dụng bộ nhớ tăng lên.
deviceNoneChỉ định (các) thiết bị tính toán để đào tạo: một thiết bị duy nhất GPU (device=0), nhiều GPU (device=0,1), CPU (device=cpu), hoặc MPS cho Apple silicon (device=mps).
workers8Số luồng thợ để tải dữ liệu (mỗi RANK nếu Multi-GPU đào tạo). Ảnh hưởng đến tốc độ tiền xử lý dữ liệu và đưa vào mô hình, đặc biệt hữu ích trong đa -GPU Thiết lập.
projectNoneTên của thư mục dự án nơi lưu kết quả đào tạo. Cho phép lưu trữ có tổ chức các thí nghiệm khác nhau.
nameNoneTên của cuộc chạy đào tạo. Được sử dụng để tạo một thư mục con trong thư mục dự án, nơi lưu trữ nhật ký đào tạo và đầu ra.
exist_okFalseNếu True, cho phép ghi đè lên một thư mục dự án / tên hiện có. Hữu ích cho thử nghiệm lặp đi lặp lại mà không cần xóa thủ công các kết quả đầu ra trước đó.
pretrainedTrueXác định xem có nên bắt đầu đào tạo từ một mô hình được đào tạo trước hay không. Có thể là giá trị boolean hoặc đường dẫn chuỗi đến một mô hình cụ thể để tải trọng lượng. Nâng cao hiệu quả đào tạo và hiệu suất mô hình.
optimizer'auto'Lựa chọn trình tối ưu hóa để đào tạo. Các tùy chọn bao gồm SGD, Adam, AdamW, NAdam, RAdam, RMSProp v.v., hoặc auto để lựa chọn tự động dựa trên cấu hình mô hình. Ảnh hưởng đến tốc độ hội tụ và độ ổn định.
seed0Đặt hạt giống ngẫu nhiên để đào tạo, đảm bảo khả năng tái tạo kết quả trên các lần chạy có cùng cấu hình.
deterministicTrueBuộc sử dụng thuật toán xác định, đảm bảo khả năng tái tạo nhưng có thể ảnh hưởng đến hiệu suất và tốc độ do hạn chế về các thuật toán không xác định.
single_clsFalseXử lý tất cả các lớp trong bộ dữ liệu nhiều lớp như một lớp duy nhất trong quá trình đào tạo. Hữu ích cho các nhiệm vụ phân loại nhị phân hoặc khi tập trung vào sự hiện diện của đối tượng hơn là phân loại.
rectFalseCho phép đào tạo hình chữ nhật, tối ưu hóa thành phần hàng loạt để đệm tối thiểu. Có thể cải thiện hiệu quả và tốc độ nhưng có thể ảnh hưởng đến độ chính xác của mô hình.
cos_lrFalseSử dụng bộ lập lịch tốc độ học cosin, điều chỉnh tốc độ học theo đường cong cosin qua các kỷ nguyên. Giúp quản lý tốc độ học để hội tụ tốt hơn.
close_mosaic10Vô hiệu hóa việc tăng cường dữ liệu khảm trong N kỷ nguyên cuối cùng để ổn định quá trình đào tạo trước khi hoàn tất. Đặt thành 0 sẽ vô hiệu hóa tính năng này.
resumeFalseTiếp tục đào tạo từ trạm kiểm soát đã lưu cuối cùng. Tự động tải trọng lượng mô hình, trạng thái tối ưu hóa và số kỷ nguyên, tiếp tục đào tạo liền mạch.
ampTrueCho phép đào tạo Độ chính xác hỗn hợp tự động (AMP), giảm mức sử dụng bộ nhớ và có thể tăng tốc quá trình đào tạo với tác động tối thiểu đến độ chính xác.
fraction1.0Chỉ định phần nhỏ của tập dữ liệu để sử dụng cho đào tạo. Cho phép đào tạo trên một tập hợp con của tập dữ liệu đầy đủ, hữu ích cho các thí nghiệm hoặc khi tài nguyên bị hạn chế.
profileFalseCho phép lập hồ sơ ONNX và TensorRT Tốc độ trong quá trình đào tạo, hữu ích để tối ưu hóa việc triển khai mô hình.
freezeNoneĐóng băng N lớp đầu tiên của mô hình hoặc các lớp được chỉ định theo chỉ mục, giảm số lượng tham số có thể đào tạo. Hữu ích cho việc tinh chỉnh hoặc chuyển giao học tập .
lr00.01Tỷ lệ học tập ban đầu (tức là SGD=1E-2, Adam=1E-3) . Điều chỉnh giá trị này là rất quan trọng cho quá trình tối ưu hóa, ảnh hưởng đến tốc độ cập nhật trọng số mô hình.
lrf0.01Tỷ lệ học tập cuối cùng là một phần nhỏ của tỷ lệ ban đầu = (lr0 * lrf), được sử dụng kết hợp với bộ lập lịch để điều chỉnh tốc độ học tập theo thời gian.
momentum0.937Hệ số động lượng cho SGD hoặc beta1 cho trình tối ưu hóa Adam , ảnh hưởng đến việc kết hợp các gradient trong quá khứ vào bản cập nhật hiện tại.
weight_decay0.0005Thuật ngữ chính quy hóa L2, phạt các trọng số lớn để ngăn ngừa tình trạng quá khớp.
warmup_epochs3.0Số kỷ nguyên cho tỷ lệ học tập nóng lên, tăng dần tỷ lệ học từ giá trị thấp lên tỷ lệ học ban đầu để ổn định đào tạo sớm.
warmup_momentum0.8Động lực ban đầu cho giai đoạn khởi động, dần dần điều chỉnh theo động lượng đã đặt trong giai đoạn khởi động.
warmup_bias_lr0.1Tỷ lệ học tập cho các thông số thiên vị trong giai đoạn khởi động, giúp ổn định đào tạo mô hình trong các kỷ nguyên ban đầu.
box7.5Trọng số của thành phần mất hộp trong hàm mất mát , ảnh hưởng đến mức độ nhấn mạnh vào việc dự đoán chính xác tọa độ hộp giới hạn .
cls0.5Trọng lượng của tổn thất phân loại trong hàm tổn thất toàn phần, ảnh hưởng đến tầm quan trọng của dự đoán lớp chính xác so với các thành phần khác.
dfl1.5Trọng lượng của tổn thất tiêu cự phân phối, được sử dụng trong một số YOLO phiên bản để phân loại chi tiết.
pose12.0Trọng lượng của việc mất tư thế trong các mô hình được đào tạo để ước tính tư thế, ảnh hưởng đến sự nhấn mạnh vào việc dự đoán chính xác các điểm chính của tư thế.
kobj2.0Trọng lượng của sự mất mát đối tượng điểm chính trong các mô hình ước tính tư thế, cân bằng độ tin cậy phát hiện với độ chính xác của tư thế.
label_smoothing0.0Áp dụng làm mịn nhãn, làm mềm nhãn cứng cho hỗn hợp nhãn đích và phân phối đồng đều trên nhãn, có thể cải thiện khái quát hóa.
nbs64Kích thước lô danh nghĩa để bình thường hóa tổn thất.
overlap_maskTrueXác định xem mặt nạ đối tượng có nên được hợp nhất thành một mặt nạ duy nhất để đào tạo hay giữ riêng cho từng đối tượng. Trong trường hợp chồng chéo, mặt nạ nhỏ hơn sẽ được phủ lên trên mặt nạ lớn hơn trong quá trình hợp nhất.
mask_ratio4Tỷ lệ downsample cho mặt nạ phân đoạn, ảnh hưởng đến độ phân giải của khẩu trang được sử dụng trong quá trình đào tạo.
dropout0.0Tỷ lệ bỏ học để chính quy hóa trong các nhiệm vụ phân loại, ngăn chặn tình trạng quá tải bằng cách bỏ qua ngẫu nhiên các đơn vị trong quá trình huấn luyện.
valTrueCho phép xác nhận trong quá trình đào tạo, cho phép đánh giá định kỳ hiệu suất mô hình trên một tập dữ liệu riêng biệt.
plotsFalseTạo và lưu các biểu đồ của các chỉ số đào tạo và xác nhận, cũng như các ví dụ dự đoán, cung cấp thông tin chi tiết trực quan về hiệu suất mô hình và tiến trình học tập.

Lưu ý về Cài đặt kích thước hàng loạt

Các batch Đối số có thể được cấu hình theo ba cách:

  • Kích thước lô cố định: Đặt giá trị số nguyên (ví dụ: batch=16), chỉ định trực tiếp số lượng hình ảnh trên mỗi đợt.
  • Chế độ tự động (60% GPU Bộ nhớ):Dùng batch=-1 để tự động điều chỉnh kích thước lô hàng cho khoảng 60% CUDA sử dụng bộ nhớ.
  • Chế độ tự động với phân số sử dụng: Đặt giá trị phân số (ví dụ: batch=0.70) để điều chỉnh kích thước lô dựa trên phần được chỉ định của GPU sử dụng bộ nhớ.

Cài đặt tăng cường và siêu tham số

Các kỹ thuật tăng cường là cần thiết để cải thiện độ bền và hiệu suất của YOLO mô hình bằng cách đưa sự thay đổi vào dữ liệu đào tạo , giúp mô hình tổng quát hóa tốt hơn đối với dữ liệu chưa biết. Bảng sau đây phác thảo mục đích và hiệu ứng của từng đối số tăng cường:

Lý lẽKiểuMặc địnhPhạm viSự miêu tả
hsv_hfloat0.0150.0 - 1.0Điều chỉnh màu sắc của hình ảnh bằng một phần nhỏ của bánh xe màu, giới thiệu sự thay đổi màu sắc. Giúp mô hình khái quát hóa trong các điều kiện ánh sáng khác nhau.
hsv_sfloat0.70.0 - 1.0Làm thay đổi độ bão hòa của hình ảnh một phần, ảnh hưởng đến cường độ màu sắc. Hữu ích để mô phỏng các điều kiện môi trường khác nhau.
hsv_vfloat0.40.0 - 1.0Sửa đổi giá trị (độ sáng) của hình ảnh theo một phân số, giúp người mẫu hoạt động tốt trong các điều kiện ánh sáng khác nhau.
degreesfloat0.0-180 - +180Xoay hình ảnh ngẫu nhiên trong phạm vi độ quy định, cải thiện khả năng nhận dạng đối tượng của mô hình ở các hướng khác nhau.
translatefloat0.10.0 - 1.0Dịch hình ảnh theo chiều ngang và chiều dọc bằng một phần kích thước hình ảnh, hỗ trợ học cách phát hiện các đối tượng có thể nhìn thấy một phần.
scalefloat0.5>=0.0Chia tỷ lệ hình ảnh theo hệ số khuếch đại, mô phỏng các đối tượng ở các khoảng cách khác nhau từ máy ảnh.
shearfloat0.0-180 - +180Cắt hình ảnh ở một mức độ xác định, bắt chước hiệu ứng của các đối tượng được nhìn từ các góc khác nhau.
perspectivefloat0.00.0 - 0.001Áp dụng chuyển đổi phối cảnh ngẫu nhiên cho hình ảnh, tăng cường khả năng hiểu các đối tượng trong không gian 3D của mô hình.
flipudfloat0.00.0 - 1.0Lật ngược hình ảnh với xác suất được chỉ định, tăng sự biến đổi dữ liệu mà không ảnh hưởng đến đặc điểm của đối tượng.
fliplrfloat0.50.0 - 1.0Lật hình ảnh từ trái sang phải với xác suất được chỉ định, hữu ích cho việc học các đối tượng đối xứng và tăng tính đa dạng của tập dữ liệu.
bgrfloat0.00.0 - 1.0Lật các kênh hình ảnh từ RGB sang BGR với xác suất được chỉ định, hữu ích để tăng độ bền để sắp xếp thứ tự kênh không chính xác.
mosaicfloat1.00.0 - 1.0Kết hợp bốn hình ảnh đào tạo thành một, mô phỏng các bố cục cảnh và tương tác đối tượng khác nhau. Hiệu quả cao để hiểu cảnh phức tạp.
mixupfloat0.00.0 - 1.0Kết hợp hai hình ảnh và nhãn của chúng, tạo ra một hình ảnh tổng hợp. Tăng cường khả năng khái quát hóa của mô hình bằng cách giới thiệu nhiễu nhãn và biến thiên thị giác.
copy_pastefloat0.00.0 - 1.0Sao chép các đối tượng từ một hình ảnh và dán chúng vào một hình ảnh khác, hữu ích cho việc tăng các trường hợp đối tượng và tìm hiểu tắc đối tượng.
copy_paste_modestrflip-Lựa chọn phương pháp tăng cường Sao chép-Dán trong số các tùy chọn của ("flip", "mixup").
auto_augmentstrrandaugment-Tự động áp dụng chính sách tăng cường được xác định trước (randaugment, autoaugment, augmix), tối ưu hóa cho các nhiệm vụ phân loại bằng cách đa dạng hóa các tính năng trực quan.
erasingfloat0.40.0 - 0.9Xóa ngẫu nhiên một phần hình ảnh trong quá trình đào tạo phân loại, khuyến khích người mẫu tập trung vào các tính năng ít rõ ràng hơn để nhận dạng.
crop_fractionfloat1.00.1 - 1.0Cắt hình ảnh phân loại thành một phần kích thước của nó để nhấn mạnh các tính năng trung tâm và thích ứng với tỷ lệ đối tượng, giảm phiền nhiễu nền.

Các cài đặt này có thể được điều chỉnh để đáp ứng các yêu cầu cụ thể của tập dữ liệu và tác vụ trong tầm tay. Thử nghiệm với các giá trị khác nhau có thể giúp tìm ra chiến lược tăng cường tối ưu dẫn đến hiệu suất mô hình tốt nhất.

Thông tin

Để biết thêm thông tin về các hoạt động tăng cường đào tạo, hãy xem phần tham khảo.

Đăng nhập

Khi đào tạo mô hình YOLO11, bạn có thể thấy việc theo dõi hiệu suất của mô hình theo thời gian là rất có giá trị. Đây chính là lúc việc ghi nhật ký phát huy tác dụng. Ultralytics ' YOLO cung cấp hỗ trợ cho ba loại trình ghi nhật ký - Comet , ClearML và TensorBoard.

Để sử dụng trình ghi nhật ký, hãy chọn nó từ menu thả xuống trong đoạn mã ở trên và chạy nó. Trình ghi nhật ký đã chọn sẽ được cài đặt và khởi tạo.

Comet

Comet là một nền tảng cho phép các nhà khoa học và nhà phát triển dữ liệu theo dõi, so sánh, giải thích và tối ưu hóa các thử nghiệm và mô hình. Nó cung cấp các chức năng như số liệu thời gian thực, mã khác biệt và theo dõi siêu tham số.

Sử dụng Comet:

Ví dụ

# pip install comet_ml
import comet_ml

comet_ml.init()

Hãy nhớ đăng nhập vào Comet tài khoản trên trang web của họ và nhận khóa API của bạn. Bạn sẽ cần thêm thông tin này vào các biến môi trường hoặc tập lệnh để ghi nhật ký thử nghiệm.

ClearML

ClearML là một nền tảng mã nguồn mở tự động theo dõi các thử nghiệm và giúp chia sẻ tài nguyên hiệu quả. Nó được thiết kế để giúp các nhóm quản lý, thực thi và tái tạo công việc ML của họ hiệu quả hơn.

Sử dụng ClearML:

Ví dụ

# pip install clearml
import clearml

clearml.browser_login()

Sau khi chạy tập lệnh này, bạn sẽ cần đăng nhập vào ClearML tài khoản trên trình duyệt và xác thực phiên của bạn.

TensorBoard

TensorBoard là một bộ công cụ trực quan hóa cho TensorFlow . Nó cho phép bạn trực quan hóa TensorFlow biểu đồ, vẽ các số liệu định lượng về quá trình thực hiện biểu đồ của bạn và hiển thị dữ liệu bổ sung như hình ảnh đi qua biểu đồ.

Để sử dụng TensorBoard trong Google Colab:

Ví dụ

load_ext tensorboard
tensorboard --logdir ultralytics/runs  # replace with 'runs' directory

Để sử dụng TensorBoard cục bộ, hãy chạy lệnh bên dưới và xem kết quả tại http://localhost:6006/ .

Ví dụ

tensorboard --logdir ultralytics/runs  # replace with 'runs' directory

Thao tác này sẽ tải TensorBoard và hướng nó đến thư mục lưu nhật ký đào tạo của bạn.

Sau khi thiết lập trình ghi nhật ký, bạn có thể tiến hành đào tạo mô hình của mình. Tất cả các chỉ số đào tạo sẽ được tự động đăng nhập vào nền tảng bạn đã chọn và bạn có thể truy cập các nhật ký này để theo dõi hiệu suất mô hình của mình theo thời gian, so sánh các mô hình khác nhau và xác định các lĩnh vực cần cải thiện.

FAQ

Làm thế nào để tôi đào tạo một mô hình phát hiện đối tượng bằng cách sử dụng Ultralytics YOLO11 là gì?

Để đào tạo một mô hình phát hiện đối tượng bằng cách sử dụng Ultralytics YOLO11, bạn có thể sử dụng Python API hoặc CLI . Dưới đây là ví dụ cho cả hai:

Đơn-GPU và CPU Ví dụ đào tạo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

Để biết thêm chi tiết, hãy tham khảo phần Cài đặt tàu .

Những đặc điểm chính của là gì? Ultralytics Chế độ tàu hỏa của YOLO11?

Các tính năng chính của Ultralytics Chế độ Train của YOLO11 bao gồm:

  • Tải xuống tập dữ liệu tự động: Tự động tải xuống các bộ dữ liệu tiêu chuẩn như COCO, VOC và ImageNet.
  • Đa-GPU Hỗ trợ: Mở rộng quy mô đào tạo trên nhiều GPU để xử lý nhanh hơn.
  • Cấu hình siêu tham số: Tùy chỉnh siêu tham số thông qua các tệp YAML hoặc CLI lập luận.
  • Trực quan hóa và giám sát: Theo dõi thời gian thực các chỉ số đào tạo để có thông tin chi tiết tốt hơn.

Những tính năng này giúp đào tạo hiệu quả và có thể tùy chỉnh theo nhu cầu của bạn. Để biết thêm chi tiết, hãy xem phần Các tính năng chính của Chế độ tàu hỏa.

Làm thế nào để tôi tiếp tục đào tạo từ một phiên bị gián đoạn trong Ultralytics YOLO11 là gì?

Để tiếp tục đào tạo từ một phiên bị gián đoạn, hãy đặt resume Lập luận để True và chỉ định đường dẫn đến điểm kiểm tra đã lưu cuối cùng.

Ví dụ về đào tạo sơ yếu lý lịch

from ultralytics import YOLO

# Load the partially trained model
model = YOLO("path/to/last.pt")

# Resume training
results = model.train(resume=True)
yolo train resume model=path/to/last.pt

Kiểm tra phần Tiếp tục đào tạo bị gián đoạn để biết thêm thông tin.

Tôi có thể đào tạo các mô hình YOLO11 trên chip silicon của Apple không?

Đúng, Ultralytics YOLO11 hỗ trợ đào tạo trên chip silicon của Apple bằng cách sử dụng Metal Performance Shaders ( MPS ) khung. Chỉ định ' mps ' như một thiết bị luyện tập của bạn.

MPS Ví dụ đào tạo

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo11n.pt")

# Train the model on Apple silicon chip (M1/M2/M3/M4)
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=mps

Để biết thêm chi tiết, hãy tham khảo phần Đào tạo Apple Silicon MPS .

Các cài đặt đào tạo phổ biến là gì và làm cách nào để định cấu hình chúng?

Ultralytics YOLO11 cho phép bạn cấu hình nhiều thiết lập đào tạo khác nhau như kích thước lô, tốc độ học, kỷ nguyên và nhiều hơn nữa thông qua các đối số. Sau đây là tổng quan ngắn gọn:

Lý lẽMặc địnhSự miêu tả
modelNoneĐường dẫn đến tệp mô hình để đào tạo.
dataNoneĐường dẫn đến tệp cấu hình tập dữ liệu (ví dụ: coco8.yaml).
epochs100Tổng số kỷ nguyên đào tạo.
batch16Kích thước hàng loạt, có thể điều chỉnh dưới dạng số nguyên hoặc chế độ tự động.
imgsz640Kích thước hình ảnh mục tiêu để đào tạo.
deviceNone(Các) thiết bị tính toán để đào tạo như cpu, 0, 0,1hoặc mps.
saveTrueCho phép tiết kiệm các điểm kiểm tra đào tạo và trọng lượng mô hình cuối cùng.

Để biết hướng dẫn chuyên sâu về cài đặt đào tạo, hãy xem phần Cài đặt tàu .

📅 Được tạo ra cách đây 1 năm ✏️ Đã cập nhật cách đây 14 ngày

Ý kiến