Erste Schritte mit YOLOv5 🚀 in Docker
Willkommen beim Ultralytics YOLOv5 Docker-Schnellstart-Leitfaden! Dieses Tutorial bietet eine Schritt-für-Schritt-Anleitung für die Einrichtung und Ausführung von YOLOv5 innerhalb eines Docker-Containers. Die Verwendung von Docker ermöglicht es Ihnen, YOLOv5 in einer isolierten, konsistenten Umgebung auszuführen, was die Bereitstellung und das Abhängigkeitsmanagement über verschiedene Systeme hinweg vereinfacht. Dieser Ansatz nutzt die Containerisierung, um die Anwendung und ihre Abhängigkeiten zusammen zu verpacken.
Für alternative Einrichtungsmethoden ziehen Sie unsere Colab Notebook
, GCP Deep Learning VM, oder Amazon AWS Anleitungen. Einen allgemeinen Überblick über die Docker-Nutzung mit Ultralytics-Modellen finden Sie im Ultralytics Docker Schnellstartanleitung.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Folgendes installiert ist:
- Docker: Laden Sie Docker von der offiziellen Docker-Website herunter und installieren Sie es. Docker ist unerlässlich für die Erstellung und Verwaltung von Containern.
- NVIDIA-Treiber (Erforderlich für GPU-Support): Stellen Sie sicher, dass Sie NVIDIA-Treiber Version 455.23 oder höher installiert haben. Sie können die neuesten Treiber von der NVIDIA-Website herunterladen.
- NVIDIA Container Toolkit (Erforderlich für GPU-Support): Dieses Toolkit ermöglicht Docker-Containern den Zugriff auf die NVIDIA-GPUs Ihres Host-Rechners. Befolgen Sie die offizielle NVIDIA Container Toolkit Installationsanleitung für detaillierte Anweisungen.
Einrichtung des NVIDIA Container Toolkits (GPU-Benutzer)
Überprüfen Sie zunächst, ob Ihre NVIDIA-Treiber korrekt installiert sind, indem Sie Folgendes ausführen:
nvidia-smi
Dieser Befehl sollte Informationen über Ihre GPU(s) und die installierte Treiberversion anzeigen.
Installieren Sie als Nächstes das NVIDIA Container Toolkit. Die folgenden Befehle sind typisch für Debian-basierte Systeme wie Ubuntu, aber beachten Sie die offizielle, oben verlinkte Anleitung für Anweisungen, die speziell für Ihre Distribution gelten:
# Add NVIDIA package repositories (refer to official guide for latest setup)
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
# Update package list and install the toolkit
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# Configure Docker to use the NVIDIA runtime
sudo nvidia-ctk runtime configure --runtime=docker
# Restart Docker service to apply changes
sudo systemctl restart docker
Verifizieren Sie abschließend, dass die NVIDIA-Runtime konfiguriert und für Docker verfügbar ist:
docker info | grep -i runtime
Sie sollten sehen nvidia
als eine der verfügbaren Runtimes aufgeführt.
Schritt 1: Ziehen Sie das YOLOv5 Docker-Image
Ultralytics stellt offizielle YOLOv5-Images auf folgendem Ort bereit: Docker Hub. Der latest
markiert den letzten Repository-Commit, um sicherzustellen, dass Sie immer die neueste Version erhalten. Laden Sie das Image mit dem folgenden Befehl:
# Define the image name with tag
t=ultralytics/yolov5:latest
# Pull the latest YOLOv5 image from Docker Hub
sudo docker pull $t
Sie können alle verfügbaren Bilder im Ultralytics YOLOv5 Docker Hub Repository durchsuchen.
Schritt 2: Den Docker-Container ausführen
Sobald das Image abgerufen wurde, können Sie es als Container ausführen.
Nur CPU verwenden
Um eine interaktive Container-Instanz nur mit der CPU auszuführen, verwenden Sie die -it
Flag. Der --ipc=host
Flag ermöglicht die gemeinsame Nutzung des Host-IPC-Namespace, was für den gemeinsamen Speicherzugriff wichtig ist.
# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $t
Verwendung von GPU
Um den GPU-Zugriff innerhalb des Containers zu ermöglichen, verwenden Sie --gpus
Flag. Dies erfordert, dass das NVIDIA Container Toolkit korrekt installiert ist.
# Run with access to all available GPUs
sudo docker run -it --ipc=host --gpus all $t
# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --ipc=host --gpus '"device=2,3"' $t
Weitere Informationen zu den Befehlsoptionen finden Sie in der Docker Run Referenz.
Lokale Verzeichnisse einbinden
Um mit Ihren lokalen Dateien (Datensätze, Modellgewichte usw.) innerhalb des Containers zu arbeiten, verwenden Sie die -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 --ipc=host --gpus all -v /path/on/host:/path/in/container $t
Ersetzen Sie /path/on/host
mit dem tatsächlichen Pfad auf Ihrem Rechner und /path/in/container
mit dem gewünschten Pfad innerhalb des Docker-Containers (z. B. /usr/src/datasets
), oder Auto-Modus mit angegebener Auslastungsfraktion (
Schritt 3: YOLOv5 🚀 innerhalb des Docker-Containers verwenden
Sie befinden sich jetzt im laufenden YOLOv5-Docker-Container! Von hier aus können Sie Standard-YOLOv5-Befehle für verschiedene Machine Learning- und Deep Learning-Aufgaben wie Objekterkennung ausführen.
# 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 Precision, Recall und mAP. Verstehe verschiedene Exportformate wie ONNX, CoreML und TFLite und entdecke verschiedene Optionen zur Modellbereitstellung. Denke daran, deine Modellgewichte effektiv zu verwalten.
Herzlichen Glückwunsch! Sie haben YOLOv5 erfolgreich in einem Docker-Container eingerichtet und ausgeführt.