Criando um Exemplo Mínimo e Reproduzível para Relatórios de Bugs
Ao enviar um relatório de bug para os repositórios Ultralytics YOLO, é essencial fornecer um Exemplo Mínimo Reproduzível (EMR). Um EMR é um pequeno trecho de código autocontido que demonstra o problema que você está enfrentando. Fornecer um EMR ajuda os mantenedores e colaboradores a entender o problema e trabalhar em uma correção de forma mais eficiente. Este guia explica como criar um EMR ao enviar relatórios de bugs para os repositórios Ultralytics YOLO.
1. Isolar o Problema
O primeiro passo na criação de um MRE é isolar o problema. Remova qualquer código ou dependências desnecessárias que não estejam diretamente relacionadas ao problema. Concentre-se na parte específica do código que está causando o problema e elimine quaisquer seções irrelevantes.
2. Usar Modelos e Conjuntos de Dados Públicos
Ao criar um MRE, use modelos e conjuntos de dados disponíveis publicamente para reproduzir o problema. Por exemplo, use o yolov8n.pt
modelo e o coco8.yaml
conjunto de dados. Isso garante que os mantenedores e colaboradores possam executar facilmente seu exemplo e investigar o problema sem precisar de acesso a dados proprietários ou modelos personalizados.
3. Inclua Todas as Dependências Necessárias
Certifique-se de que todas as dependências necessárias estão incluídas no seu MRE. Se o seu código depende de bibliotecas externas, especifique os pacotes necessários e as suas versões. Idealmente, liste as dependências no seu relatório de erros usando yolo checks
se você tiver ultralytics
instalado ou pip list
para outras ferramentas.
4. 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.
5. Formate Seu Código Adequadamente
Formate seu código corretamente usando blocos de código na descrição do problema. Isso torna mais fácil para os outros ler e entender seu código. No GitHub, você pode criar um bloco de código envolvendo seu código com três backticks (```) e especificando a linguagem:
```python
# Your Python code goes here
```
6. Teste seu MRE
Antes de enviar seu MRE, teste-o para garantir que ele reproduza o problema com precisão. Certifique-se de que outras pessoas 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("yolov8n.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 ("yolov8n.pt"
), inclui todas as dependências necessárias e fornece uma descrição clara do problema, juntamente com a mensagem de erro.
Ao seguir 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 Reprodutível (MRE) eficaz para relatórios de bugs nos repositórios Ultralytics YOLO?
Para criar um Exemplo Mínimo Reprodutível (EMR) eficaz para relatórios de bugs nos repositórios Ultralytics YOLO, siga estes passos:
- Isole o Problema: Remova qualquer código ou dependências que não estejam diretamente relacionados ao problema.
- Use modelos e conjuntos de dados públicos: Utilize recursos públicos como
yolov8n.pt
ecoco8.yaml
para facilitar a reprodutibilidade. - 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 você tiverultralytics
instalado oupip list
. - Escreva uma Descrição Clara do Problema: Explique o comportamento esperado e o real, incluindo quaisquer mensagens de erro ou logs.
- Formate Seu Código Corretamente: Use blocos de código para formatar seu código, tornando-o mais fácil de ler.
- Teste seu MRE: Garanta 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 disponíveis publicamente em meu MRE para relatórios de bugs do Ultralytics YOLO?
Usar modelos e conjuntos de dados disponíveis publicamente em seu MRE garante que os mantenedores possam executar facilmente seu exemplo sem precisar acessar dados proprietários. Isso permite uma resolução de problemas mais rápida e eficiente. Por exemplo, usar o yolov8n.pt
modelo e coco8.yaml
O conjunto de dados ajuda a padronizar e simplificar o processo de depuração. Saiba mais sobre modelos e conjuntos de dados públicos no Use modelos e conjuntos de dados públicos secção.
Que informações devo incluir no meu relatório de bugs para Ultralytics YOLO?
Um relatório de bug abrangente para 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 checklist 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 backticks (```) para criar blocos de código.
- Especifique a linguagem de programação para realce de sintaxe, por exemplo, ```python.
- Certifique-se de que o seu código está indentado corretamente para facilitar a leitura.
Exemplo:
```python
# Your Python code goes here
```
Para mais dicas sobre formatação de código, consulte Formatar seu código corretamente.
Quais são alguns erros comuns a serem verificados antes de enviar meu MRE para um relatório de bug?
Antes de enviar seu MRE, certifique-se de:
- Verifique se o problema é reproduzível.
- Certifique-se de que todas as dependências estão listadas e corretas.
- Remova qualquer código desnecessário.
- Teste o MRE para garantir que ele reproduza o problema sem modificações.
Para uma checklist detalhada, visite a seção Teste seu MRE.