Como criar um Exemplo Mínimo Reproduzível para relatórios de bugs

Ao enviar um relatório de bug para repositórios Ultralytics YOLO, é essencial fornecer um Exemplo Mínimo Reproduzível (MRE). Um MRE é uma pequena peça de código autossuficiente que demonstra o problema que você está enfrentando. Fornecer um MRE ajuda os mantenedores e colaboradores a entender o problema e trabalhar em uma correção com mais eficiência. Este guia explica como criar um MRE ao enviar relatórios de bugs para repositórios Ultralytics YOLO.

Isole o problema

O primeiro passo para criar um MRE é isolar o problema. Remova qualquer código ou dependência desnecessária que não esteja diretamente relacionada ao problema. Foque na parte específica do código que está causando o erro e elimine quaisquer seções irrelevantes.

Use modelos e conjuntos de dados públicos

Ao criar um MRE, use modelos e conjuntos de dados publicamente disponíveis para reproduzir o problema. Por exemplo, use o modelo yolo26n.pt e o conjunto de dados coco8.yaml. Isso garante que os mantenedores e colaboradores possam facilmente executar seu exemplo e investigar o problema sem precisar de acesso a dados proprietários ou modelos personalizados.

Inclua todas as dependências necessárias

Certifique-se de que todas as dependências necessárias estejam incluídas no seu MRE. Se o seu código depender de bibliotecas externas, especifique os pacotes necessários e suas versões. Idealmente, liste as dependências no seu relatório de bug usando yolo checks se você tiver o ultralytics instalado ou pip list para outras ferramentas.

Escreva uma descrição clara do problema

Forneça uma descrição clara e concisa do problema que você está enfrentando. Explique o comportamento esperado e o comportamento real que você está encontrando. Se aplicável, inclua quaisquer mensagens de erro ou logs relevantes.

Formate seu código corretamente

Formate seu código corretamente usando blocos de código na descrição do problema. Isso torna mais fácil para os outros lerem e entenderem seu código. No GitHub, você pode criar um bloco de código envolvendo seu código com três crases (```) e especificando a linguagem:

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

Teste seu MRE

Antes de enviar seu MRE, teste-o para garantir que ele reproduza o problema com precisão. Certifique-se de que outros possam executar seu exemplo sem problemas ou modificações.

Exemplo de um MRE

Aqui está um exemplo de um MRE para um relatório de bug hipotético:

Descrição do bug:

Ao executar a inferência em uma imagem de 0 canais, recebo um erro relacionado às dimensões do 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)

Mensagem de erro:

RuntimeError: Expected input[1, 0, 640, 640] to have 3 channels, but got 0 channels instead

Dependências:

  • torch==2.3.0
  • ultralytics==8.2.0

Neste exemplo, o MRE demonstra o problema com uma quantidade mínima de código, usa um modelo público ("yolo26n.pt"), inclui todas as dependências necessárias e fornece uma descrição clara do problema juntamente com a mensagem de erro.

Seguindo estas diretrizes, você ajudará os mantenedores e colaboradores dos repositórios Ultralytics YOLO a entender e resolver seu problema de forma mais eficiente.

FAQ

Como crio um Exemplo Mínimo Reproduzível (MRE) eficaz para relatórios de bugs em repositórios Ultralytics YOLO?

Para criar um Exemplo Mínimo Reproduzível (MRE) eficaz para relatórios de bugs em repositórios Ultralytics YOLO, siga estes passos:

  1. Isole o Problema: Remova qualquer código ou dependência que não esteja diretamente relacionado ao problema.
  2. Use Modelos e Conjuntos de Dados Públicos: Utilize recursos públicos como yolo26n.pt e coco8.yaml para facilitar a reprodutibilidade.
  3. Inclua Todas as Dependências Necessárias: Especifique os pacotes necessários e suas versões. Você pode listar as dependências usando yolo checks se tiver o ultralytics instalado ou pip list.
  4. Escreva uma Descrição Clara do Problema: Explique o comportamento esperado e o real, incluindo quaisquer mensagens de erro ou logs.
  5. Formate seu Código Corretamente: Use blocos de código para formatar seu código, tornando-o mais fácil de ler.
  6. Teste seu MRE: Certifique-se de que seu MRE reproduza o problema sem modificações.

Para um guia detalhado, consulte Criando um Exemplo Mínimo Reproduzível.

Por que devo usar modelos e conjuntos de dados publicamente disponíveis no meu MRE para relatórios de bugs do Ultralytics YOLO?

Usar modelos e conjuntos de dados disponíveis publicamente no seu MRE garante que os mantenedores possam executar facilmente seu exemplo sem precisar de acesso a dados proprietários. Isso permite uma resolução de problemas mais rápida e eficiente. Por exemplo, usar o modelo yolo26n.pt e o conjunto de dados coco8.yaml ajuda a padronizar e simplificar o processo de depuração. Saiba mais sobre modelos e conjuntos de dados públicos na seção Use Modelos e Conjuntos de Dados Públicos.

Que informações devo incluir no meu relatório de bug para o Ultralytics YOLO?

Um relatório de bug abrangente para o Ultralytics YOLO deve incluir:

  • Descrição Clara: Explique o problema, o comportamento esperado e o comportamento real.
  • Mensagens de Erro: Inclua quaisquer mensagens de erro ou logs relevantes.
  • Dependências: Liste as dependências necessárias e suas versões.
  • MRE: Forneça um Exemplo Mínimo Reproduzível.
  • Passos para Reproduzir: Descreva os passos necessários para reproduzir o problema.

Para uma lista de verificação completa, consulte a seção Escreva uma Descrição Clara do Problema.

Como posso formatar meu código corretamente ao enviar um relatório de bug no GitHub?

Para formatar seu código corretamente ao enviar um relatório de bug no GitHub:

  • Use três crases (```) para criar blocos de código.
  • Especifique a linguagem de programação para destaque de sintaxe, por exemplo, ```python.
  • Certifique-se de que seu código esteja recuado corretamente para facilitar a leitura.

Exemplo:

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

Para mais dicas sobre formatação de código, veja Formate seu Código Corretamente.

Quais são alguns erros comuns a verificar antes de enviar meu MRE para um relatório de bug?

Antes de enviar seu MRE, certifique-se de:

  • Verificar se o problema é reproduzível.
  • Garantir que todas as dependências estejam listadas e corretas.
  • Remover qualquer código desnecessário.
  • Testar o MRE para garantir que ele reproduza o problema sem modificações.

Para uma lista de verificação detalhada, visite a seção Teste seu MRE.

Comentários