Создание минимального воспроизводимого примера для сообщений об ошибках в репозиториях Ultralytics YOLO .
При отправке сообщения об ошибке для Ultralytics YOLO репозиториях, необходимо предоставить минимальный воспроизводимый пример (MRE). MRE - это небольшой, самодостаточный кусок кода, который демонстрирует проблему, с которой вы столкнулись. Предоставление MRE помогает сопровождающим и контрибьюторам понять проблему и работать над ее устранением более эффективно. В этом руководстве объясняется, как создать MRE при отправке сообщений об ошибках в репозитории Ultralytics YOLO .
1. Изолируйте проблему
Первый шаг при создании MRE - изолировать проблему. Удалите весь ненужный код или зависимости, которые не имеют прямого отношения к проблеме. Сосредоточьтесь на конкретной части кода, вызывающей проблему, и удалите все неактуальные разделы.
2. Использование публичных моделей и наборов данных
При создании MRE используйте общедоступные модели и наборы данных для воспроизведения проблемы. Например, используйте yolov8n.pt
модель и coco8.yaml
набор данных. Это гарантирует, что сопровождающие и соавторы смогут легко запустить ваш пример и исследовать проблему, не имея доступа к собственным данным или пользовательским моделям.
3. Включите все необходимые зависимости
Убедитесь, что все необходимые зависимости включены в ваш MRE. Если ваш код зависит от внешних библиотек, укажите необходимые пакеты и их версии. В идеале, перечислите зависимости в своем сообщении об ошибке, используя yolo checks
если у вас есть ultralytics
установленный или 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
установленный или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.