Перейти к содержанию

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

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

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

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

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

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

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

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

4. Четко опишите проблему

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

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

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

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

6. Протестируйте свою MRE

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

Пример MRE

Вот пример минимального воспроизводимого примера (MRE) для гипотетического отчета об ошибке:

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

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

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 установлен или pip list.
  4. Четко опишите проблему: Объясните ожидаемое и фактическое поведение, включая любые сообщения об ошибках или журналы.
  5. Правильно форматируйте свой код: Используйте блоки кода для форматирования кода, чтобы его было легче читать.
  6. Проверьте свой MRE: Убедитесь, что ваш MRE воспроизводит проблему без изменений.

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

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

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

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

Полный отчет об ошибке для Ultralytics YOLO должен включать:

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

Полный контрольный список можно найти в разделе «Четкое описание проблемы».

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

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

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

Пример:

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

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

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

Прежде чем отправлять свой MRE, убедитесь, что:

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

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



📅 Создано 7 месяцев назад ✏️ Обновлено 4 месяца назад

Комментарии