YOLO Vision 2026:

Docker üzerinde YOLOv5 🚀 ile Başla#

Ultralytics YOLOv5 Docker Hızlı Başlangıç Kılavuzu'na hoş geldin! Bu eğitim, bir Docker kapsayıcısı içinde YOLOv5 kurmak ve çalıştırmak için adım adım talimatlar sağlar. Docker kullanmak, YOLOv5'i yalıtılmış, tutarlı bir ortamlarda çalıştırmanı sağlayarak farklı sistemler arasında dağıtımı ve bağımlılık yönetimini basitleştirir. Bu yaklaşım, uygulamayı ve bağımlılıklarını bir araya getirmek için kapsayıcılaştırma teknolojisinden yararlanır.

Alternatif kurulum yöntemleri için Colab Notebook Open In Colab Open In Kaggle, GCP Deep Learning VM veya Amazon AWS kılavuzlarımızı inceleyebilirsin. Ultralytics modelleriyle Docker kullanımına dair genel bir bakış için Ultralytics Docker Hızlı Başlangıç Kılavuzu sayfasına göz at.

Ön koşullar#

Başlamadan önce aşağıdakilerin kurulu olduğundan emin ol:

  1. Docker: Resmi Docker web sitesinden Docker'ı indirip kur. Docker, kapsayıcılar oluşturmak ve bunları yönetmek için gereklidir.
  2. NVIDIA Sürücüleri (GPU desteği için gereklidir): NVIDIA sürücülerinin 455.23 veya daha yeni bir sürümünün kurulu olduğundan emin ol. En son sürücüleri NVIDIA'nın web sitesinden indirebilirsin.
  3. NVIDIA Container Toolkit (GPU desteği için gereklidir): Bu araç seti, Docker kapsayıcılarının ana makinenin NVIDIA GPU'larına erişmesini sağlar. Ayrıntılı talimatlar için resmi NVIDIA Container Toolkit kurulum kılavuzunu takip et.

NVIDIA Container Toolkit Kurulumu (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 kurulu sürücü sürümü hakkında bilgi 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 kılavuza bak:

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'i yükle:

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

CDI Cihazlarını Docker ile Doğrula#

GPU CDI cihazlarının kullanılabilir olduğunu doğrulamak için nvidia-ctk cdi list komutunu çalıştır (araç setinin nvidia-cdi-refresh servisi, toolkit >= 1.18 sürümünde spesifikasyonu otomatik olarak oluşturur ve korur):

nvidia-ctk cdi list

nvidia.com/gpu=0 ve nvidia.com/gpu=all gibi girdiler görmelisin. Linux üzerinde, CDI cihaz istekleri Docker >= 28.2.0 ve NVIDIA Container Toolkit >= 1.18 gerektirir. Eski --gpus all bayrağı, ana makine daemon yeniden başlatmalarından sonra GPU erişimini kaybedebilir, bu nedenle eski Linux ana makinelerini yükselt ve bunun yerine --device kullan.

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

Ultralytics, Docker Hub üzerinde resmi YOLOv5 imajları sağlar. latest etiketi en son depo commit'ini takip ederek her zaman en yeni sürümü almanızı sağlar. Şu komutu kullanarak imajı çek:

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

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

Mevcut tüm imajlara Ultralytics YOLOv5 Docker Hub deposundan göz atabilirsin.

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

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

Yalnızca CPU Kullanımı#

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

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

GPU Kullanımı#

Kapsayıcı içinde GPU erişimini etkinleştirmek için --device nvidia.com/gpu=... CDI bayrağını kullan. Bu, NVIDIA Container Toolkit'in doğru şekilde kurulu olmasını gerektirir.

# 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

Komut seçenekleri hakkında daha fazla ayrıntı için Docker run referansına başvur.

Yerel Dizinleri Bağlama#

Yerel dosyalarınla (veri setleri, model ağırlıkları vb.) kapsayıcı içinde çalışmak için, bir ana makine dizinini kapsayıcıya 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 --ipc=host --device nvidia.com/gpu=all -v /path/on/host:/path/in/container $t

/path/on/host ifadesini makinenizdeki gerçek yolla ve /path/in/container ifadesini Docker kapsayıcısının içindeki istenen yol ile değiştir (ör. /usr/src/datasets).

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

Artık çalışan YOLOv5 Docker kapsayıcısının içindesin! Buradan Nesne Tespiti gibi çeşitli Makine Öğrenimi ve Derin Öğrenme 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:

Precision, 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ı etkili bir şekilde yönetmeyi unutma.

Running YOLOv5 inside a Docker container on GCP

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

Yorumlar