Meet YOLO26: next-gen vision AI.

Link to this sectionErste Schritte mit YOLOv5 🚀 in Docker#

Willkommen beim Ultralytics YOLOv5 Docker-Schnellstart-Guide! Dieses Tutorial bietet Schritt-für-Schritt-Anleitungen zum Einrichten und Ausführen von YOLOv5 in einem Docker-Container. Die Nutzung von Docker ermöglicht es dir, YOLOv5 in einer isolierten, konsistenten Umgebung auszuführen, was die Bereitstellung und das Abhängigkeitsmanagement über verschiedene Systeme hinweg vereinfacht. Dieser Ansatz nutzt Containerisierung, um die Anwendung und ihre Abhängigkeiten gemeinsam zu verpacken.

Für alternative Einrichtungsmethoden sieh dir unsere Colab Notebook-Anleitungen Open In Colab Open In Kaggle, GCP Deep Learning VM oder Amazon AWS an. Für einen allgemeinen Überblick zur Nutzung von Docker mit Ultralytics-Modellen siehe den Ultralytics Docker-Schnellstart-Guide.

Link to this sectionVoraussetzungen#

Bevor du beginnst, stelle sicher, dass du Folgendes installiert hast:

  1. Docker: Lade Docker von der offiziellen Docker-Website herunter und installiere es. Docker ist für das Erstellen und Verwalten von Containern unerlässlich.
  2. NVIDIA-Treiber (erforderlich für GPU-Unterstützung): Stelle sicher, dass du NVIDIA-Treiber der Version 455.23 oder höher installiert hast. Du kannst die neuesten Treiber von der NVIDIA-Website herunterladen.
  3. NVIDIA Container Toolkit (erforderlich für GPU-Unterstützung): Dieses Toolkit ermöglicht es Docker-Containern, auf die NVIDIA-GPUs deines Host-Rechners zuzugreifen. Folge der offiziellen NVIDIA Container Toolkit-Installationsanleitung für detaillierte Anweisungen.

Link to this sectionEinrichten des NVIDIA Container Toolkits (GPU-Benutzer)#

Überprüfe zunächst, ob deine NVIDIA-Treiber korrekt installiert sind, indem du Folgendes ausführst:

nvidia-smi

Dieser Befehl sollte Informationen über deine GPU(s) und die installierte Treiberversion anzeigen.

Installiere als Nächstes das NVIDIA Container Toolkit. Die unten stehenden Befehle sind typisch für Debian-basierte Systeme wie Ubuntu und RHEL-basierte Systeme wie Fedora/CentOS, aber beachte die oben verlinkte offizielle Anleitung für spezifische Anweisungen zu deiner Distribution:

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

Aktualisiere die Paketlisten und installiere das Paket nvidia-container-toolkit:

sudo apt-get update

Installiere die neueste Version des nvidia-container-toolkit:

sudo apt-get install -y nvidia-container-toolkit \
  nvidia-container-toolkit-base libnvidia-container-tools \
  libnvidia-container1
Optional: Installiere eine bestimmte Version des nvidia-container-toolkit

Optional kannst du eine bestimmte Version des nvidia-container-toolkit installieren, indem du die Umgebungsvariable NVIDIA_CONTAINER_TOOLKIT_VERSION festlegst:

export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
sudo apt-get install -y \
  nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Link to this sectionÜberprüfe die NVIDIA-Laufzeitumgebung mit Docker#

Führe docker info | grep -i runtime aus, um sicherzustellen, dass nvidia in der Liste der Laufzeitumgebungen erscheint:

docker info | grep -i runtime

Du solltest nvidia als eine der verfügbaren Laufzeitumgebungen sehen.

Link to this sectionSchritt 1: Das YOLOv5 Docker-Image abrufen (Pull)#

Ultralytics stellt offizielle YOLOv5-Images auf Docker Hub bereit. Das Tag latest verfolgt den neuesten Repository-Commit und stellt sicher, dass du immer die aktuellste Version erhältst. Lade das Image mit dem folgenden Befehl herunter:

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

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

Du kannst alle verfügbaren Images im Ultralytics YOLOv5 Docker Hub Repository durchsuchen.

Link to this sectionSchritt 2: Den Docker-Container ausführen#

Sobald das Image geladen wurde, kannst du es als Container ausführen.

Link to this sectionNur CPU verwenden#

Um eine interaktive Container-Instanz nur mit der CPU auszuführen, verwende das -it-Flag. Das --ipc=host-Flag ermöglicht die gemeinsame Nutzung des Host-IPC-Namespace, was für den Zugriff auf den gemeinsamen Speicher wichtig ist.

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

Link to this sectionGPU verwenden#

Um den GPU-Zugriff innerhalb des Containers zu aktivieren, verwende das --gpus-Flag. Dies erfordert, dass das NVIDIA Container Toolkit korrekt installiert ist.

# Run with access to all available GPUs
sudo docker run -it --runtime=nvidia --ipc=host --gpus all $t

# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --runtime=nvidia --ipc=host --gpus '"device=2,3"' $t

Weitere Details zu Befehlsoptionen findest du in der Docker run-Referenz.

Link to this sectionLokale Verzeichnisse einbinden (Mounting)#

Um mit deinen lokalen Dateien (Datensätze, Modellgewichte usw.) innerhalb des Containers zu arbeiten, verwende das -v-Flag, um ein Host-Verzeichnis in den Container einzubinden:

# Mount /path/on/host (your local machine) to /path/in/container (inside the container)
sudo docker run -it --runtime=nvidia --ipc=host --gpus all -v /path/on/host:/path/in/container $t

Ersetze /path/on/host durch den tatsächlichen Pfad auf deinem Rechner und /path/in/container durch den gewünschten Pfad innerhalb des Docker-Containers (z. B. /usr/src/datasets).

Link to this sectionSchritt 3: YOLOv5 🚀 innerhalb des Docker-Containers verwenden#

Du befindest dich nun im laufenden YOLOv5 Docker-Container! Von hier aus kannst du Standard-YOLOv5-Befehle für verschiedene Aufgaben im Bereich Machine Learning und Deep Learning ausführen, wie zum Beispiel Objekterkennung.

# 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

Erkunde die Dokumentation für eine detaillierte Nutzung der verschiedenen Modi:

Erfahre mehr über Bewertungsmetriken wie Präzision, Recall und mAP. Verstehe verschiedene Exportformate wie ONNX, CoreML und TFLite und entdecke verschiedene Optionen zur Modellbereitstellung. Denke daran, deine Modellgewichte effektiv zu verwalten.

Running YOLOv5 inside a Docker container on GCP

Du hast YOLOv5 erfolgreich in einem Docker-Container eingerichtet und ausgeführt.

Kommentare