Link to this sectionTạo Ví dụ Tối thiểu Có thể Tái lập cho Báo cáo Lỗi#
Khi gửi báo cáo lỗi cho các kho lưu trữ Ultralytics YOLO, điều cần thiết là phải cung cấp Ví dụ Tối thiểu Có thể Tái lập (MRE). MRE là một đoạn mã nhỏ, độc lập giúp chứng minh vấn đề mà bạn đang gặp phải. Việc cung cấp MRE giúp những người bảo trì và đóng góp hiểu được vấn đề và xử lý khắc phục một cách 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.
Link to this sectionCô lập vấn đề#
Bước đầu tiên trong việc tạo MRE là cô lập vấn đề. Loại bỏ mọi mã hoặc phụ thuộc không cần thiết không liên quan trực tiếp đến vấn đề. Tập trung vào phần mã cụ thể gây ra vấn đề và loại bỏ các phần không liên quan.
Link to this sectionSử dụng các Model và Tập dữ liệu công khai#
Khi tạo MRE, hãy sử dụng các model và tập dữ liệu công khai để tái lập 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 rằng những người bảo trì và đó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 quyền truy cập vào dữ liệu độc quyền hoặc model tùy chỉnh.
Link to this sectionBao gồm tất cả các phụ thuộc cần thiết#
Đảm bảo tất cả các phụ thuộc cần thiết được bao gồm trong MRE của bạn. Nếu mã của bạn dựa vào các thư viện bên ngoài, hãy chỉ định các gói bắt buộc và phiên bản của chúng. Lý tưởng nhất là liệt kê các phụ thuộc trong báo cáo lỗi của bạn bằng cách sử dụng yolo checks nếu bạn đã cài đặt ultralytics hoặc pip list cho các công cụ khác.
Link to this sectionViết mô tả rõ ràng về vấn đề#
Cung cấp mô tả rõ ràng và ngắn gọn về vấn đề bạn đang gặp phải. Giải thích hành vi mong đợi và hành vi thực tế mà bạn đang gặp phải. Nếu có thể, hãy bao gồm bất kỳ thông báo lỗi hoặc nhật ký liên quan nào.
Link to this sectionĐịnh dạng mã của bạn đúng cách#
Định dạng mã của bạn đúng cách bằng cách sử dụng các khối mã trong mô tả vấn đề. Điều này giúp người khác dễ đọc và hiểu mã của bạn hơn. Trong GitHub, bạn có thể tạo một khối mã bằng cách bao quanh mã của mình bằng ba dấu backtick (```) và chỉ định ngôn ngữ:
```python
# Your Python code goes here
```Link to this sectionKiểm tra MRE của bạn#
Trước khi gửi MRE, hãy kiểm tra nó để đảm bảo rằng nó tái lập chính xác vấn đề. Đảm bảo rằng người khác có thể chạy ví dụ của bạn mà không gặp bất kỳ vấn đề hoặc sửa đổi nào.
Link to this sectionVí dụ về MRE#
Đây là một 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 một hình ảnh 0 kênh, tôi nhận được lỗi liên quan đến kích thước của tensor đầu vào.
MRE:
import torch
from ultralytics import YOLO
# Load the model
model = YOLO("yolo26n.pt")
# Load a 0-channel image
image = torch.rand(1, 0, 640, 640)
# Run the 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ụ thuộc:
torch==2.3.0ultralytics==8.2.0
Trong ví dụ này, MRE chứng minh vấn đề với một lượng mã tối thiểu, sử dụng một model công khai ("yolo26n.pt"), bao gồm tất cả các phụ thuộc cần thiết và cung cấp mô tả rõ ràng về vấn đề cùng với thông báo lỗi.
Bằng cách tuân theo các hướng dẫn này, bạn sẽ giúp những người bảo trì và người đóng góp của các kho lưu trữ Ultralytics YOLO hiểu và giải quyết vấn đề của bạn hiệu quả hơn.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionLàm thế nào để tôi tạo một Ví dụ Tối thiểu Có thể Tái lập (MRE) hiệu quả cho các báo cáo lỗi trong các kho lưu trữ Ultralytics YOLO?#
Để tạo một Ví dụ Tối thiểu Có thể Tái lập (MRE) hiệu quả cho các 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:
- Cô lập vấn đề: Loại bỏ bất kỳ mã hoặc phụ thuộc nào không liên quan trực tiếp đến vấn đề.
- Sử dụng Model và Tập dữ liệu công khai: Tận dụng các tài nguyên công khai như
yolo26n.ptvàcoco8.yamlđể dễ dàng tái lập hơn. - Bao gồm tất cả các phụ thuộc cần thiết: Chỉ định các gói bắt buộc và phiên bản của chúng. Bạn có thể liệt kê các phụ thuộc bằng
yolo checksnếu bạn đã cài đặtultralyticshoặcpip list. - Viết mô tả rõ ràng về vấn đề: Giải thích hành vi mong đợi và thực tế, bao gồm bất kỳ thông báo lỗi hoặc nhật ký nào.
- Định dạng mã của bạn đúng cách: Sử dụng các khối mã để định dạng mã, giúp việc đọc dễ dàng hơn.
- Kiểm tra MRE của bạn: Đảm bảo MRE của bạn tái lập vấn đề mà không cần sửa đổi.
Để có hướng dẫn chi tiết, xem Tạo Ví dụ Tối thiểu Có thể Tái lập.
Link to this sectionTại sao tôi nên sử dụng các model và tập dữ liệu công khai trong MRE của mình cho các báo cáo lỗi Ultralytics YOLO?#
Việc sử dụng các model và tập dữ liệu công khai trong MRE của bạn đảm bảo rằng những người bảo trì có thể dễ dàng chạy ví dụ của bạn mà không cần quyền truy cập vào dữ liệu độc quyền. Điều này cho phép giải quyết vấn đề nhanh chóng và hiệu quả hơn. Ví dụ, sử dụng model yolo26n.pt và tập dữ liệu coco8.yaml giúp tiêu chuẩn hóa và đơn giản hóa quá trình gỡ lỗi. Tìm hiểu thêm về các 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.
Link to this sectionTôi nên bao gồm những thông tin gì trong báo cáo lỗi cho Ultralytics YOLO?#
Một báo cáo lỗi toàn diện cho Ultralytics YOLO nên bao gồm:
- Mô tả rõ ràng: Giải thích vấn đề, hành vi mong đợi và hành vi thực tế.
- Thông báo lỗi: Bao gồm bất kỳ thông báo lỗi hoặc nhật ký liên quan nào.
- Phụ thuộc: Liệt kê các phụ thuộc bắt buộc và phiên bản của chúng.
- MRE: Cung cấp một Ví dụ Tối thiểu Có thể Tái lập.
- Các bước tái lập: Phác thảo các bước cần thiết để tái lập vấn đề.
Để có danh sách kiểm tra đầy đủ, hãy tham khảo phần Viết mô tả rõ ràng về vấn đề.
Link to this sectionLàm thế nào tôi có thể định dạng mã của mình đúng cách khi gửi báo cáo lỗi trên GitHub?#
Để định dạng mã của bạn đúng cách khi gửi báo cáo lỗi trên GitHub:
- Sử dụng ba dấu backtick (```) để tạo các 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ủa bạn được thụt lề chính xác để dễ đọc.
Ví dụ:
```python
# Your Python code goes here
```Để biết thêm mẹo về định dạng mã, hãy xem Định dạng mã của bạn đúng cách.
Link to this sectionNhững lỗi phổ biến nào cần kiểm tra trước khi gửi MRE cho báo cáo lỗi?#
Trước khi gửi MRE của bạn, hãy đảm bảo:
- Xác minh vấn đề có thể tái lập.
- Đảm bảo tất cả các phụ thuộc được liệt kê và chính xác.
- Loại bỏ bất kỳ mã không cần thiết nào.
- Kiểm tra MRE để đảm bảo nó tái lập vấn đề mà không cần sửa đổi.
Để có danh sách kiểm tra chi tiết, hãy truy cập phần Kiểm tra MRE của bạn.