Salta 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 que forneças um Exemplo Mínimo Reprodutí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 na criação de um MRE é isolar o problema. Remova qualquer código desnecessário ou dependências que não estejam diretamente relacionadas ao problema. Concentre-se na parte específica do código que está causando o problema e elimine quaisquer seções irrelevantes.

2. Utiliza 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, use o yolov8n.pt modelo e o coco8.yaml conjunto de dados. Isso garante que os mantenedores e contribuidores possam executar facilmente seu exemplo e investigar o problema sem precisar acessar dados proprietários ou modelos personalizados.

3. Inclui 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 depende de bibliotecas externas, especifique os pacotes necessários e suas versões. Idealmente, liste as dependências em seu relatório de bug usando yolo checks se você tem ultralytics instalado ou pip list para outras ferramentas.

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

Formate seu código corretamente usando blocos de código na descrição do problema. Isso torna mais fácil para outras pessoas lerem e compreenderem seu código. No GitHub, você pode criar um bloco de código agrupando seu código com crases triplos (```) e especificando o idioma:

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

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 inferência em uma imagem de canal 0, recebo um erro relacionado às 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 junto com a mensagem de erro.

Ao seguir estas directrizes, ajudas os responsáveis e contribuidores dos repositórios Ultralytics YOLO a compreender e a resolver o teu 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. Isola o problema: Remove qualquer código ou dependências que não estejam diretamente relacionados com o problema.
  2. Utiliza modelos e conjuntos de dados públicos: Utiliza recursos públicos como yolov8n.pt e coco8.yaml para facilitar a reprodutibilidade.
  3. Inclui todas as dependências necessárias: Especifica os pacotes necessários e as suas versões. Podes listar as dependências usando yolo checks se você tem ultralytics instalado ou pip list.
  4. Escreve uma descrição clara do problema: Explica o comportamento esperado e real, incluindo quaisquer mensagens de erro ou registos.
  5. Formata o teu código corretamente: Utiliza blocos de código para formatar o teu código, tornando-o mais fácil de ler.
  6. Testa o teu MRE: Certifica-te de que o teu MRE reproduz o problema sem modificações.

Para obter um guia detalhado, consulta 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 disponíveis publicamente no teu MRE garante que os responsáveis pela manutenção possam executar facilmente o teu 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 normalizar e a simplificar o processo de depuração. Sabe mais sobre modelos e conjuntos de dados públicos na secção Utiliza 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: Explica a questão, o comportamento esperado e o comportamento real.
  • Mensagens de erro: Inclui quaisquer mensagens de erro ou registos relevantes.
  • Dependências: Lista as dependências necessárias e suas versões.
  • MRE: Fornece um Exemplo Mínimo Reprodutível.
  • Etapas para reproduzir: Descreve os passos necessários para reproduzir o problema.

Para obter uma lista de verificação completa, consulta 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 o teu código corretamente quando submetes um relatório de erro no GitHub:

  • Utiliza três pontos traseiros (```) para criar blocos de código.
  • Especifica a linguagem de programação para realce de sintaxe, por exemplo, ```python.
  • Certifica-te de que o teu 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 teu código corretamente.

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

Antes de submeteres a tua MRE, certifica-te de que:

  • Verifica se o problema pode ser reproduzido.
  • Certifica-te de que todas as dependências estão listadas e correctas.
  • Remove qualquer código desnecessário.
  • Testa a MRE para garantir que reproduz o problema sem modificações.

Para obter uma lista de verificação detalhada, visita a secção Test Your MRE.



Criado em 2023-11-12, Atualizado em 2024-07-04
Autores: glenn-jocher (4), IvorZhu331 (1)

Comentários