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

Tạo một ví dụ có thể lặp lại tối thiểu cho các báo cáo lỗi trong Ultralytics YOLO Kho

Khi gửi báo cáo lỗi cho Ultralytics YOLO kho lưu trữ, điều cần thiết là cung cấp một ví dụ có thể tái tạo tối thiểu (MRE). MRE là một đoạn mã nhỏ, khép kín thể hiện vấn đề bạn đang gặp phải. Cung cấp MRE giúp người bảo trì và cộng tác viên hiểu vấn đề và khắc phục 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 tới Ultralytics YOLO Kho.

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

Bước đầu tiên trong việc tạo MRE là cô lập vấn đề. Điều này có nghĩa là loại bỏ bất kỳ mã hoặc phụ thuộc không cần thiết nào 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 sự cố và xóa mọi mã không liên quan.

2. Sử dụng các mô hình và bộ dữ liệu công cộng

Khi tạo MRE, hãy sử dụng các mô hình và bộ dữ liệu có sẵn công khai để tái tạo sự cố. Ví dụ: sử dụng 'yolov8nMô hình .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à cộng tác viên 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 vào dữ liệu độc quyền hoặc mô hình tùy chỉnh.

3. Bao gồm tất cả các phụ thuộc cần thiết

Đảm bảo bao gồm tất cả các phụ thuộc cần thiết trong MRE của bạn. Nếu mã của bạn dựa trên 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à cung cấp một requirements.txt Tệp hoặc liệt kê các phần phụ thuộc trong báo cáo lỗi của bạn.

4. Viết mô tả rõ ràng về vấn đề

Cung cấp mô tả rõ ràng và ngắn gọn về sự cố bạn đang gặp phải. Giải thích hành vi mong đợi và hành vi thực tế bạn đang gặp phải. Nếu có, hãy bao gồm mọi thông báo lỗi hoặc nhật ký có liên quan.

5. Định dạng mã của bạn đúng cách

Khi gửi MRE, hãy đị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 đọc và hiểu mã của bạn dễ dàng hơn. Trong GitHub, bạn có thể tạo một khối mã bằng cách gói mã của mình bằng ba dấu gạch ngược (''') và chỉ định ngôn ngữ:

# Your Python code goes here

6. Kiểm tra MRE của bạn

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

Ví dụ về MRE

Dưới đây là ví dụ về MRE cho báo cáo lỗi giả định:

Mô tả lỗi:

Khi chạy detect.py tập lệnh trên hình ảnh mẫu từ tập dữ liệu 'coco8.yaml', tôi gặp lỗi liên quan đến kích thước của đầu vào tensor.

MRE:

import torch
from ultralytics import YOLO

# Load the model
model = YOLO("yolov8n.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.0.0
  • ultralytics==8.0.90

Trong ví dụ này, MRE thể hiện vấn đề với một lượng mã tối thiểu, sử dụng mô hình công khai ('yolov8n.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 làm theo các nguyên tắc này, bạn sẽ giúp những người bảo trì và cộng tác viên của Ultralytics YOLO kho lưu trữ để hiểu và giải quyết vấn đề của bạn hiệu quả hơn.



Đã tạo 2023-11-12, Cập nhật 2023-11-12
Tác giả: glenn-jocher (1)

Ý kiến