Создание минимального воспроизводимого примера для отчетов об ошибках
При отправке отчета об ошибке в репозитории 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.0ultralytics==8.2.0
В этом примере MRE демонстрирует проблему с минимальным количеством кода, использует публичную модель ("yolo26n.pt"), включает все необходимые зависимости и предоставляет четкое описание проблемы вместе с сообщением об ошибке.
Следуя этим рекомендациям, ты поможешь сопровождающим и участникам репозиториев Ultralytics YOLO быстрее понять и устранить твою проблему.
Часто задаваемые вопросы (FAQ)
Как создать эффективный минимальный воспроизводимый пример (MRE) для отчетов об ошибках в репозиториях Ultralytics YOLO?
Чтобы создать эффективный минимальный воспроизводимый пример (MRE) для отчетов об ошибках в репозиториях Ultralytics YOLO, выполни следующие действия:
- Изолируй проблему: Удали любой код или зависимости, не относящиеся напрямую к проблеме.
- Используй публичные модели и наборы данных: Используй публичные ресурсы, такие как
yolo26n.ptиcoco8.yaml, для более легкого воспроизведения. - Включи все необходимые зависимости: Укажи требуемые пакеты и их версии. Ты можешь перечислить зависимости с помощью
yolo checks, если у тебя установленаultralytics, или с помощьюpip list. - Напиши четкое описание проблемы: Объясни ожидаемое и фактическое поведение, включая любые сообщения об ошибках или логи.
- Правильно форматируй свой код: Используй блоки кода для оформления своего кода, чтобы сделать его более читабельным.
- Протестируй свой 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.