Link to this sectionCreación de 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 una pequeña pieza de código independiente que demuestra el problema que estás experimentando. Proporcionar un MRE ayuda a los mantenedores y colaboradores a entender 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 YOLO de Ultralytics.
Link to this sectionAí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.
Link to this sectionUtiliza modelos y datasets públicos#
Al crear un MRE, utiliza modelos y datasets disponibles públicamente para reproducir el problema. Por ejemplo, utiliza el modelo yolo26n.pt y el dataset coco8.yaml. Esto garantiza que los mantenedores y colaboradores puedan ejecutar tu ejemplo fácilmente e investigar el problema sin necesidad de acceder a datos privados o modelos personalizados.
Link to this sectionIncluye todas las dependencias necesarias#
Asegúrate de que todas las dependencias necesarias estén incluidas 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 ultralytics instalado o pip list para otras herramientas.
Link to this sectionEscribe 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.
Link to this sectionFormatea 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
```Link to this sectionPrueba 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.
Link to this sectionEjemplo 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 instead
Dependencias:
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.
Al seguir estas pautas, ayudarás a los mantenedores y colaboradores de los repositorios de YOLO de Ultralytics a comprender y resolver tu problema de manera más eficiente.
Link to this sectionFAQ#
Link to this section¿Cómo creo un Ejemplo Mínimo Reproducible (MRE) efectivo para informes de errores en repositorios de YOLO de Ultralytics?#
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.
- Utiliza modelos y datasets públicos: Utiliza recursos públicos como
yolo26n.ptycoco8.yamlpara una reproducibilidad más sencilla. - Incluye todas las dependencias necesarias: Especifica los paquetes requeridos y sus versiones. Puedes listar las dependencias usando
yolo checkssi tienesultralyticsinstalado opip 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 una guía detallada, consulta Creación de un Ejemplo Mínimo Reproducible.
Link to this section¿Por qué debo usar modelos y datasets disponibles públicamente en mi MRE para informes de errores de YOLO de Ultralytics?#
Usar modelos y datasets disponibles públicamente en tu MRE garantiza que los mantenedores puedan ejecutar tu ejemplo fácilmente sin necesitar acceso a datos privados. Esto permite una resolución de problemas más rápida y eficiente. Por ejemplo, usar el modelo yolo26n.pt y el dataset coco8.yaml ayuda a estandarizar y simplificar el proceso de depuración. Aprende más sobre modelos y datasets públicos en la sección Usa modelos y datasets públicos.
Link to this section¿Qué información debo incluir en mi informe de errores para YOLO de Ultralytics?#
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 obtener una lista de verificación completa, consulta la sección Escribe una descripción clara del problema.
Link to this section¿Cómo puedo formatear mi código correctamente al enviar un informe de errores en GitHub?#
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 de código, consulta Formatea tu código correctamente.
Link to this section¿Cuáles son algunos errores comunes que debo comprobar antes de enviar mi MRE para un informe de errores?#
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 una lista de verificación detallada, visita la sección Prueba tu MRE.