Ultralytics YOLO27:

Cómo crear un ejemplo mínimo reproducible para informes de errores#

Al enviar un informe de errores para los repositorios de Ultralytics YOLO, es esencial proporcionar un ejemplo mínimo reproducible (MRE). Un MRE es un fragmento de código pequeño y autónomo que demuestra el problema que estás experimentando. Proporcionar un MRE ayuda a los responsables del mantenimiento y a los colaboradores a comprender el problema y trabajar en una solución de forma más eficiente. Esta guía explica cómo crear un MRE al enviar informes de errores a los repositorios de Ultralytics YOLO.

1. Aísla el problema#

El primer paso para crear un MRE es aislar el problema. Elimina cualquier código o dependencia innecesarios que no estén directamente relacionados con el problema. Céntrate en la parte específica del código que está causando el problema y elimina las secciones irrelevantes.

2. Usa modelos y conjuntos de datos públicos#

Al crear un MRE, utiliza modelos y conjuntos de datos disponibles públicamente para reproducir el problema. Por ejemplo, usa el modelo yolo26n.pt y el conjunto de datos coco8.yaml. Esto garantiza que los responsables del mantenimiento y los colaboradores puedan ejecutar fácilmente tu ejemplo e investigar el problema sin necesitar acceso a datos privados ni a modelos personalizados.

3. Incluye todas las dependencias necesarias#

Asegúrate de incluir todas las dependencias necesarias en tu MRE. Si tu código depende de bibliotecas externas, especifica los paquetes necesarios y sus versiones. Lo ideal es enumerar las dependencias en tu informe de errores usando yolo checks si tienes ultralytics instalado, o pip list para otras herramientas.

4. Escribe una descripción clara del problema#

Proporciona una descripción clara y concisa del problema que estás experimentando. Explica el comportamiento esperado y el comportamiento real que observas. Si procede, incluye los mensajes de error o registros relevantes.

5. Da el formato adecuado a tu código#

Da el formato adecuado a tu código mediante bloques de código en la descripción del problema. Esto facilita que otras personas lean y entiendan tu código. En GitHub, puedes crear un bloque de código rodeándolo con tres comillas invertidas (```) y especificando el lenguaje:

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

6. Prueba tu MRE#

Antes de enviar tu MRE, pruébalo para asegurarte de que reproduce fielmente el problema. Asegúrate de que otras personas puedan ejecutar tu ejemplo sin problemas ni modificaciones.

Ejemplo de un MRE#

Este es un ejemplo de un MRE para un informe de errores hipotético:

Descripción del error:

Al ejecutar la inferencia sobre una imagen de 0 canales, aparece un error relacionado con las dimensiones del tensor de entrada.

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)

Mensaje de error:

RuntimeError: Expected input[1, 0, 640, 640] to have 3 channels, but got 0 channels instead

Dependencias:

  • torch==2.8.0
  • ultralytics==8.4.142

En este ejemplo, el MRE demuestra el problema con una cantidad mínima de código, utiliza un modelo público ("yolo26n.pt"), incluye todas las dependencias necesarias y proporciona una descripción clara del problema junto con el mensaje de error.

Si sigues estas directrices, ayudarás a los responsables del mantenimiento y a los colaboradores de los repositorios de Ultralytics YOLO a comprender y resolver tu problema de forma más eficiente.

Preguntas frecuentes#

  • Para crear un ejemplo mínimo reproducible (MRE) eficaz para informes de errores en los repositorios de Ultralytics YOLO, sigue estos pasos:

    1. Aísla el problema: Elimina cualquier código o dependencia que no esté directamente relacionada con el problema.
    2. Usa modelos y conjuntos de datos públicos: Utiliza recursos públicos como yolo26n.pt y coco8.yaml para facilitar la reproducibilidad.
    3. Incluye todas las dependencias necesarias: Especifica los paquetes necesarios y sus versiones. Puedes enumerar las dependencias usando yolo checks si tienes ultralytics instalado, o pip list.
    4. Escribe una descripción clara del problema: Explica el comportamiento esperado y el real, incluidos los mensajes de error o registros.
    5. Da el formato adecuado a tu código: Utiliza bloques de código para dar formato a tu código y facilitar su lectura.
    6. Prueba tu MRE: Asegúrate de que tu MRE reproduce el problema sin modificaciones.

    Para consultar una guía detallada, visita Cómo crear un ejemplo mínimo reproducible.

  • Usar modelos y conjuntos de datos disponibles públicamente en tu MRE garantiza que los responsables del mantenimiento puedan ejecutar fácilmente tu ejemplo sin necesitar acceso a datos privados. Esto permite resolver los problemas de forma más rápida y eficiente. Por ejemplo, usar el modelo yolo26n.pt y el conjunto de datos coco8.yaml ayuda a estandarizar y simplificar el proceso de depuración. Obtén más información sobre los modelos y conjuntos de datos públicos en la sección Usa modelos y conjuntos de datos públicos.

  • Un informe de errores completo para Ultralytics YOLO debe incluir:

    • Descripción clara: Explica el problema, el comportamiento esperado y el comportamiento real.
    • Mensajes de error: Incluye los mensajes de error o registros relevantes.
    • Dependencias: Enumera las dependencias necesarias y sus versiones.
    • MRE: Proporciona un ejemplo mínimo reproducible.
    • Pasos para reproducirlo: Describe los pasos necesarios para reproducir el problema.

    Para consultar una lista de comprobación completa, visita la sección Escribe una descripción clara del problema.

  • Para dar el formato adecuado a tu código al enviar un informe de errores en GitHub:

    • Usa tres comillas invertidas (```) para crear bloques de código.
    • Especifica el lenguaje de programación para resaltar la sintaxis; por ejemplo, ```python.
    • Asegúrate de que el código tenga la sangría correcta para facilitar su lectura.

    Ejemplo:

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

    Para obtener más consejos sobre el formato del código, consulta Da el formato adecuado a tu código.

  • Antes de enviar tu MRE, asegúrate de:

    • Comprobar que el problema se puede reproducir.
    • Asegurarte de que todas las dependencias están enumeradas y son correctas.
    • Eliminar cualquier código innecesario.
    • Probar el MRE para asegurarte de que reproduce el problema sin modificaciones.

    Para consultar una lista de comprobación detallada, visita la sección Prueba tu MRE.

Comentarios