Inizia a usare YOLOv5 🚀 in Docker#
Benvenuto nella guida rapida a Docker di Ultralytics YOLOv5! Questo tutorial fornisce istruzioni dettagliate per configurare ed eseguire YOLOv5 all'interno di un container Docker. Docker ti consente di eseguire YOLOv5 in un ambiente isolato e coerente, semplificando la distribuzione e la gestione delle dipendenze su sistemi diversi. Questo approccio sfrutta la containerizzazione per impacchettare insieme l'applicazione e le relative dipendenze.
Per metodi di configurazione alternativi, consulta il nostro Notebook Colab
, le guide per GCP Deep Learning VM o Amazon AWS. Per una panoramica generale sull'uso di Docker con i modelli Ultralytics, consulta la Guida introduttiva rapida a Docker di Ultralytics.
Prerequisiti#
Prima di iniziare, assicurati di aver installato quanto segue:
- Docker: scarica e installa Docker dal sito web ufficiale di Docker. Docker è essenziale per creare e gestire i container.
- Driver NVIDIA (necessari per il supporto GPU): assicurati di aver installato i driver NVIDIA versione 455.23 o successiva. Puoi scaricare i driver più recenti dal sito web di NVIDIA.
- NVIDIA Container Toolkit (necessario per il supporto GPU): questo toolkit consente ai container Docker di accedere alle GPU NVIDIA del computer host. Segui la guida ufficiale all'installazione di NVIDIA Container Toolkit per istruzioni dettagliate.
Configurazione di NVIDIA Container Toolkit (utenti GPU)#
Per prima cosa, verifica che i driver NVIDIA siano installati correttamente eseguendo:
nvidia-smiQuesto comando dovrebbe mostrare informazioni sulle tue GPU e sulla versione del driver installato.
Poi, installa NVIDIA Container Toolkit. I comandi riportati di seguito sono tipici dei sistemi basati su Debian, come Ubuntu, e dei sistemi basati su RHEL, come Fedora/CentOS, ma consulta la guida ufficiale collegata sopra per le istruzioni specifiche della tua distribuzione:
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.listAggiorna gli elenchi dei pacchetti e installa NVIDIA Container Toolkit:
sudo apt-get updatesudo apt-get install -y nvidia-container-toolkitVerificare i dispositivi CDI con Docker#
Esegui nvidia-ctk cdi list per assicurarti che i dispositivi GPU CDI siano disponibili (il servizio nvidia-cdi-refresh del toolkit genera e mantiene automaticamente la specifica su toolkit >= 1.18):
nvidia-ctk cdi listDovresti vedere voci come nvidia.com/gpu=0 e nvidia.com/gpu=all. Su Linux, le richieste di dispositivi CDI richiedono Docker >= 28.2.0 e NVIDIA Container Toolkit >= 1.18. Il flag legacy --gpus all può causare la perdita dell'accesso alla GPU dopo il ricaricamento dei daemon dell'host; aggiorna quindi gli host Linux meno recenti e usa invece --device.
Passaggio 1: scarica l'immagine Docker di YOLOv5#
Ultralytics fornisce immagini ufficiali di YOLOv5 su Docker Hub. Il tag latest segue il commit più recente del repository, assicurandoti di ottenere sempre la versione più aggiornata. Scarica l'immagine usando il comando seguente:
# Define the image name with tag
t=ultralytics/yolov5:latest
# Pull the latest YOLOv5 image from Docker Hub
sudo docker pull $tPuoi consultare tutte le immagini disponibili nel repository Docker Hub di Ultralytics YOLOv5.
Passaggio 2: esegui il container Docker#
Dopo aver scaricato l'immagine, puoi eseguirla come container.
Uso esclusivo della CPU#
Per eseguire un'istanza interattiva del container usando solo la CPU, utilizza il flag -it. Il flag --ipc=host consente di condividere lo spazio dei nomi IPC dell'host, una funzionalità importante per l'accesso alla memoria condivisa.
# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $tUso della GPU#
Per abilitare l'accesso alla GPU all'interno del container, utilizza il flag CDI --device nvidia.com/gpu=.... NVIDIA Container Toolkit deve essere installato correttamente.
# 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 il riferimento per docker run per ulteriori dettagli sulle opzioni dei comandi.
Montaggio delle directory locali#
Per lavorare con i tuoi file locali (dataset, pesi del modello e così via) all'interno del container, utilizza il flag -v per montare una directory dell'host nel container:
# 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 $tSostituisci /path/on/host con il percorso effettivo sul tuo computer e /path/in/container con il percorso desiderato all'interno del container Docker (ad esempio, /usr/src/datasets).
Passaggio 3: usa YOLOv5 🚀 all'interno del container Docker#
Ora ti trovi all'interno del container Docker YOLOv5 in esecuzione! Da qui puoi eseguire i comandi standard di YOLOv5 per varie attività di Machine Learning e Deep Learning, come il rilevamento degli oggetti.
# 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 la documentazione per informazioni dettagliate sull'uso delle diverse modalità:
Scopri di più sulle metriche di valutazione come Precision, Recall e mAP. Approfondisci i diversi formati di esportazione, come ONNX, CoreML e TFLite, ed esplora le varie opzioni di distribuzione dei modelli. Ricordati di gestire in modo efficace i pesi del modello.

Hai configurato ed eseguito correttamente YOLOv5 all'interno di un container Docker.