Saltar al contenido

Creación de un ejemplo mínimo reproducible para los informes de errores en los repositorios Ultralytics YOLO

Cuando env√≠es un informe de error a los repositorios de Ultralytics YOLO , es esencial que proporciones 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 mantenedores y colaboradores a entender el problema y a 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 una MRE es aislar el problema. Esto significa eliminar cualquier código o dependencia innecesarios que no estén directamente relacionados con el problema. Céntrate en la parte concreta del código que está causando el problema y elimina cualquier código irrelevante.

2. Utilizar modelos y conjuntos de datos p√ļblicos

Cuando crees una MRE, utiliza modelos y conjuntos de datos disponibles p√ļblicamente para reproducir el problema. Por ejemplo, utiliza el modelo 'yolov8n.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 propietarios o 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. Idealmente, proporciona un requirements.txt o enumera las dependencias en tu informe de errores.

4. Escribe una descripción clara del asunto

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 procede, incluye cualquier mensaje de error o registro relevante.

5. Formatea tu código correctamente

Cuando envíes una MRE, formatea tu código adecuadamente utilizando bloques de código en la descripción de la incidencia. Esto facilita a los demás la lectura y comprensión de tu código. En GitHub, puedes crear un bloque de código envolviendo tu código con tres puntos suspensivos (```) y especificando el idioma:

# 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 los dem√°s puedan ejecutar tu ejemplo sin problemas ni modificaciones.

Ejemplo de MRE

Aquí tienes un ejemplo de MRE para un hipotético informe de error:

Descripción del fallo:

Al ejecutar el detect.py en la imagen de muestra del conjunto de datos "coco8.yaml", obtengo un error relacionado con las dimensiones de la entrada tensor.

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.0.0
  • ultralytics==8.0.90

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.

Si sigues estas directrices, ayudar√°s a los mantenedores y colaboradores de los repositorios de Ultralytics YOLO a comprender y resolver tu problema con mayor eficacia.



Creado 2023-11-12, Actualizado 2023-11-12
Autores: glenn-jocher (1)

Comentarios