Sicurezza pronta per le aziende: Conformità ISO 27001 + SOC 2 Type I.

Link to this sectionInizia con YOLOv5 🚀 in Docker#

Benvenuto nella guida rapida di Ultralytics YOLOv5 per Docker! Questo tutorial fornisce istruzioni dettagliate per configurare ed eseguire YOLOv5 all'interno di un contenitore Docker. L'utilizzo di Docker ti consente di eseguire YOLOv5 in un ambiente isolato e coerente, semplificando il deployment e la gestione delle dipendenze tra sistemi diversi. Questo approccio sfrutta la containerizzazione per impacchettare l'applicazione e le sue dipendenze insieme.

Per metodi di configurazione alternativi, prendi in considerazione le nostre guide Colab Notebook Open In Colab Open In Kaggle, GCP Deep Learning VM o Amazon AWS. Per una panoramica generale sull'utilizzo di Docker con i modelli Ultralytics, consulta la Guida rapida a Docker di Ultralytics.

Link to this sectionPrerequisiti#

Prima di iniziare, assicurati di avere installato quanto segue:

  1. Docker: Scarica e installa Docker dal sito ufficiale di Docker. Docker è essenziale per creare e gestire i contenitori.
  2. Driver NVIDIA (Richiesti per il supporto GPU): Assicurati di avere installato i driver NVIDIA versione 455.23 o superiore. Puoi scaricare i driver più recenti dal sito di NVIDIA.
  3. NVIDIA Container Toolkit (Richiesto per il supporto GPU): Questo toolkit consente ai contenitori Docker di accedere alle GPU NVIDIA del tuo host. Segui la guida all'installazione ufficiale di NVIDIA Container Toolkit per istruzioni dettagliate.

Link to this sectionConfigurazione di NVIDIA Container Toolkit (Utenti GPU)#

Per prima cosa, verifica che i driver NVIDIA siano installati correttamente eseguendo:

nvidia-smi

Questo comando dovrebbe visualizzare le informazioni sulla tua/e GPU e sulla versione del driver installata.

Successivamente, installa NVIDIA Container Toolkit. I comandi seguenti sono tipici per i sistemi basati su Debian come Ubuntu e per i sistemi basati su RHEL come Fedora/CentOS, ma fai riferimento alla guida ufficiale collegata sopra per le istruzioni specifiche per la 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.list

Aggiorna gli elenchi dei pacchetti e installa il NVIDIA Container Toolkit:

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

Link to this sectionVerifica 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 gestisce la specifica automaticamente su toolkit >= 1.18):

nvidia-ctk cdi list

Dovresti 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 riavvio del daemon host, quindi aggiorna i vecchi host Linux e usa --device al suo posto.

Link to this sectionPassaggio 1: Scarica l'immagine Docker di YOLOv5#

Ultralytics fornisce le immagini ufficiali di YOLOv5 su Docker Hub. Il tag latest segue il commit più recente del repository, garantendoti di avere sempre la versione più aggiornata. Scarica l'immagine usando il seguente comando:

# Define the image name with tag
t=ultralytics/yolov5:latest

# Pull the latest YOLOv5 image from Docker Hub
sudo docker pull $t

Puoi sfogliare tutte le immagini disponibili presso il repository Docker Hub di Ultralytics YOLOv5.

Link to this sectionPassaggio 2: Esegui il contenitore Docker#

Una volta scaricata l'immagine, puoi eseguirla come un contenitore.

Link to this sectionUtilizzo solo CPU#

Per eseguire un'istanza di contenitore interattiva usando solo la CPU, usa il flag -it. Il flag --ipc=host consente la condivisione dello spazio dei nomi IPC dell'host, che è importante per l'accesso alla memoria condivisa.

# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $t

Link to this sectionUtilizzo della GPU#

Per abilitare l'accesso alla GPU all'interno del container, utilizza il flag --device nvidia.com/gpu=... CDI. Ciò richiede che il NVIDIA Container Toolkit sia 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 $t

Consulta il riferimento per docker run per ulteriori dettagli sulle opzioni dei comandi.

Link to this sectionMontaggio di directory locali#

Per lavorare con i tuoi file locali (dataset, pesi del modello, ecc.) all'interno del contenitore, usa il flag -v per montare una directory dell'host nel contenitore:

# 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 $t

Sostituisci /path/on/host con il percorso effettivo sulla tua macchina e /path/in/container con il percorso desiderato all'interno del contenitore Docker (es. /usr/src/datasets).

Link to this sectionPassaggio 3: Usa YOLOv5 🚀 all'interno del contenitore Docker#

Ora ti trovi all'interno del contenitore Docker di YOLOv5 in esecuzione! Da qui, puoi eseguire i comandi standard di YOLOv5 per varie attività di Machine Learning e Deep Learning come l'Object Detection.

# 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 model

Esplora la documentazione per un uso dettagliato delle diverse modalità:

Scopri di più sulle metriche di valutazione come Precision, Recall e mAP. Comprendi diversi formati di esportazione come ONNX, CoreML e TFLite ed esplora le varie Opzioni di distribuzione del modello. Ricordati di gestire i tuoi pesi del modello in modo efficace.

Running YOLOv5 inside a Docker container on GCP

Hai configurato ed eseguito con successo YOLOv5 all'interno di un contenitore Docker.

Commenti