Создание минимального воспроизводимого примера для сообщений об ошибках в репозиториях 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 вы можете создать блок кода, обернув код тройными обратными кавычками (''') и указав язык:
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)
Сообщение об ошибке:
Зависимости:
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
installed илиpip list
. - Напиши четкое описание проблемы: Объясни ожидаемое и фактическое поведение, включая любые сообщения об ошибках или журналы.
- Правильно форматируй свой код: Используй кодовые блоки, чтобы отформатировать свой код и сделать его более удобным для чтения.
- Протестируй свой MRE: Убедись, что твой MRE воспроизводит проблему без модификаций.
Подробное руководство ты найдешь в статье Создание минимального воспроизводимого примера.
Почему я должен использовать общедоступные модели и наборы данных в своем MRE для Ultralytics YOLO сообщений об ошибках?
Использование общедоступных моделей и наборов данных в твоем MRE гарантирует, что сопровождающие смогут легко запустить твой пример, не нуждаясь в доступе к собственным данным. Это позволяет быстрее и эффективнее решать проблемы. Например, использование yolov8n.pt
модель и coco8.yaml
набор данных помогает стандартизировать и упростить процесс отладки. Узнай больше о публичных моделях и наборах данных в Используй публичные модели и наборы данных Раздел.
Какую информацию нужно включить в сообщение об ошибке для Ultralytics YOLO ?
Исчерпывающий отчет об ошибке для Ultralytics YOLO должен включать в себя:
- Четкое описание: Объясни суть проблемы, ожидаемое поведение и реальное поведение.
- Сообщения об ошибках: Включи все необходимые сообщения об ошибках или журналы.
- Зависимости: Перечисли необходимые зависимости и их версии.
- MRE: Предоставь минимальный воспроизводимый пример.
- Шаги для воспроизведения: Опиши шаги, необходимые для воспроизведения проблемы.
Полный чек-лист см. в разделе " Напишите четкое описание проблемы ".
Как правильно оформить свой код при отправке сообщения об ошибке на GitHub?
Чтобы правильно оформить свой код при отправке сообщения об ошибке на GitHub:
- Используй тройные обратные знаки (```), чтобы создавать блоки кода.
- Укажи язык программирования для подсветки синтаксиса, например, ``python.
- Убедись, что твой код имеет правильные отступы для удобочитаемости.
Пример:
Больше советов по форматированию кода ты найдешь в статье Правильно форматируй свой код.
Какие распространенные ошибки нужно проверить, прежде чем отправлять MRE в отчет об ошибке?
Перед тем как отправить свой MRE, убедись в этом:
- Убедись, что проблема воспроизводима.
- Убедись, что все зависимости перечислены и корректны.
- Удали весь ненужный код.
- Протестируй MRE, чтобы убедиться, что он воспроизводит проблему без модификаций.
Подробный чек-лист можно найти в разделе Test Your MRE.