Criando um Exemplo Mínimo Reprodutível para Relatórios de Erros em Ultralytics YOLO Repositórios
Ao submeter um relatório de bug para os repositórios Ultralytics YOLO , é essencial fornecer um exemplo mínimo reproduzível (MRE). Um MRE é um pequeno pedaço de código independente que demonstra o problema que estás a ter. Fornecer um MRE 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 MRE ao enviar relatórios de erros para os repositórios Ultralytics YOLO .
1. Isola o problema
O primeiro passo para criar um MRE é isolar o problema. Isto significa remover qualquer código desnecessário ou dependências que não estejam diretamente relacionadas com o problema. Concentra-te na parte específica do código que está a causar o problema e remove qualquer código irrelevante.
2. Utiliza modelos e conjuntos de dados públicos
Ao criar um MRE, usa modelos e conjuntos de dados disponíveis publicamente para reproduzir o problema. Por exemplo, usa o modelo 'yolov8n.pt' e o conjunto de dados 'coco8.yaml'. Isso garante que os mantenedores e colaboradores possam executar facilmente o teu exemplo e investigar o problema sem precisar de acesso a dados proprietários ou modelos personalizados.
3. Inclui todas as dependências necessárias
Certifica-te de que incluis todas as dependências necessárias no teu MRE. Se o teu código depende de bibliotecas externas, especifica os pacotes necessários e as suas versões. Idealmente, fornece um requirements.txt
ou lista as dependências no teu relatório de bug.
4. Escreve uma descrição clara do problema
Fornece uma descrição clara e concisa do problema que estás a ter. Explica o comportamento esperado e o comportamento real que estás a encontrar. Se aplicável, inclui quaisquer mensagens de erro ou registos relevantes.
5. Formata o teu código corretamente
Quando submeteres um MRE, formata o teu código corretamente utilizando blocos de código na descrição do problema. Isso facilita a leitura e a compreensão do teu código por outras pessoas. No GitHub, podes criar um bloco de código envolvendo o teu código com três pontos traseiros (```) e especificando a linguagem:
6. Testa a tua MRE
Antes de enviar o teu MRE, testa-o para garantir que reproduz o problema com precisão. Certifica-te de que os outros podem executar o teu exemplo sem quaisquer problemas ou modificações.
Exemplo de uma MRE
Aqui está um exemplo de um MRE para um relatório de bug hipotético:
Descrição do erro:
Ao executar o detect.py
na imagem de amostra do conjunto de dados 'coco8.yaml', recebo um erro relacionado com as dimensões da entrada tensor.
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:
Dependências:
- torch==2.0.0
- ultralytics==8.0.90
Neste exemplo, o MRE demonstra o problema com uma quantidade mínima de código, utiliza 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 directrizes, ajudarás os responsáveis e contribuidores dos repositórios Ultralytics YOLO a compreender e a resolver o teu problema de forma mais eficiente.