Создание минимального воспроизводимого примера для отчетов об ошибках
При отправке отчета об ошибке для репозиториев 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, выполните следующие действия:
- Изолируйте проблему: Удалите любой код или зависимости, которые не имеют прямого отношения к проблеме.
- Используйте общедоступные модели и наборы данных: Используйте общедоступные ресурсы, такие как
yolov8n.pt
иcoco8.yaml
для упрощения воспроизводимости. - Включите все необходимые зависимости: Укажите необходимые пакеты и их версии. Вы можете перечислить зависимости, используя
yolo checks
если у вас естьultralytics
установлен илиpip list
. - Четко опишите проблему: Объясните ожидаемое и фактическое поведение, включая любые сообщения об ошибках или журналы.
- Правильно форматируйте свой код: Используйте блоки кода для форматирования кода, чтобы его было легче читать.
- Проверьте свой 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.