Saltar para o conteúdo

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 Ultralytics YOLO é essencial fornecer um Exemplo Mínimo Reprodutível (MRE). Um MRE é um pequeno pedaço de código independente que demonstra o problema que está 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. Isolar o problema

O primeiro passo para criar uma MRE é isolar o problema. Remova qualquer código desnecessário ou dependências que não estejam diretamente relacionadas com o problema. Concentre-se na parte específica do código que está a causar o problema e elimine quaisquer secções irrelevantes.

2. Utilizar modelos e conjuntos de dados públicos

Ao criar um MRE, utilize modelos e conjuntos de dados disponíveis publicamente para reproduzir o problema. Por exemplo, utilize o yolov8n.pt e o modelo coco8.yaml conjunto de dados. Isto garante que os responsáveis pela manutenção e os colaboradores podem facilmente executar o seu exemplo e investigar o problema sem necessitarem de acesso a dados proprietários ou modelos personalizados.

3. Incluir 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 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 está a ter. Explique o comportamento esperado e o comportamento real que está a encontrar. Se aplicável, inclua quaisquer mensagens de erro ou registos relevantes.

5. Formatar corretamente o seu código

Formate o seu código corretamente utilizando 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 pontos traseiros (```) e especificando a linguagem:

```python
# Your Python code goes here
```

6. Teste a sua MRE

Antes de submeter o seu MRE, teste-o para garantir que reproduz corretamente o problema. Certifique-se de que outras pessoas podem executar o seu 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:

Quando executo a inferência numa imagem de 0 canais, 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:

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, ajudará os responsáveis pela manutenção e os contribuidores dos repositórios Ultralytics YOLO a compreender e a resolver o seu problema de forma mais eficiente.

FAQ

Como posso criar um Exemplo Mínimo Reprodutível (MRE) eficaz para relatórios de erros nos repositórios Ultralytics YOLO ?

Para criar um Exemplo Mínimo Reprodutível (MRE) eficaz para relatórios de bugs nos repositórios Ultralytics YOLO , siga estes passos:

  1. Isolar o problema: Remova qualquer código ou dependências que não estejam diretamente relacionados com o problema.
  2. Utilizar modelos e conjuntos de dados públicos: Utilizar recursos públicos como yolov8n.pt e coco8.yaml para facilitar a reprodutibilidade.
  3. Incluir todas as dependências necessárias: Especifique os pacotes necessários e as suas versões. É possível 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 real, incluindo quaisquer mensagens de erro ou registos.
  5. Formate o seu código corretamente: Utilize blocos de código para formatar o seu código, tornando-o mais fácil de ler.
  6. Teste o seu MRE: Certifique-se de que o seu MRE reproduz o problema sem modificações.

Para obter um guia detalhado, consulte Criar um exemplo mínimo reproduzível.

Por que razão devo utilizar modelos e conjuntos de dados disponíveis publicamente no meu MRE para Ultralytics YOLO relatórios de erros?

A utilização de modelos e conjuntos de dados publicamente disponíveis no seu MRE garante que os responsáveis pela manutenção podem facilmente executar o seu exemplo sem necessitarem de acesso a dados proprietários. Isto permite uma resolução de problemas mais rápida e eficiente. Por exemplo, usando o yolov8n.pt modelo e coco8.yaml ajuda a padronizar e simplificar o processo de depuração. Saiba mais sobre modelos e conjuntos de dados públicos na secção Utilizar modelos e conjuntos de dados públicos secção.

Que informações devo incluir no meu relatório de erros para Ultralytics YOLO ?

Um relatório de erros abrangente para Ultralytics YOLO deve incluir:

  • Descrição clara: Explicar a questão, o comportamento esperado e o comportamento atual.
  • Mensagens de erro: Incluir quaisquer mensagens de erro ou registos relevantes.
  • Dependências: Listar as dependências necessárias e suas versões.
  • MRE: Fornecer um Exemplo Mínimo Reprodutível.
  • Etapas para reproduzir: Descreva os passos necessários para reproduzir o problema.

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

Como posso formatar corretamente o meu código quando submeto um relatório de erro no GitHub?

Para formatar corretamente o seu código quando submeter um relatório de erro no GitHub:

  • Utilize três pontos traseiros (```) 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 obter mais dicas sobre formatação de código, consulte Formatar o código corretamente.

Quais são alguns erros comuns a verificar antes de submeter a minha EMS para um relatório de erro?

Antes de apresentar a sua MRE, certifique-se de que:

  • Verificar se o problema é reproduzível.
  • Assegurar que todas as dependências estão listadas e corretas.
  • Remova qualquer código desnecessário.
  • Testar a MRE para garantir que reproduz o problema sem modificações.

Para obter uma lista de verificação pormenorizada, visite a secção Teste a sua EMS.

📅C riado há 1 ano ✏️ Atualizado há 3 meses

Comentários