Ultralytics YOLO27:
Get Started

Tạo ví dụ tối thiểu có thể tái hiện để báo cáo lỗi#

Khi gửi báo cáo lỗi cho các kho lưu trữ Ultralytics YOLO, bạn cần cung cấp một Ví dụ tối thiểu có thể tái hiện (MRE). MRE là một đoạn mã nhỏ, độc lập, thể hiện vấn đề bạn gặp phải. Cung cấp MRE giúp người duy trì dự án và người đóng góp hiểu vấn đề, đồng thời xử lý lỗi hiệu quả hơn. Hướng dẫn này giải thích cách tạo MRE khi gửi báo cáo lỗi cho các kho lưu trữ Ultralytics YOLO.

1. Cô lập vấn đề#

Bước đầu tiên để tạo MRE là cô lập vấn đề. Loại bỏ mọi mã hoặc phần phụ thuộc không liên quan trực tiếp đến vấn đề. Tập trung vào phần cụ thể của mã gây ra vấn đề và loại bỏ mọi phần không liên quan.

2. Sử dụng model và tập dữ liệu công khai#

Khi tạo MRE, hãy sử dụng model và tập dữ liệu có sẵn công khai để tái hiện vấn đề. Ví dụ: sử dụng model yolo26n.pt và tập dữ liệu coco8.yaml. Điều này đảm bảo người duy trì dự án và người đóng góp có thể dễ dàng chạy ví dụ của bạn và điều tra vấn đề mà không cần truy cập dữ liệu độc quyền hoặc model tùy chỉnh.

3. Bao gồm mọi phần phụ thuộc cần thiết#

Đảm bảo MRE của bạn bao gồm mọi phần phụ thuộc cần thiết. Nếu mã của bạn dựa vào thư viện bên ngoài, hãy nêu rõ các gói cần thiết và phiên bản của chúng. Tốt nhất, hãy liệt kê các phần phụ thuộc trong báo cáo lỗi bằng yolo checks nếu bạn đã cài đặt ultralytics, hoặc bằng pip list đối với các công cụ khác.

4. Mô tả vấn đề rõ ràng#

Mô tả rõ ràng và ngắn gọn vấn đề bạn gặp phải. Giải thích hành vi dự kiến và hành vi thực tế bạn đang gặp. Nếu phù hợp, hãy đưa vào các thông báo lỗi hoặc log liên quan.

5. Định dạng mã đúng cách#

Định dạng mã đúng cách bằng các khối mã trong phần mô tả issue. Cách này giúp người khác đọc và hiểu mã của bạn dễ dàng hơn. Trên GitHub, bạn có thể tạo khối mã bằng cách đặt mã giữa ba dấu backtick (```) và chỉ định ngôn ngữ:

```python
# Your Python code goes here
```

6. Kiểm tra MRE#

Trước khi gửi MRE, hãy kiểm tra để đảm bảo MRE tái hiện chính xác vấn đề. Đảm bảo người khác có thể chạy ví dụ của bạn mà không gặp vấn đề hoặc cần chỉnh sửa.

Ví dụ về MRE#

Sau đây là ví dụ về MRE cho một báo cáo lỗi giả định:

Mô tả lỗi:

Khi chạy inference trên ảnh có 0 kênh, tôi gặp lỗi liên quan đến kích thước của tensor đầu vào.

MRE:

import torch

from ultralytics import YOLO

# Tải model
model = YOLO("yolo26n.pt")

# Tải ảnh có 0 kênh
image = torch.rand(1, 0, 640, 640)

# Chạy model
results = model(image)

Thông báo lỗi:

RuntimeError: Expected input[1, 0, 640, 640] to have 3 channels, but got 0 channels instead

Phần phụ thuộc:

  • torch==2.8.0
  • ultralytics==8.4.142

Trong ví dụ này, MRE thể hiện vấn đề bằng lượng mã tối thiểu, sử dụng model công khai ("yolo26n.pt"), bao gồm mọi phần phụ thuộc cần thiết và mô tả rõ vấn đề kèm thông báo lỗi.

Bằng cách làm theo các hướng dẫn này, bạn sẽ giúp người duy trì dự án và người đóng góp cho các kho lưu trữ Ultralytics YOLO hiểu và xử lý vấn đề của bạn hiệu quả hơn.

Câu hỏi thường gặp#

  • Để tạo Ví dụ tối thiểu có thể tái hiện (MRE) hiệu quả cho báo cáo lỗi trong các kho lưu trữ Ultralytics YOLO, hãy làm theo các bước sau:

    1. Cô lập vấn đề: Loại bỏ mọi mã hoặc phần phụ thuộc không liên quan trực tiếp đến vấn đề.
    2. Sử dụng model và tập dữ liệu công khai: Dùng các tài nguyên công khai như yolo26n.pt và coco8.yaml để dễ tái hiện hơn.
    3. Bao gồm mọi phần phụ thuộc cần thiết: Nêu rõ các gói cần thiết và phiên bản của chúng. Bạn có thể liệt kê phần phụ thuộc bằng yolo checks nếu đã cài đặt ultralytics, hoặc bằng pip list.
    4. Mô tả vấn đề rõ ràng: Giải thích hành vi dự kiến và thực tế, bao gồm mọi thông báo lỗi hoặc log.
    5. Định dạng mã đúng cách: Sử dụng khối mã để định dạng mã, giúp mã dễ đọc hơn.
    6. Kiểm tra MRE: Đảm bảo MRE tái hiện vấn đề mà không cần chỉnh sửa.

    Để xem hướng dẫn chi tiết, hãy xem Tạo ví dụ tối thiểu có thể tái hiện.

  • Sử dụng model và tập dữ liệu có sẵn công khai trong MRE giúp người duy trì dự án dễ dàng chạy ví dụ của bạn mà không cần truy cập dữ liệu độc quyền. Nhờ đó, việc xử lý vấn đề diễn ra nhanh chóng và hiệu quả hơn. Chẳng hạn, sử dụng model yolo26n.pt và tập dữ liệu coco8.yaml giúp chuẩn hóa và đơn giản hóa quy trình gỡ lỗi. Tìm hiểu thêm về model và tập dữ liệu công khai trong phần Sử dụng model và tập dữ liệu công khai.

  • Một báo cáo lỗi đầy đủ cho Ultralytics YOLO nên bao gồm:

    • Mô tả rõ ràng: Giải thích vấn đề, hành vi dự kiến và hành vi thực tế.
    • Thông báo lỗi: Đưa vào mọi thông báo lỗi hoặc log liên quan.
    • Phần phụ thuộc: Liệt kê các phần phụ thuộc cần thiết và phiên bản của chúng.
    • MRE: Cung cấp Ví dụ tối thiểu có thể tái hiện.
    • Các bước tái hiện: Nêu các bước cần thực hiện để tái hiện vấn đề.

    Để xem danh sách kiểm tra đầy đủ, hãy tham khảo phần Mô tả vấn đề rõ ràng.

  • Để định dạng mã đúng cách khi gửi báo cáo lỗi trên GitHub:

    • Dùng ba dấu backtick (```) để tạo khối mã.
    • Chỉ định ngôn ngữ lập trình để tô sáng cú pháp, ví dụ: ```python.
    • Đảm bảo mã được thụt lề chính xác để dễ đọc.

    Ví dụ:

    ```python
    # Your Python code goes here
    ```

    Để biết thêm mẹo định dạng mã, hãy xem Định dạng mã đúng cách.

  • Trước khi gửi MRE, hãy đảm bảo:

    • Xác minh rằng có thể tái hiện vấn đề.
    • Đảm bảo tất cả phần phụ thuộc được liệt kê và chính xác.
    • Loại bỏ mọi mã không cần thiết.
    • Kiểm tra MRE để đảm bảo MRE tái hiện vấn đề mà không cần chỉnh sửa.

    Để xem danh sách kiểm tra chi tiết, hãy truy cập phần Kiểm tra MRE.

Người đóng góp

Bình luận