콘텐츠로 건너뛰기

버그 보고를 위한 최소 재현 가능 예제 생성

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에서는 코드 블록을 백틱 3개(```)로 묶고 언어를 지정하여 만들 수 있습니다.

```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

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

이러한 지침을 따르면 Ultralytics YOLO 저장소의 유지 관리자와 기여자들이 문제를 더 효율적으로 이해하고 해결하는 데 도움이 될 것입니다.

FAQ

Ultralytics YOLO 저장소에서 버그 보고를 위한 효과적인 최소 재현 가능 예제(MRE)를 어떻게 만듭니까?

Ultralytics YOLO 저장소에서 버그 보고를 위한 효과적인 최소 재현 가능 예제(MRE)를 만들려면 다음 단계를 따르세요.

  1. 문제 격리: 문제와 직접적으로 관련이 없는 코드나 종속성을 제거하세요.
  2. 공용 모델 및 데이터세트 사용: 다음과 같은 공개 리소스를 활용하십시오. yolov8n.ptcoco8.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 테스트 섹션을 참조하세요.



📅 7개월 전에 생성됨 ✏️ 4개월 전에 업데이트됨

댓글