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 liên quan đến 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ế độ tàu trong Ultralytics YOLOv8 được thiết kế để đào tạo hiệu quả và hiệu quả các mô hình phát hiện đối tượng, sử dụng đầy đủ các khả năng 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 cách sử dụng YOLOv8Bộ tính năng mạnh mẽ của nó.



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

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

Dưới đây là một số lý do thuyết phục để lựa chọn: YOLOv8Chế độ tàu hỏa:

  • Hiệu quả: Tận dụng tối đa phần cứng của bạn, cho dù bạn đang thiết lập một GPU hay mở rộng 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 YOLOv8Chế độ tàu hỏa:

  • 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.
  • Hỗ trợ đa GPU: 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

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

Ví dụ sử dụng

Xe lửa YOLOv8n trên bộ dữ liệu COCO8 cho 100 kỷ nguyên ở 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.

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

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

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.yaml")  # build a new model from YAML
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolov8n.yaml").load("yolov8n.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=yolov8n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolov8n.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=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640

Đào tạo đa GPU

Đào tạo đa GPU 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 đào tạo nhiều GPU, hãy chỉ định ID thiết bị GPU bạn muốn sử dụng.

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

Để đào tạo với 2 GPU, thiết bị CUDA 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("yolov8n.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=yolov8n.pt epochs=100 imgsz=640 device=0,1

Đào tạo Apple M1 và M2 MPS

Với sự hỗ trợ cho chip Apple M1 và M2 được tích hợp trong Ultralytics YOLO 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 khung Metal Performance Shader (MPS) mạnh mẽ. MPS cung cấp một cách 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 silicon tùy chỉnh của Apple.

Để bật đào tạo trên chip Apple M1 và M2, bạn nên chỉ định 'mps' làm thiết bị của mình 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ể làm điều này trong Python và thông qua dòng lệnh:

Ví dụ đào tạo MPS

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.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="mps")
# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640 device=mps

Trong khi tận dụng sức mạnh tính toán của chip M1 / M2, điều này cho phép xử lý hiệu quả hơn các tác vụ đào tạo. Để được 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 PyTorch Tài liệu của Bộ Công an.

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 đào tạo được nối lại, 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 tối ưu hóa, bộ lập lịch tốc độ học tập 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ó bị bỏ 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 trong 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ài đặt đào tạo cho YOLO Các mô hình bao gồm các 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 cài đặt này ảnh hưởng đến hiệu suất, tốc độ và độ chính xác của mô hình. Các cài đặt đào tạo chính bao gồm kích thước lô, tốc độ học tập, động lượng và giảm cân. Ngoài ra, việc lựa chọn trình tối ưu hóa, chức năng 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. Điều chỉnh và thử nghiệm cẩn thận với các cài đặt này là rất quan trọng để tối ưu hóa hiệu suất.

Lý lẽ Mặc định Sự miêu tả
model None Chỉ đị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ố.
data None Đườ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ố dành riêng cho tập dữ liệu, bao gồm đường dẫn đến dữ liệu đào tạo và xác thực, tên lớp và số lớp.
epochs 100 Tổng số kỷ nguyên đào tạo. Mỗi kỷ nguyên đại diện cho một chuyển giao đầy đủ trên toàn bộ tập dữ liệu. Điều chỉnh giá trị này có thể ảnh hưởng đến thời gian đào tạo và hiệu suất mô hình.
time None Thờ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.
patience 100 Số kỷ nguyên phải chờ đợi 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á tải bằng cách ngừng đào tạo khi hiệu suất ổn định.
batch 16 Batch size, with three modes: set as an integer (e.g., batch=16), auto mode for 60% GPU memory utilization (batch=-1), or auto mode with specified utilization fraction (batch=0.70).
imgsz 640 Kích thước hình ảnh mục tiêu để đào tạo. Tất cả các hình ảnh được thay đổi kích thước theo kích thước này trước khi được đư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.
save True Cho 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. Hữu ích cho việc tiếp tục đào tạo hoặc triển khai mô hình.
save_period -1 Tầ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.
cache False Cho 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.
device None Chỉ định (các) thiết bị tính toán để đào tạo: một GPU duy nhất (device=0), nhiều GPU (device=0,1), CPU (device=cpu), hoặc MPS cho Apple silicon (device=mps).
workers 8 Số luồng thợ để tải dữ liệu (mỗi RANK nếu đào tạo Multi-GPU). Ả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 các thiết lập đa GPU.
project None Tê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.
name None Tê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_ok False Nế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 đó.
pretrained True Xá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.
verbose False Cho phép đầu ra chi tiết trong quá trình đào tạo, cung cấp nhật ký chi tiết và cập nhật tiến độ. Hữu ích cho việc gỡ lỗi và giám sát chặt chẽ quá trình đào tạo.
seed 0 Đặ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.
deterministic True Buộ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_cls False Xử 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.
rect False Cho 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_lr False Sử dụng bộ lập lịch tốc độ học tập cosin, điều chỉnh tốc độ học tập theo đường cong cosin qua các kỷ nguyên. Giúp quản lý tốc độ học tập để hội tụ tốt hơn.
close_mosaic 10 Vô hiệu hóa tăng cường dữ liệu khảm trong N kỷ nguyên cuối cùng để ổn định đào tạo trước khi hoàn thành. Cài đặt thành 0 sẽ tắt tính năng này.
resume False Tiế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.
amp True Cho 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 độ đào tạo với tác động tối thiểu đến độ chính xác.
fraction 1.0 Chỉ đị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ế.
profile False Cho 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.
freeze None Đó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 học chuyển tiếp.
lr0 0.01 Tỷ 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.
lrf 0.01 Tỷ 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.
momentum 0.937 Hệ 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ứ trong bản cập nhật hiện tại.
weight_decay 0.0005 L2 thuật ngữ chính quy, phạt trọng lượng lớn để ngăn chặn overfitting.
warmup_epochs 3.0 Số 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_momentum 0.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_lr 0.1 Tỷ 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.
box 7.5 Trọng lượng của thành phần tổn thất hộp trong hàm tổn thấ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.
cls 0.5 Trọ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.
dfl 1.5 Trọ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.
pose 12.0 Trọ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ế.
kobj 2.0 Trọ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_smoothing 0.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.
nbs 64 Kích thước lô danh nghĩa để bình thường hóa tổn thất.
overlap_mask True Xác định xem mặt nạ phân đoạn có nên chồng chéo trong quá trình đào tạo hay không, áp dụng trong các tác vụ phân đoạn phiên bản.
mask_ratio 4 Tỷ 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.
dropout 0.0 Tỷ 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.
val True Cho 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.
plots False Tạ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.

Note on Batch-size Settings

Các batch argument can be configured in three ways:

  • Fixed Batch Size: Set an integer value (e.g., batch=16), specifying the number of images per batch directly.
  • Auto Mode (60% GPU Memory): Use batch=-1 to automatically adjust batch size for approximately 60% CUDA memory utilization.
  • Auto Mode with Utilization Fraction: Set a fraction value (e.g., batch=0.70) to adjust batch size based on the specified fraction of GPU memory usage.

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

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

Lý lẽ Kiểu Mặc định Phạm vi Sự miêu tả
hsv_h float 0.015 0.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_s float 0.7 0.0 - 1.0 Là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_v float 0.4 0.0 - 1.0 Sử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.
degrees float 0.0 -180 - +180 Xoay 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.
translate float 0.1 0.0 - 1.0 Dị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.
scale float 0.5 >=0.0 Chia 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.
shear float 0.0 -180 - +180 Cắ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.
perspective float 0.0 0.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.
flipud float 0.0 0.0 - 1.0 Lậ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.
fliplr float 0.5 0.0 - 1.0 Lậ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.
bgr float 0.0 0.0 - 1.0 Lậ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.
mosaic float 1.0 0.0 - 1.0 Kế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.
mixup float 0.0 0.0 - 1.0 Kế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_paste float 0.0 0.0 - 1.0 Sao 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.
auto_augment str randaugment - 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.
erasing float 0.4 0.0 - 0.9 Xó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_fraction float 1.0 0.1 - 1.0 Cắ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

Trong đào tạo một YOLOv8 Mô hình, bạn có thể thấy nó có giá trị để theo dõi hiệu suất của mô hình theo thời gian. Đây là lúc ghi nhật ký phát huy tác dụng. Ultralytics' YOLO Cung cấp hỗ trợ cho ba loại logger - Comet, ClearMLvà 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 hình dung TensorFlow biểu đồ, vẽ số liệu định lượng về việc thực thi 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 dưới đây 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.



Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (14), dependabot (1), fcakyon (1), Laughing-q (2), Burhan-Q (1)

Ý kiến