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.
Als nächstes installieren Sie das NVIDIA Container Toolkit. Die folgenden Befehle sind typisch für Debian-basierte Systeme wie Ubuntu und RHEL-basierte Systeme wie Fedora/CentOS, aber für spezifische Anweisungen für Ihre Distribution lesen Sie bitte die oben verlinkte offizielle Anleitung:
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
sudo apt-get update
Neueste Version von nvidia installieren
sudo apt-get install -y nvidia-container-toolkit \
nvidia-container-toolkit-base libnvidia-container-tools \
libnvidia-container1
Optional: Spezielle Version von nvidia installieren
Optional können Sie eine bestimmte Version des nvidia installieren, indem Sie die NVIDIA_CONTAINER_TOOLKIT_VERSION
Umgebungsvariable:
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
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \
| sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
Aktualisieren Sie die Paketlisten und installieren Sie das Paket nvidia:
sudo dnf clean expire-cache
sudo dnf check-update
sudo dnf install \
nvidia-container-toolkit \
nvidia-container-toolkit-base \
libnvidia-container-tools \
libnvidia-container1
Optional: Spezielle Version von nvidia installieren
Optional können Sie eine bestimmte Version des nvidia installieren, indem Sie die NVIDIA_CONTAINER_TOOLKIT_VERSION
Umgebungsvariable:
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
sudo dnf 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
Überprüfen der NVIDIA Runtime mit Docker
Ausführen docker info | grep -i runtime
um sicherzustellen, dass nvidia
in der Liste der Runtimes erscheint:
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 --runtime=nvidia --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 --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 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 --runtime=nvidia --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.