Creación de un ejemplo mínimo reproducible para informes de errores
Al enviar un informe de error para los repositorios Ultralytics YOLO, es esencial proporcionar un Ejemplo Mínimo Reproducible (EMR). Un EMR es una pequeña pieza de código autocontenida que demuestra el problema que está experimentando. Proporcionar un EMR ayuda a los mantenedores y colaboradores a comprender el problema y a trabajar en una solución de forma más eficiente. Esta guía explica cómo crear un EMR al enviar informes de errores a los repositorios de Ultralytics YOLO.
1. Aísle el problema
El primer paso para crear un MRE es aislar el problema. Elimine cualquier código o dependencia innecesaria que no esté directamente relacionada con el problema. Céntrese en la parte específica del código que está causando el problema y elimine cualquier sección irrelevante.
2. Usar modelos y conjuntos de datos públicos
Al crear un MRE, utilice modelos y conjuntos de datos disponibles públicamente para reproducir el problema. Por ejemplo, utilice el yolov8n.pt
modelo y el coco8.yaml
conjunto de datos. Esto garantiza que los mantenedores y colaboradores puedan ejecutar fácilmente su ejemplo e investigar el problema sin necesidad de acceder a datos propietarios o modelos personalizados.
3. Incluir 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. Lo ideal es que listes las dependencias en tu informe de errores utilizando yolo checks
si tiene ultralytics
instalado o pip list
para otras herramientas.
4. Escriba 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 estás encontrando. Si es aplicable, incluye cualquier mensaje de error o registro relevante.
5. Formatee su 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 tres comillas invertidas (```) y especificando el lenguaje:
```python
# Your Python code goes here
```
6. Pruebe su MRE
Antes de enviar tu MRE, pruébalo para asegurarte de que reproduce con precisión el problema. Asegúrate de que otros puedan ejecutar tu ejemplo sin problemas ni modificaciones.
Ejemplo de un MRE
Aquí tiene un ejemplo de un MRE para un informe de error hipotético:
Descripción del error:
Al ejecutar la inferencia en una imagen de 0 canales, obtengo un error relacionado con las dimensiones del tensor de entrada.
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)
Mensaje de error:
RuntimeError: Expected input[1, 0, 640, 640] to have 3 channels, but got 0 channels instead
Dependencias:
torch==2.3.0
ultralytics==8.2.0
En este ejemplo, el MRE demuestra el problema con una cantidad mínima de código, utiliza un modelo público ("yolov8n.pt"
), incluye todas las dependencias necesarias y proporciona una descripción clara del problema junto con el mensaje de error.
Siguiendo estas pautas, ayudarás a los mantenedores y colaboradores de los repositorios de Ultralytics YOLO a comprender y resolver tu problema de manera más eficiente.
Preguntas frecuentes
¿Cómo creo un Ejemplo Mínimo Reproducible (EMR) eficaz para los informes de errores en los repositorios de Ultralytics YOLO?
Para crear un Ejemplo Mínimo Reproducible (EMR) eficaz para los informes de errores en los repositorios de Ultralytics YOLO, sigue estos pasos:
- Aísle el Problema: Elimine cualquier código o dependencia que no esté directamente relacionada con el problema.
- Utiliza modelos y conjuntos de datos públicos: Utiliza recursos públicos como
yolov8n.pt
ycoco8.yaml
para facilitar la reproducibilidad. - Incluya todas las dependencias necesarias: Especifique los paquetes requeridos y sus versiones. Puede enumerar las dependencias usando
yolo checks
si tieneultralytics
instalado opip list
. - Escriba una descripción clara del problema: Explique el comportamiento esperado y el real, incluyendo cualquier mensaje de error o registros.
- Formatee su código correctamente: Utilice bloques de código para formatear su código, facilitando su lectura.
- Pruebe su MRE: Asegúrese de que su MRE reproduce el problema sin modificaciones.
Para una guía detallada, consulte Cómo crear un ejemplo mínimo reproducible.
¿Por qué debería usar modelos y conjuntos de datos disponibles públicamente en mi MRE para los informes de errores de Ultralytics YOLO?
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 propietarios. Esto permite una resolución de problemas más rápida y eficiente. Por ejemplo, el uso del yolov8n.pt
modelo y coco8.yaml
El conjunto de datos ayuda a estandarizar y simplificar el proceso de depuración. Obtenga más información sobre los modelos y conjuntos de datos públicos en el Utiliza modelos y conjuntos de datos públicos sección.
¿Qué información debo incluir en mi informe de errores para Ultralytics YOLO?
Un informe de error completo para Ultralytics YOLO debe incluir:
- Descripción clara: Explique el problema, el comportamiento esperado y el comportamiento real.
- Mensajes de error: Incluya cualquier mensaje de error o registro relevante.
- Dependencias: Enumera las dependencias necesarias y sus versiones.
- MRE: Proporcione un Ejemplo Mínimo Reproducible.
- Pasos para reproducir: Describe los pasos necesarios para reproducir el problema.
Para una lista de verificación completa, consulta la sección Escribir una descripción clara del problema.
¿Cómo puedo formatear mi código correctamente al enviar un informe de error en GitHub?
Para formatear su código correctamente al enviar un informe de error en GitHub:
- Utiliza comillas triples inversas (```) para crear bloques de código.
- Especifique el lenguaje de programación para el resaltado de sintaxis, p. ej., ```python.
- Asegúrate de que tu código esté correctamente indentado para facilitar la lectura.
Ejemplo:
```python
# Your Python code goes here
```
Para obtener más consejos sobre el formato del código, consulta Formatea tu código correctamente.
¿Cuáles son algunos errores comunes que debo verificar antes de enviar mi MRE para un informe de errores?
Antes de enviar tu MRE, asegúrate de:
- Verifica que el problema sea reproducible.
- Asegúrate de que todas las dependencias estén listadas y sean correctas.
- Eliminar cualquier código innecesario.
- Pruebe el MRE para asegurarse de que reproduce el problema sin modificaciones.
Para una lista de verificación detallada, visite la sección Prueba tu MRE.