Перейти к содержимому

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

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

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

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

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

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

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

Убедитесь, что все необходимые зависимости включены в MRE. Если ваш код опирается на внешние библиотеки, укажите необходимые пакеты и их версии. В идеале перечислите зависимости в отчете об ошибке с помощью yolo checks Если у вас есть ultralytics installed или 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

В этом примере MRE демонстрирует проблему с минимальным объемом кода, использует публичную модель ("yolov8n.pt"), включает в себя все необходимые зависимости и предоставляет четкое описание проблемы вместе с сообщением об ошибке.

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

ВОПРОСЫ И ОТВЕТЫ

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

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

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

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

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

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

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

Исчерпывающий отчет об ошибке для Ultralytics YOLO должен включать в себя:

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

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

Как правильно оформить свой код при отправке сообщения об ошибке на GitHub?

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

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

Пример:

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

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

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

Перед тем как отправить свой MRE, убедись в этом:

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

Подробный чек-лист можно найти в разделе Test Your MRE.

📅 Создано 1 год назад ✏️ Обновлено 2 месяца назад

Комментарии