Criar um exemplo mínimo reproduzível para relatórios de erros#
Ao submeteres um relatório de erro para os repositórios Ultralytics YOLO, é essencial fornecer um exemplo mínimo reproduzível (MRE). Um MRE é um pequeno trecho de código autónomo que demonstra o problema que estás a encontrar. Fornecer um MRE ajuda os responsáveis pela manutenção e os contribuidores a compreender o problema e a trabalhar numa correção com mais eficiência. Este guia explica como criar um MRE ao submeter relatórios de erros para os repositórios Ultralytics YOLO.
1. Isolar o problema#
O primeiro passo para criar um MRE é isolar o problema. Remove qualquer código ou dependência desnecessários que não estejam diretamente relacionados com o problema. Concentra-te na parte específica do código que está a causar o problema e elimina quaisquer secções irrelevantes.
2. Utilizar modelos e conjuntos de dados públicos#
Ao criares um MRE, utiliza modelos e conjuntos de dados disponíveis publicamente para reproduzir o problema. Por exemplo, utiliza o modelo yolo26n.pt e o conjunto de dados coco8.yaml. Isto garante que os responsáveis pela manutenção e os contribuidores podem executar facilmente o teu exemplo e investigar o problema sem precisarem de acesso a dados proprietários ou a modelos personalizados.
3. Incluir todas as dependências necessárias#
Certifica-te de que o teu MRE inclui todas as dependências necessárias. Se o teu código depender de bibliotecas externas, indica os pacotes necessários e as respetivas versões. Idealmente, lista as dependências no teu relatório de erro utilizando yolo checks se tiveres ultralytics instalado, ou pip list para outras ferramentas.
4. Descrever claramente o problema#
Descreve de forma clara e concisa o problema que estás a encontrar. Explica o comportamento esperado e o comportamento real que estás a observar. Se for pertinente, inclui mensagens de erro ou registos relevantes.
5. Formatar corretamente o código#
Formata corretamente o teu código utilizando blocos de código na descrição do problema. Assim, será mais fácil para outras pessoas lerem e compreenderem o teu código. No GitHub, podes criar um bloco de código colocando o teu código entre três acentos graves (```) e especificando a linguagem:
```python
# Your Python code goes here
```6. Testar o teu MRE#
Antes de submeteres o teu MRE, testa-o para garantir que reproduz fielmente o problema. Certifica-te de que outras pessoas conseguem executar o teu exemplo sem problemas nem modificações.
Exemplo de um MRE#
Segue-se um exemplo de MRE para um relatório de erro hipotético:
Descrição do erro:
Ao executar a inferência numa imagem com 0 canais, obtenho um erro relacionado com as dimensões do tensor de entrada.
MRE:
import torch
from ultralytics import YOLO
# Carrega o modelo
model = YOLO("yolo26n.pt")
# Carregar uma imagem com 0 canais
image = torch.rand(1, 0, 640, 640)
# Executar o modelo
results = model(image)Mensagem de erro:
RuntimeError: Expected input[1, 0, 640, 640] to have 3 channels, but got 0 channels insteadDependências:
torch==2.8.0ultralytics==8.4.142
Neste exemplo, o MRE demonstra o problema com uma quantidade mínima de código, utiliza um modelo público ("yolo26n.pt"), inclui todas as dependências necessárias e apresenta uma descrição clara do problema juntamente com a mensagem de erro.
Se seguires estas diretrizes, ajudarás os responsáveis pela manutenção e os contribuidores dos repositórios Ultralytics YOLO a compreender e resolver o teu problema com mais eficiência.
Perguntas frequentes#
Para criares um exemplo mínimo reproduzível (MRE) eficaz para relatórios de erros nos repositórios Ultralytics YOLO, segue estes passos:
- Isolar o problema: Remove qualquer código ou dependência que não esteja diretamente relacionado com o problema.
- Utilizar modelos e conjuntos de dados públicos: Utiliza recursos públicos, como
yolo26n.ptecoco8.yaml, para facilitar a reprodução do problema. - Incluir todas as dependências necessárias: Indica os pacotes necessários e as respetivas versões. Podes listar as dependências com
yolo checksse tiveresultralyticsinstalado, ou compip list. - Descrever claramente o problema: Explica o comportamento esperado e o comportamento real, incluindo quaisquer mensagens de erro ou registos.
- Formatar corretamente o código: Utiliza blocos de código para formatar o teu código e facilitar a leitura.
- Testar o teu MRE: Certifica-te de que o teu MRE reproduz o problema sem modificações.
Para obteres um guia detalhado, consulta Criar um exemplo mínimo reproduzível.
A utilização de modelos e conjuntos de dados disponíveis publicamente no teu MRE garante que os responsáveis pela manutenção conseguem executar facilmente o teu exemplo sem precisarem de acesso a dados proprietários. Isto permite resolver os problemas mais rapidamente e com maior eficiência. Por exemplo, a utilização do modelo
yolo26n.pte do conjunto de dadoscoco8.yamlajuda a uniformizar e simplificar o processo de depuração. Sabe mais sobre modelos e conjuntos de dados públicos na secção Utilizar modelos e conjuntos de dados públicos.Um relatório de erro completo do Ultralytics YOLO deve incluir:
- Descrição clara: Explica o problema, o comportamento esperado e o comportamento real.
- Mensagens de erro: Inclui quaisquer mensagens de erro ou registos relevantes.
- Dependências: Indica as dependências necessárias e as respetivas versões.
- MRE: Fornece um exemplo mínimo reproduzível.
- Passos para reproduzir: Indica os passos necessários para reproduzir o problema.
Para obteres uma lista de verificação completa, consulta a secção Descrever claramente o problema.
Para formatares corretamente o teu código ao submeteres um relatório de erro no GitHub:
- Utiliza três acentos graves (```) para criar blocos de código.
- Especifica a linguagem de programação para realçar a sintaxe, por exemplo, ```python.
- Certifica-te de que o código está corretamente indentado para facilitar a leitura.
Exemplo:
```python # Your Python code goes here ```Para obteres mais dicas sobre formatação de código, consulta Formatar corretamente o código.
Antes de submeteres o teu MRE, certifica-te de que:
- Verificas se é possível reproduzir o problema.
- Confirmas que todas as dependências estão listadas e corretas.
- Removes qualquer código desnecessário.
- Testas o MRE para garantir que reproduz o problema sem modificações.
Para obteres uma lista de verificação detalhada, consulta a secção Testar o teu MRE.