Começa a usar YOLOv5 🚀 no Docker#
Bem-vindo ao guia de início rápido do Docker para Ultralytics YOLOv5! Este tutorial fornece instruções passo a passo para configurar e executar YOLOv5 num contentor Docker. A utilização do Docker permite executar YOLOv5 num ambiente isolado e consistente, simplificando a implementação e a gestão de dependências em diferentes sistemas. Esta abordagem tira partido da contentorização para empacotar a aplicação e as respetivas dependências em conjunto.
Para conheceres métodos de configuração alternativos, consulta os nossos Notebooks Colab
, os guias da GCP Deep Learning VM ou da Amazon AWS. Para uma visão geral da utilização do Docker com modelos da Ultralytics, consulta o Guia de início rápido do Docker da Ultralytics.
Pré-requisitos#
Antes de começares, confirma que tens os seguintes componentes instalados:
- Docker: transfere e instala o Docker a partir do site oficial do Docker. O Docker é essencial para criar e gerir contentores.
- Controladores NVIDIA (necessários para suporte de GPU): confirma que tens instalada a versão 455.23 ou posterior dos controladores NVIDIA. Podes transferir os controladores mais recentes no site da NVIDIA.
- NVIDIA Container Toolkit (necessário para suporte de GPU): este kit de ferramentas permite que os contentores Docker acedam às GPUs NVIDIA da máquina anfitriã. Segue o guia oficial de instalação do NVIDIA Container Toolkit para obteres instruções detalhadas.
Configurar o NVIDIA Container Toolkit (utilizadores de GPU)#
Primeiro, confirma que os controladores NVIDIA estão instalados corretamente, executando:
nvidia-smiEste comando deve apresentar informações sobre as tuas GPU(s) e a versão do controlador instalado.
Em seguida, instala o NVIDIA Container Toolkit. Os comandos abaixo são típicos de sistemas baseados em Debian, como Ubuntu, e de sistemas baseados em RHEL, como Fedora/CentOS, mas consulta o guia oficial indicado acima para obteres instruções específicas da tua distribuição:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.listAtualiza as listas de pacotes e instala o NVIDIA Container Toolkit:
sudo apt-get updatesudo apt-get install -y nvidia-container-toolkitVerificar dispositivos CDI com o Docker#
Executa nvidia-ctk cdi list para garantir que os dispositivos CDI da GPU estão disponíveis (o serviço nvidia-cdi-refresh do toolkit gera e mantém a especificação automaticamente no toolkit >= 1.18):
nvidia-ctk cdi listDeves ver entradas como nvidia.com/gpu=0 e nvidia.com/gpu=all. No Linux, as solicitações de dispositivos CDI requerem Docker >= 28.2.0 e NVIDIA Container Toolkit >= 1.18. O sinalizador legado --gpus all pode fazer perder o acesso à GPU após recarregamentos do daemon do anfitrião; por isso, atualiza os anfitriões Linux mais antigos e usa --device.
Passo 1: obter a imagem Docker de YOLOv5#
A Ultralytics disponibiliza imagens oficiais de YOLOv5 no Docker Hub. A etiqueta latest acompanha o commit mais recente do repositório, garantindo que tens sempre a versão mais recente. Obtém a imagem com o seguinte comando:
# Define the image name with tag
t=ultralytics/yolov5:latest
# Pull the latest YOLOv5 image from Docker Hub
sudo docker pull $tPodes consultar todas as imagens disponíveis no repositório de YOLOv5 da Ultralytics no Docker Hub.
Passo 2: executar o contentor Docker#
Depois de obteres a imagem, podes executá-la como um contentor.
Usar apenas CPU#
Para executar uma instância interativa do contentor usando apenas a CPU, usa o sinalizador -it. O sinalizador --ipc=host permite partilhar o espaço de nomes IPC do anfitrião, o que é importante para aceder à memória partilhada.
# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $tUsar GPU#
Para ativar o acesso à GPU dentro do contentor, usa o sinalizador CDI --device nvidia.com/gpu=... CDI. Para isso, o NVIDIA Container Toolkit tem de estar instalado corretamente.
# Run with access to all available GPUs
sudo docker run -it --ipc=host --device nvidia.com/gpu=all $t
# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --ipc=host --device nvidia.com/gpu=2 --device nvidia.com/gpu=3 $tConsulta a referência do comando Docker run para obteres mais informações sobre as opções do comando.
Montar diretórios locais#
Para trabalhar com os teus ficheiros locais (conjuntos de dados, pesos de modelos, etc.) dentro do contentor, usa o sinalizador -v para montar um diretório do anfitrião no contentor:
# Mount /path/on/host (your local machine) to /path/in/container (inside the container)
sudo docker run -it --ipc=host --device nvidia.com/gpu=all -v /path/on/host:/path/in/container $tSubstitui /path/on/host pelo caminho real na tua máquina e /path/in/container pelo caminho pretendido dentro do contentor Docker (por exemplo, /usr/src/datasets).
Passo 3: usar YOLOv5 🚀 no contentor Docker#
Agora estás dentro do contentor Docker de YOLOv5 em execução! A partir daqui, podes executar comandos padrão do YOLOv5 para várias tarefas de aprendizagem automática e aprendizagem profunda, como a deteção de objetos.
# Train a YOLOv5 model on your custom dataset (ensure data is mounted or downloaded)
python train.py --data your_dataset.yaml --weights yolov5s.pt --img 640 # Start training
# Validate the trained model's performance (Precision, Recall, mAP)
python val.py --weights path/to/your/best.pt --data your_dataset.yaml # Validate accuracy
# Run inference on images or videos using a trained model
python detect.py --weights yolov5s.pt --source path/to/your/images_or_videos # Perform detection
# Export the trained model to various formats like ONNX, CoreML, or TFLite for deployment
python export.py --weights yolov5s.pt --include onnx coreml tflite # Export modelConsulta os tutoriais Treinar com dados personalizados e Exportação de modelos para obteres instruções detalhadas.
Sabe mais sobre métricas de avaliação, como Precisão, Revocação e mAP. Compreende os diferentes formatos de exportação, como ONNX, CoreML e TFLite, e explora várias opções de implementação de modelos. Não te esqueças de gerir eficazmente os pesos dos modelos.

Configuraste e executaste YOLOv5 num contentor Docker com sucesso.
Perguntas frequentes#
Os processos de trabalho do carregador de dados do PyTorch partilham tensores através da memória partilhada, e os 64 MB predefinidos do Docker são insuficientes.
--ipc=hostpartilha o segmento de memória do anfitrião;--shm-size=8gé uma alternativa se preferires manter o contentor isolado.Executa
nvidia-smino anfitrião para confirmar que o controlador funciona, verifica se o NVIDIA Container Toolkit está instalado comnvidia-ctk cdi liste confirma que o Docker é da versão 28.2 ou posterior para aceitar--device nvidia.com/gpu=all.Monte diretórios do host com
-v /path/on/host:/path/in/containere aponte--datae--projectpara os caminhos montados. Os arquivos gravados em outros locais do contêiner são descartados quando ele é removido.Sim, mas o contêiner precisa ter acesso a um servidor de exibição. Consulte as instruções para X11 e Wayland no guia do Docker da Ultralytics. Sem uma tela, salve os resultados com
--save-txtou use a saída padrãoruns/detect/.