Creación de un Ejemplo Mínimo Reproducible para informes de errores#
Al enviar un informe de errores para los repositorios de Ultralytics YOLO, es fundamental proporcionar un Minimum Reproducible Example (MRE). Un MRE es un fragmento de código pequeño y autónomo que demuestra el problema que experimentas. Proporcionar un MRE ayuda a los mantenedores y colaboradores a comprender el problema y trabajar en una solución de manera más eficiente. Esta guía explica cómo crear un MRE al enviar informes de errores a los repositorios de Ultralytics YOLO.
Aísla el problema#
El primer paso para crear un MRE es aislar el problema. Elimina cualquier código o dependencia innecesaria que no esté directamente relacionada con el problema. Céntrate en la parte específica del código que causa el fallo y elimina cualquier sección irrelevante.
Utiliza modelos y datasets públicos#
Al crear un MRE, utiliza modelos y conjuntos de datos disponibles públicamente para reproducir el problema. Por ejemplo, utiliza el modelo yolo26n.pt y el conjunto de datos coco8.yaml. Esto garantiza que los mantenedores y colaboradores puedan ejecutar fácilmente tu ejemplo e investigar el problema sin necesidad de acceder a datos privados o modelos personalizados.
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 requeridos y sus versiones. Idealmente, enumera las dependencias en tu informe de errores usando yolo checks si tienes instalado ultralytics o pip list para otras herramientas.
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 encuentras. Si corresponde, incluye cualquier mensaje de error o registro relevante.
Formatea tu código correctamente#
Formatea tu código correctamente utilizando bloques de código en la descripción del problema. Esto facilita que otros lean y entiendan tu código. En GitHub, puedes crear un bloque de código envolviendo tu código con triples comillas invertidas (```) y especificando el lenguaje:
```python
# Your Python code goes here
```Prueba tu MRE#
Antes de enviar tu MRE, pruébalo para asegurarte de que reproduce el problema con precisión. Asegúrate de que otros puedan ejecutar tu ejemplo sin problemas ni modificaciones.
Ejemplo de un MRE#
Aquí tienes un ejemplo de un MRE para un informe de errores hipotético:
Descripción del error:
Al ejecutar la inferencia en una imagen de 0 canales, recibo 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 insteadDependencias:
torch==2.3.0ultralytics==8.2.0
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.
Siguiendo estas directrices, ayudarás a los mantenedores y contributors de los repositorios de Ultralytics YOLO a comprender y resolver tu problema de manera más eficiente.
FAQ#
Para crear un Ejemplo Mínimo Reproducible (MRE) efectivo para informes de errores en repositorios de YOLO de Ultralytics, sigue estos pasos:
- Aísla el problema: Elimina cualquier código o dependencia que no esté directamente relacionado con el problema.
- Usa modelos y conjuntos de datos públicos: Utiliza recursos públicos como
yolo26n.ptycoco8.yamlpara una mayor facilidad de reproducción. - Incluye todas las dependencias necesarias: Especifica los paquetes requeridos y sus versiones. Puedes enumerar las dependencias usando
yolo checkssi tienes instaladoultralyticsopip list. - Escribe una descripción clara del problema: Explica el comportamiento esperado y real, incluyendo cualquier mensaje de error o registro.
- Formatea tu código correctamente: Usa bloques de código para formatear tu código, haciendo que sea más fácil de leer.
- Prueba tu MRE: Asegúrate de que tu MRE reproduzca el problema sin modificaciones.
Para obtener una guía detallada, consulta Creating a Minimum Reproducible Example.
El uso de modelos y conjuntos de datos disponibles públicamente en tu MRE garantiza que los mantenedores puedan ejecutar fácilmente tu ejemplo sin necesidad de acceder a datos privados. Esto permite una resolución de problemas más rápida y eficiente. Por ejemplo, usar el modelo
yolo26n.pty el conjunto de datoscoco8.yamlayuda a estandarizar y simplificar el proceso de depuración. Obtén más información sobre modelos y conjuntos de datos públicos en la sección Use Public Models and Datasets.Un informe de errores completo para YOLO de Ultralytics debe incluir:
- Descripción clara: Explica el problema, el comportamiento esperado y el comportamiento real.
- Mensajes de error: Incluye cualquier mensaje de error o registro relevante.
- Dependencias: Enumera las dependencias requeridas y sus versiones.
- MRE: Proporciona un Ejemplo Mínimo Reproducible.
- Pasos para reproducir: Describe los pasos necesarios para reproducir el problema.
Para ver una lista de comprobación completa, consulta la sección Write a Clear Description of the Issue.
Para formatear tu código correctamente al enviar un informe de errores en GitHub:
- Usa triples comillas invertidas (```) para crear bloques de código.
- Especifica el lenguaje de programación para el resaltado de sintaxis, por ejemplo, ```python.
- Asegúrate de que tu código esté indentado correctamente para facilitar la legibilidad.
Ejemplo:
```python # Your Python code goes here ```Para obtener más consejos sobre el formato del código, consulta Format Your Code Properly.
Antes de enviar tu MRE, asegúrate de:
- Verificar que el problema sea reproducible.
- Asegurarte de que todas las dependencias estén enumeradas y sean correctas.
- Eliminar cualquier código innecesario.
- Probar el MRE para asegurar que reproduce el problema sin modificaciones.
Para obtener una lista de comprobación detallada, visita la sección Test Your MRE.