YOLO Vision 2026:

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

Когда ты отправляешь отчет об ошибке для репозиториев 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.0
  • ultralytics==8.2.0

В этом примере MRE демонстрирует проблему с минимальным количеством кода, использует публичную модель ("yolo26n.pt"), включает все необходимые зависимости и предоставляет четкое описание проблемы вместе с сообщением об ошибке.

Следуя этим рекомендациям, ты поможешь мейнтейнерам и участникам репозиториев Ultralytics YOLO быстрее понять и решить твою проблему.

FAQ#

  • Чтобы создать эффективный минимально воспроизводимый пример (MRE) для отчетов об ошибках в репозиториях Ultralytics YOLO, выполни следующие шаги:

    1. Изолируй проблему: Удали любой код или зависимости, которые напрямую не связаны с проблемой.
    2. Используй публичные модели и датасеты: задействуй публичные ресурсы, такие как yolo26n.pt и coco8.yaml, для упрощения воспроизводимости.
    3. Включи все необходимые зависимости: укажи нужные пакеты и их версии. Ты можешь перечислить зависимости с помощью yolo checks, если у тебя установлен ultralytics, или pip list.
    4. Напиши четкое описание проблемы: Объясни ожидаемое и фактическое поведение, включая любые сообщения об ошибках или логи.
    5. Правильно оформи свой код: Используй блоки кода для форматирования своего кода, чтобы сделать его более читабельным.
    6. Протестируй свой MRE: Убедись, что твой MRE воспроизводит проблему без модификаций.

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

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

  • Исчерпывающий отчет об ошибке для Ultralytics YOLO должен включать:

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

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

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

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

    Пример:

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

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

  • Перед отправкой своего MRE обязательно:

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

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

Комментарии