Docker ile YOLOv5 🚀 Başlangıç Rehberi

Ultralytics YOLOv5 Docker Hızlı Başlangıç Rehberi'ne hoş geldin! Bu eğitim, YOLOv5 uygulamasını bir Docker konteyneri içinde kurman ve çalıştırman için adım adım talimatlar sağlar. Docker kullanmak, YOLOv5'i yalıtılmış ve tutarlı bir ortamda çalıştırmanı sağlayarak farklı sistemlerde dağıtımı ve bağımlılık yönetimini basitleştirir. Bu yaklaşım, uygulamayı ve bağımlılıklarını birlikte paketlemek için konteynerleştirme yönteminden yararlanır.

Alternatif kurulum yöntemleri için Colab Notebook Open In Colab Open In Kaggle, GCP Deep Learning VM veya Amazon AWS rehberlerimize göz atabilirsin. Ultralytics modelleriyle Docker kullanımı hakkında genel bir bakış için Ultralytics Docker Hızlı Başlangıç Rehberi sayfasına bak.

Ön koşullar

Başlamadan önce aşağıdakilerin yüklü olduğundan emin ol:

  1. Docker: Resmi Docker web sitesinden Docker'ı indir ve kur. Docker, konteyner oluşturmak ve yönetmek için gereklidir.
  2. NVIDIA Sürücüleri (GPU desteği için gereklidir): 455.23 veya üzeri bir NVIDIA sürücü sürümünün yüklü olduğundan emin ol. En güncel sürücüleri NVIDIA'nın web sitesinden indirebilirsin.
  3. NVIDIA Container Toolkit (GPU desteği için gereklidir): Bu araç seti, Docker konteynerlerinin ana makinenin NVIDIA GPU'larına erişmesini sağlar. Ayrıntılı talimatlar için resmi NVIDIA Container Toolkit kurulum rehberini takip et.

NVIDIA Container Toolkit'i Kurma (GPU Kullanıcıları)

Öncelikle, NVIDIA sürücülerinin doğru kurulduğunu şu komutu çalıştırarak doğrula:

nvidia-smi

Bu komut, GPU'ların ve yüklü sürücü sürümü hakkında bilgileri görüntülemelidir.

Ardından, NVIDIA Container Toolkit'i kur. Aşağıdaki komutlar Ubuntu gibi Debian tabanlı sistemler ve Fedora/CentOS gibi RHEL tabanlı sistemler için tipiktir, ancak kendi dağıtımına özel talimatlar için yukarıda bağlantısı verilen resmi rehbere başvur:

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

Paket listelerini güncelle ve nvidia-container-toolkit paketini yükle:

sudo apt-get update

nvidia-container-toolkit'in en son sürümünü kur:

sudo apt-get install -y nvidia-container-toolkit \
  nvidia-container-toolkit-base libnvidia-container-tools \
  libnvidia-container1
İsteğe bağlı: nvidia-container-toolkit'in belirli bir sürümünü yükle

İsteğe bağlı olarak, NVIDIA_CONTAINER_TOOLKIT_VERSION ortam değişkenini ayarlayarak nvidia-container-toolkit'in belirli bir sürümünü yükleyebilirsin:

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

NVIDIA Runtime'ı Docker ile doğrulama

Run docker info | grep -i runtime to ensure that nvidia appears in the list of runtimes:

docker info | grep -i runtime

nvidia değerini mevcut çalışma zamanlarından biri olarak görmelisin.

Adım 1: YOLOv5 Docker İmajını Çek

Ultralytics, resmi YOLOv5 imajlarını Docker Hub üzerinde sunar. latest etiketi, en son depo commit'ini takip ederek her zaman en yeni sürüme sahip olmanı sağlar. İmajı şu komutu kullanarak çek:

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

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

Tüm mevcut imajlara Ultralytics YOLOv5 Docker Hub deposu üzerinden göz atabilirsin.

Adım 2: Docker Konteynerini Çalıştır

İmaj çekildikten sonra, onu bir konteyner olarak çalıştırabilirsin.

Sadece CPU Kullanımı

Sadece CPU kullanarak etkileşimli bir konteyner örneği çalıştırmak için -it bayrağını kullan. --ipc=host bayrağı, paylaşılan bellek erişimi için önemli olan ana makine IPC ad alanının paylaşılmasına izin verir.

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

GPU Kullanımı

Konteyner içinde GPU erişimini etkinleştirmek için --gpus bayrağını kullan. Bu, NVIDIA Container Toolkit'in doğru bir şekilde kurulmuş olmasını gerektirir.

# 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

Komut seçenekleri hakkında daha fazla bilgi için Docker run referansına bak.

Yerel Dizinleri Bağlama

Yerel dosyalarınla (veri setleri, model ağırlıkları vb.) konteyner içinde çalışmak için, bir ana dizini konteynere bağlamak üzere -v bayrağını kullan:

# 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

/path/on/host kısmını makinenizdeki gerçek yol ile, /path/in/container kısmını ise Docker konteyneri içindeki istediğin yol ile (örneğin /usr/src/datasets) değiştir.

Adım 3: Docker Konteyneri İçinde YOLOv5 🚀 Kullanımı

Artık çalışan YOLOv5 Docker konteynerinin içindesin! Buradan, Makine Öğrenimi ve Derin Öğrenme gibi çeşitli Nesne Tespiti görevleri için standart YOLOv5 komutlarını çalıştırabilirsin.

# 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

Farklı modların ayrıntılı kullanımı için belgelere göz at:

Hassasiyet (Precision), Geri Çağırma (Recall) ve mAP gibi değerlendirme metrikleri hakkında daha fazla bilgi edin. ONNX, CoreML ve TFLite gibi farklı dışa aktarma formatlarını anla ve çeşitli Model Dağıtım Seçeneklerini keşfet. Model ağırlıklarını etkin bir şekilde yönetmeyi unutma.

Running YOLOv5 inside a Docker container on GCP

YOLOv5'i bir Docker konteynerinde başarıyla kurdun ve çalıştırdın.

Yorumlar