Saltar al contenido

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

Al enviar un informe de error para Ultralytics YOLO repositorios, es esencial proporcionar un Ejemplo M铆nimo Reproducible (EMR). 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 un MRE es aislar el problema. Elimine cualquier c贸digo o dependencia innecesarios que no est茅n directamente relacionados con el problema. Conc茅ntrese en la parte espec铆fica del c贸digo que est谩 causando el problema y elimine las secciones irrelevantes.

2. Utilizar 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, use el comando yolov8n.pt modelo y el modelo 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. Incluye todas las dependencias necesarias

Aseg煤rese de que todas las dependencias necesarias est茅n incluidas en su MRE. Si el c贸digo se basa en bibliotecas externas, especifique los paquetes necesarios y sus versiones. Lo ideal es enumerar las dependencias en el informe de errores mediante yolo checks Si tienes ultralytics instalado o pip list para otras herramientas.

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

D茅 formato al c贸digo correctamente mediante bloques de c贸digo en la descripci贸n del problema. Esto hace que sea m谩s f谩cil para otros leer y comprender su c贸digo. En GitHub, puedes crear un bloque de c贸digo envolviendo tu c贸digo con acentos graves triples (''') y especificando el idioma:

```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 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 la inferencia en una imagen de 0 canales, 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.3.0
  • ultralytics==8.2.0

En este ejemplo, el MRE muestra 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.

PREGUNTAS FRECUENTES

驴C贸mo puedo crear 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:

  1. A铆sla el problema: Elimina cualquier c贸digo o dependencia que no est茅 directamente relacionado con el problema.
  2. Utilizar modelos y conjuntos de datos p煤blicos: Utiliza recursos p煤blicos como yolov8n.pt y coco8.yaml para facilitar la reproducibilidad.
  3. Incluye todas las dependencias necesarias: Especifica los paquetes necesarios y sus versiones. Puedes listar las dependencias utilizando yolo checks Si tienes ultralytics instalado o pip list.
  4. Escribe una descripci贸n clara del problema: Explica el comportamiento esperado y el real, incluyendo cualquier mensaje de error o registro.
  5. Formatea tu c贸digo correctamente: Utiliza bloques de c贸digo para formatear tu c贸digo y facilitar su lectura.
  6. Prueba tu MRE: Aseg煤rate de que tu MRE reproduce el problema sin modificaciones.

Para obtener una gu铆a detallada, consulta Crear un ejemplo m铆nimo reproducible.

驴Por qu茅 deber铆a utilizar modelos y conjuntos de datos disponibles p煤blicamente en mi MRE para Ultralytics YOLO informes de errores?

Utilizar modelos y conjuntos de datos disponibles p煤blicamente en tu EMR 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 eficaz. Por ejemplo, si utilizas el yolov8n.pt modelo y coco8.yaml ayuda a normalizar y simplificar el proceso de depuraci贸n. M谩s informaci贸n sobre modelos y conjuntos de datos p煤blicos en la p谩gina Utilizar modelos y conjuntos de datos p煤blicos secci贸n.

驴Qu茅 informaci贸n debo incluir en mi informe de error para Ultralytics YOLO ?

Un informe completo de errores para Ultralytics YOLO 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: Lista las dependencias necesarias y sus versiones.
  • MRE: Proporciona un Ejemplo M铆nimo Reproducible.
  • Pasos para reproducir: Esboza los pasos necesarios para reproducir el problema.

Para obtener una lista de comprobaci贸n completa, consulta la secci贸n Redacta una descripci贸n clara del asunto.

驴C贸mo puedo formatear mi c贸digo correctamente al enviar un informe de error en GitHub?

Para formatear correctamente tu c贸digo al enviar un informe de error en GitHub:

  • Utiliza tres puntos suspensivos (```) para crear bloques de c贸digo.
  • Especifica el lenguaje de programaci贸n para el resaltado sint谩ctico, por ejemplo, ```python.
  • Aseg煤rate de que tu c贸digo tiene la sangr铆a correcta para que sea legible.

Ejemplo:

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

Para m谩s consejos sobre el formato del c贸digo, consulta Formatear tu c贸digo correctamente.

驴Cu谩les son algunos errores comunes que debo comprobar antes de enviar mi MRE para un informe de error?

Antes de enviar tu MRE, aseg煤rate de:

  • Comprueba que el problema es reproducible.
  • Aseg煤rate de que todas las dependencias est谩n enumeradas y son correctas.
  • Elimina cualquier c贸digo innecesario.
  • Prueba el MRE para asegurarte de que reproduce el problema sin modificaciones.

Para obtener una lista de comprobaci贸n detallada, visita la secci贸n Pon a prueba tu MRE.



Creado 2023-11-12, Actualizado 2024-07-04
Autores: glenn-jocher (4), IvorZhu331 (1)

Comentarios