Link to this sectionCriando um Exemplo Mínimo Reprodutível para Relatórios de Bug#
When submitting a bug report for Ultralytics YOLO repositories, it's essential to provide a Minimum Reproducible Example (MRE). An MRE is a small, self-contained piece of code that demonstrates the problem you're experiencing. Providing an MRE helps maintainers and contributors understand the issue and work on a fix more efficiently. This guide explains how to create an MRE when submitting bug reports to Ultralytics YOLO repositories.
Link to this sectionIsole 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 problema e elimine quaisquer seções irrelevantes.
Link to this sectionUse 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 modelo yolo26n.pt e o conjunto de dados coco8.yaml. Isso garante que os mantenedores e colaboradores possam executar facilmente o seu exemplo e investigar o problema sem precisar de acesso a dados proprietários ou modelos personalizados.
Link to this sectionInclua 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.
Link to this sectionEscreva 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.
Link to this sectionFormate o Seu Código Corretamente#
Formate o 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 o seu código. No GitHub, você pode criar um bloco de código envolvendo o seu código com três crases (```) e especificando a linguagem:
```python
# Your Python code goes here
```Link to this sectionTeste o Seu MRE#
Antes de enviar o seu MRE, teste-o para garantir que ele reproduza o problema com precisão. Certifique-se de que outras pessoas possam executar o seu exemplo sem problemas ou modificações.
Link to this sectionExemplo de um MRE#
Aqui está um exemplo de um MRE para um relatório de bug hipotético:
Descrição do bug:
Ao executar inferência em uma imagem de 0 canal, 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.0ultralytics==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.
Ao seguir estas diretrizes, você ajudará os mantenedores e colaboradores dos repositórios YOLO da Ultralytics a entender e resolver o seu problema com mais eficiência.
Link to this sectionFAQ#
Link to this sectionComo crio um Exemplo Mínimo Reprodutível (MRE) eficaz para relatórios de bug em repositórios YOLO da Ultralytics?#
Para criar um Exemplo Mínimo Reprodutível (MRE) eficaz para relatórios de bug em repositórios YOLO da Ultralytics, siga estes passos:
- Isolar o Problema: Remova qualquer código ou dependência que não esteja diretamente relacionada ao problema.
- Usar Modelos e Conjuntos de Dados Públicos: Utilize recursos públicos como
yolo26n.ptecoco8.yamlpara facilitar a reprodutibilidade. - Incluir Todas as Dependências Necessárias: Especifique os pacotes necessários e suas versões. Você pode listar dependências usando
yolo checksse tiver oultralyticsinstalado oupip list. - Escrever uma Descrição Clara do Problema: Explique o comportamento esperado e o real, incluindo quaisquer mensagens de erro ou logs.
- Formatar o Seu Código Corretamente: Use blocos de código para formatar o seu código, tornando-o mais fácil de ler.
- Testar o Seu MRE: Garanta que o seu MRE reproduza o problema sem modificações.
Para um guia detalhado, veja Criando um Exemplo Mínimo Reprodutível.
Link to this sectionPor que devo usar modelos e conjuntos de dados disponíveis publicamente no meu MRE para relatórios de bug do YOLO da Ultralytics?#
Usar modelos e conjuntos de dados publicamente disponíveis no seu MRE garante que os mantenedores possam executar facilmente o 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.
Link to this sectionQue informações devo incluir no meu relatório de bug para o YOLO da Ultralytics?#
Um relatório de bug abrangente para o YOLO da Ultralytics 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 Reprodutí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.
Link to this sectionComo posso formatar o meu código corretamente ao enviar um relatório de bug no GitHub?#
Para formatar o 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 o 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 o Seu Código Corretamente.
Link to this sectionQuais são alguns erros comuns para verificar antes de enviar o meu MRE para um relatório de bug?#
Antes de enviar o 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 o Seu MRE.