Создание минимального воспроизводимого примера для отчетов об ошибках

При отправке отчета об ошибке в репозитории Ultralytics YOLO важно предоставить минимальный воспроизводимый пример (MRE). MRE — это небольшой автономный фрагмент кода, который демонстрирует проблему, с которой ты столкнулся. Предоставление MRE помогает сопровождающим и участникам лучше понять проблему и эффективнее работать над ее устранением. Это руководство объясняет, как создать MRE при отправке отчетов об ошибках в репозитории Ultralytics YOLO.

Изолируй проблему

Первый шаг к созданию MRE — изоляция проблемы. Удали любой ненужный код или зависимости, которые не относятся напрямую к проблеме. Сосредоточься на конкретной части кода, вызывающей сбой, и устрани все неактуальные разделы.

Используй публичные модели и наборы данных

При создании MRE используй общедоступные модели и наборы данных для воспроизведения проблемы. Например, используй модель yolo26n.pt и датасет coco8.yaml. Это гарантирует, что сопровождающие и участники смогут легко запустить твой пример и изучить проблему без необходимости доступа к проприетарным данным или пользовательским моделям.

Включи все необходимые зависимости

Убедись, что все необходимые зависимости включены в твой MRE. Если твой код опирается на внешние библиотеки, укажи необходимые пакеты и их версии. В идеале перечисли зависимости в отчете об ошибке с помощью yolo checks, если у тебя установлена ultralytics, или с помощью pip list для других инструментов.

Напиши четкое описание проблемы

Предоставь четкое и лаконичное описание проблемы, с которой ты столкнулся. Объясни ожидаемое поведение и фактическое поведение, с которым ты встретился. Если применимо, включи соответствующие сообщения об ошибках или логи.

Правильно форматируй код

Правильно форматируй свой код, используя блоки кода в описании проблемы. Это упрощает другим чтение и понимание твоего кода. В GitHub ты можешь создать блок кода, обернув его тройными обратными кавычками (```) и указав язык:

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

Протестируй свой MRE

Перед отправкой MRE протестируй его, чтобы убедиться, что он точно воспроизводит проблему. Убедись, что другие могут запустить твой пример без каких-либо проблем или модификаций.

Пример MRE

Вот пример MRE для гипотетического отчета об ошибке:

Описание ошибки:

При запуске вывода на 0-канальном изображении я получаю ошибку, связанную с размерностью входного тензора.

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)

Сообщение об ошибке:

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 демонстрирует проблему с минимальным количеством кода, использует публичную модель ("yolo26n.pt"), включает все необходимые зависимости и предоставляет четкое описание проблемы вместе с сообщением об ошибке.

Следуя этим рекомендациям, ты поможешь сопровождающим и участникам репозиториев Ultralytics YOLO быстрее понять и устранить твою проблему.

Часто задаваемые вопросы (FAQ)

Как создать эффективный минимальный воспроизводимый пример (MRE) для отчетов об ошибках в репозиториях Ultralytics YOLO?

Чтобы создать эффективный минимальный воспроизводимый пример (MRE) для отчетов об ошибках в репозиториях Ultralytics YOLO, выполни следующие действия:

  1. Изолируй проблему: Удали любой код или зависимости, не относящиеся напрямую к проблеме.
  2. Используй публичные модели и наборы данных: Используй публичные ресурсы, такие как yolo26n.pt и coco8.yaml, для более легкого воспроизведения.
  3. Включи все необходимые зависимости: Укажи требуемые пакеты и их версии. Ты можешь перечислить зависимости с помощью yolo checks, если у тебя установлена ultralytics, или с помощью pip list.
  4. Напиши четкое описание проблемы: Объясни ожидаемое и фактическое поведение, включая любые сообщения об ошибках или логи.
  5. Правильно форматируй свой код: Используй блоки кода для оформления своего кода, чтобы сделать его более читабельным.
  6. Протестируй свой MRE: Убедись, что твой MRE воспроизводит проблему без правок.

Подробное руководство см. в разделе Создание минимального воспроизводимого примера.

Почему мне следует использовать общедоступные модели и наборы данных в моем MRE для отчетов об ошибках Ultralytics YOLO?

Использование общедоступных моделей и наборов данных в MRE гарантирует, что сопровождающие смогут легко запустить твой пример без необходимости доступа к проприетарным данным. Это позволяет быстрее и эффективнее решать проблемы. Например, использование модели yolo26n.pt и набора данных coco8.yaml помогает стандартизировать и упростить процесс отладки. Узнай больше о публичных моделях и наборах данных в разделе Использование публичных моделей и наборов данных.

Какую информацию мне следует включить в свой отчет об ошибке для Ultralytics YOLO?

Всеобъемлющий отчет об ошибке для Ultralytics YOLO должен включать:

  • Четкое описание: Объясни проблему, ожидаемое поведение и фактическое поведение.
  • Сообщения об ошибках: Включи все соответствующие сообщения об ошибках или логи.
  • Зависимости: Перечисли необходимые зависимости и их версии.
  • MRE: Предоставь минимальный воспроизводимый пример.
  • Шаги для воспроизведения: Опиши шаги, необходимые для воспроизведения проблемы.

Полный контрольный список см. в разделе Напиши четкое описание проблемы.

Как я могу правильно отформатировать код при отправке отчета об ошибке на GitHub?

Чтобы правильно отформатировать код при отправке отчета об ошибке на GitHub:

  • Используй тройные обратные кавычки (```) для создания блоков кода.
  • Укажи язык программирования для подсветки синтаксиса, например, ```python.
  • Убедись, что твой код имеет правильные отступы для читабельности.

Пример:

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

Дополнительные советы по форматированию кода см. в разделе Правильно форматируй свой код.

Какие распространенные ошибки стоит проверить перед отправкой MRE для отчета об ошибке?

Перед отправкой MRE обязательно:

  • Проверь, что проблема воспроизводима.
  • Убедись, что все зависимости указаны и верны.
  • Удали любой ненужный код.
  • Протестируй MRE, чтобы убедиться, что он воспроизводит проблему без изменений.

Подробный контрольный список см. в разделе Протестируй свой MRE.

Комментарии