콘텐츠로 건너뛰기

Ultralytics YOLO 리포지토리에서 버그 리포트를 위한 최소한의 재현 가능한 예제 만들기

다음에 대한 버그 리포트를 제출할 때 Ultralytics YOLO 리포지토리에 버그 리포트를 제출할 때는 최소 재현 가능한 예제(MRE)를 제공하는 것이 필수입니다. MRE는 발생한 문제를 보여주는 작고 독립적인 코드 조각입니다. MRE를 제공하면 관리자와 기여자가 문제를 이해하고 보다 효율적으로 수정 작업을 하는 데 도움이 됩니다. 이 가이드에서는 Ultralytics YOLO 리포지토리에 버그 리포트를 제출할 때 MRE를 만드는 방법을 설명합니다.

1. 문제 격리하기

MRE를 만드는 첫 번째 단계는 문제를 격리하는 것입니다. 문제와 직접 관련이 없는 불필요한 코드나 종속성을 모두 제거하세요. 문제를 일으키는 코드의 특정 부분에 집중하고 관련 없는 섹션은 모두 제거하세요.

2. 공개 모델 및 데이터 세트 사용

MRE를 만들 때는 공개적으로 사용 가능한 모델과 데이터 세트를 사용하여 문제를 재현하세요. 예를 들어 yolov8n.pt 모델과 coco8.yaml 데이터 집합을 제공합니다. 이렇게 하면 유지 관리자와 기여자가 독점 데이터나 사용자 지정 모델에 액세스하지 않고도 예제를 쉽게 실행하고 문제를 조사할 수 있습니다.

3. 필요한 모든 종속성 포함하기

필요한 모든 종속성이 MRE에 포함되어 있는지 확인하세요. 코드가 외부 라이브러리에 의존하는 경우 필요한 패키지와 해당 버전을 명시하세요. 버그 리포트에 종속성을 나열할 때는 다음을 사용하는 것이 가장 이상적입니다. yolo checks 있는 경우 ultralytics 설치되어 있거나 pip list 를 클릭하세요.

4. 문제에 대한 명확한 설명 작성

발생한 문제에 대해 명확하고 간결하게 설명하세요. 예상되는 동작과 실제로 발생한 동작을 설명하세요. 해당되는 경우 관련 오류 메시지나 로그를 포함하세요.

5. 올바른 코드 형식 지정

이슈 설명에서 코드 블록을 사용하여 코드 형식을 올바르게 지정하세요. 이렇게 하면 다른 사람들이 코드를 더 쉽게 읽고 이해할 수 있습니다. GitHub에서는 코드를 세 개의 백틱(```)으로 감싸고 언어를 지정하여 코드 블록을 만들 수 있습니다:

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

6. MRE 테스트

MRE를 제출하기 전에 테스트하여 문제를 정확하게 재현하는지 확인하세요. 다른 사람들이 문제나 수정 없이 예제를 실행할 수 있는지 확인하세요.

MRE의 예

다음은 가상의 버그 보고서에 대한 MRE의 예입니다:

버그 설명:

0채널 이미지에서 추론을 실행할 때 입력 크기와 관련된 오류가 발생합니다 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)

오류 메시지입니다:

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

종속성:

  • torch==2.3.0
  • ultralytics==8.2.0

이 예제에서는 최소한의 코드로 문제를 시연하고 공개 모델("yolov8n.pt"), 필요한 모든 종속성을 포함하며 오류 메시지와 함께 문제에 대한 명확한 설명을 제공합니다.

이 가이드라인을 따르면 Ultralytics YOLO 리포지토리의 관리자와 기여자가 문제를 더 효율적으로 이해하고 해결하는 데 도움이 됩니다.

자주 묻는 질문

Ultralytics YOLO 리포지토리에서 버그 리포트를 위한 효과적인 최소 재현 가능 예제(MRE)를 만들려면 어떻게 해야 하나요?

Ultralytics YOLO 리포지토리에서 버그 리포트를 위한 효과적인 최소 재현 가능 예제(MRE)를 만들려면 다음 단계를 따르세요:

  1. 문제를 격리합니다: 문제와 직접 관련이 없는 코드나 종속성을 모두 제거하세요.
  2. 공개 모델 및 데이터 세트 사용: 다음과 같은 공용 리소스 활용 yolov8n.pt 그리고 coco8.yaml 를 사용하여 쉽게 재현할 수 있습니다.
  3. 필요한 모든 종속성 포함하기: 필요한 패키지와 해당 버전을 지정합니다. 다음을 사용하여 종속성을 나열할 수 있습니다. yolo checks 있는 경우 ultralytics 설치되어 있거나 pip list.
  4. 문제에 대한 명확한 설명을 작성합니다: 오류 메시지나 로그를 포함하여 예상되는 동작과 실제 동작을 설명하세요.
  5. 코드 서식을 올바르게 지정하세요: 코드 블록을 사용하여 코드 형식을 지정하면 읽기 쉽게 만들 수 있습니다.
  6. MRE를 테스트합니다: MRE가 수정 없이 문제를 재현하는지 확인하세요.

자세한 가이드는 재현 가능한 최소 예제 만들기를 참조하세요.

Ultralytics YOLO 버그 신고에 공개적으로 사용 가능한 모델과 데이터 세트를 MRE에 사용해야 하는 이유는 무엇인가요?

MRE에서 공개적으로 사용 가능한 모델과 데이터 세트를 사용하면 유지 관리자가 독점 데이터에 액세스하지 않고도 예제를 쉽게 실행할 수 있습니다. 따라서 더 빠르고 효율적으로 문제를 해결할 수 있습니다. 예를 들어 yolov8n.pt 모델과 coco8.yaml 데이터 세트는 디버깅 프로세스를 표준화하고 간소화하는 데 도움이 됩니다. 공개 모델 및 데이터 세트에 대해 자세히 알아보기 공개 모델 및 데이터 세트 사용 섹션으로 이동합니다.

Ultralytics YOLO 에 대한 버그 신고에는 어떤 정보를 포함해야 하나요?

Ultralytics YOLO 에 대한 포괄적인 버그 보고서가 포함되어야 합니다:

  • 명확한 설명: 문제, 예상되는 동작 및 실제 동작을 설명합니다.
  • 오류 메시지: 관련 오류 메시지 또는 로그를 포함하세요.
  • 종속성: 필수 종속성 및 해당 버전을 나열합니다.
  • MRE: 재현 가능한 최소 예시를 제공하세요.
  • 재현 단계: 문제를 재현하는 데 필요한 단계를 간략하게 설명합니다.

전체 체크리스트는 문제에 대한 명확한 설명 작성하기 섹션을 참조하세요.

GitHub에 버그 리포트를 제출할 때 코드 형식을 올바르게 지정하려면 어떻게 해야 하나요?

GitHub에 버그 리포트를 제출할 때 코드 서식을 올바르게 지정하려면 다음과 같이 하세요:

  • 백틱 세 개(```)를 사용하여 코드 블록을 생성합니다.
  • 구문 강조 표시를 위한 프로그래밍 언어를 지정합니다(예: ```python.
  • 가독성을 위해 코드가 올바르게 들여쓰기되었는지 확인하세요.

예시:

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

코드 서식 지정에 대한 자세한 팁은 코드 서식 지정을 참조하세요.

버그 리포트를 위해 MRE를 제출하기 전에 확인해야 할 일반적인 오류에는 어떤 것이 있나요?

MRE를 제출하기 전에 다음 사항을 확인하세요:

  • 문제를 재현할 수 있는지 확인합니다.
  • 모든 종속성이 나열되어 있고 올바른지 확인합니다.
  • 불필요한 코드를 제거합니다.
  • MRE를 테스트하여 수정 없이 문제를 재현하는지 확인합니다.

자세한 체크리스트는 MRE 테스트하기 섹션을 참조하세요.

2개월 전 생성됨 ✏️ 2개월 전 업데이트됨

댓글