Ultralytics YOLO27:

Criando um Exemplo Mínimo Reproduzível para Relatórios de Bugs#

Ao enviar um relatório de bug para os repositórios do Ultralytics YOLO, é essencial fornecer um Exemplo Mínimo Reproduzível (MRE). Um MRE é um pequeno trecho de código autocontido 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 os repositórios do Ultralytics YOLO.

1. 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. Concentre-se na parte específica do código que está causando o problema e elimine todas as seções irrelevantes.

2. Use 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.

3. Inclua todas as dependências necessárias#

Garanta 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. O ideal é listar as dependências no seu relatório de bug 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 observado. Se aplicável, inclua mensagens de erro ou logs relevantes.

5. Formate seu código corretamente#

Formate seu código corretamente usando blocos de código na descrição do problema. Isso facilita a leitura e a compreensão do seu código por outras pessoas. 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
```

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#

Veja um exemplo de MRE para um relatório de bug hipotético:

Descrição do bug:

Ao executar a inferência em uma imagem com 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.8.0
  • ultralytics==8.4.142

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 do Ultralytics YOLO a entender e resolver seu problema com mais eficiência.

Perguntas frequentes#

  • Para criar um Exemplo Mínimo Reproduzível (MRE) eficaz para relatórios de bugs nos repositórios do Ultralytics YOLO, siga estas etapas:

    1. Isole o problema: remova qualquer código ou dependência que não esteja diretamente relacionada ao problema.
    2. Use modelos e conjuntos de dados públicos: utilize recursos públicos como yolo26n.pt e coco8.yaml para facilitar a reprodução.
    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 ultralytics instalado ou pip list.
    4. Escreva uma descrição clara do problema: explique o comportamento esperado e o comportamento real, incluindo mensagens de erro ou logs.
    5. Formate seu código corretamente: use blocos de código para formatar seu código, facilitando a leitura.
    6. Teste seu MRE: certifique-se de que seu MRE reproduza o problema sem modificações.

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

  • 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 resolver os problemas de forma 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.

  • Um relatório de bug abrangente do Ultralytics YOLO deve incluir:

    • Descrição clara: explique o problema, o comportamento esperado e o comportamento real.
    • Mensagens de erro: inclua todas as 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.
    • Etapas para reproduzir: descreva as etapas necessárias para reproduzir o problema.

    Para obter uma lista de verificação completa, consulte a seção Escreva uma descrição clara do problema.

  • 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 o realce 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 obter mais dicas sobre formatação de código, consulte Formate seu código corretamente.

  • 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 obter uma lista de verificação detalhada, consulte a seção Teste seu MRE.

Comentários