YOLO Vision 2026:

Docker'da YOLOv5 🚀 ile Başlayın#

Ultralytics YOLOv5 Docker Hızlı Başlangıç Kılavuzu'na hoş geldin! Bu eğitim, bir Docker kapsayıcısı içinde YOLOv5 kurup çalıştırman için adım adım talimatlar sunar. Docker kullanmak, YOLOv5'i yalıtılmış ve tutarlı bir ortamda çalıştırmanı sağlar; böylece farklı sistemlerde dağıtım ve bağımlılık yönetimi kolaylaşır. Bu yaklaşım, uygulamayı ve bağımlılıklarını birlikte paketlemek için kapsayıcılaştırmadan 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ıza göz at. Ultralytics modelleriyle Docker kullanımı hakkında genel bir bakış için Ultralytics Docker Quickstart Guide sayfasına bak.

Ön koşullar#

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

  1. Docker: Docker'ı resmi Docker web sitesinden indirip kur. Docker, kapsayıcı oluşturmak ve 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 yeni sürücüleri NVIDIA 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 izle.

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

İlk olarak, NVIDIA sürücülerinin doğru şekilde kurulduğunu şu komutu çalıştırarak doğrula:

nvidia-smi

Bu komut, GPU'n veya GPU'ların ve kurulu sürücü sürümünün bilgilerini göstermelidir.

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 dağıtımına özel talimatlar için yukarıda bağlantısı verilen resmi kılavuza 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'i yükle:

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

CDI Cihazlarını Docker ile Doğrulama#

GPU CDI cihazlarının kullanılabilir olduğundan emin olmak için nvidia-ctk cdi list komutunu çalıştır (toolkit'in nvidia-cdi-refresh hizmeti, toolkit >= 1.18 sürümünde belirtimi otomatik olarak oluşturur ve güncel tutar):

nvidia-ctk cdi list

nvidia.com/gpu=0 ve nvidia.com/gpu=all gibi girdiler görmelisin. Linux'ta CDI cihaz istekleri için Docker >= 28.2.0 ve NVIDIA Container Toolkit >= 1.18 gerekir. Eski --gpus all bayrağı, ana makinedeki daemon yeniden yüklendikten sonra GPU erişimini kaybedebilir; bu nedenle eski Linux ana makinelerini yükselt ve bunun yerine --device kullan.

Adım: YOLOv5 Docker İmajını Çekme#

Ultralytics, resmi YOLOv5 imajlarını Docker Hub üzerinde sunar. latest etiketi, en yeni sürümü her zaman almanı sağlamak için en son depo işlemesini takip eder. İ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

Kullanılabilir tüm imajlara Ultralytics YOLOv5 Docker Hub deposundan göz atabilirsin.

Adım: Docker Kapsayıcısını Çalıştırma#

İmaj çekildikten sonra onu kapsayıcı olarak çalıştırabilirsin.

Yalnızca CPU Kullanımı#

Etkileşimli bir kapsayıcı örneğini yalnızca CPU kullanarak çalıştırmak için -it bayrağını kullan. --ipc=host bayrağı, paylaşılan bellek erişimi için önemli olan ana makinenin IPC ad alanının paylaşılmasını sağlar.

# 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. Bunun için NVIDIA Container Toolkit'in doğru şekilde kurulmuş olması gerekir.

# 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 başvurusuna bakabilirsin.

Yerel Dizinleri Bağlama#

Yerel dosyalarınla (veri kümeleri, 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 yerine makinenizdeki gerçek yolu, /path/in/container yerine de Docker kapsayıcısının içindeki istediğin yolu (ör. /usr/src/datasets) yaz.

Adım: Docker Kapsayıcısı İçinde YOLOv5 🚀 Kullanma#

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 belgeleri incele:

Precision, Recall ve mAP gibi değerlendirme metrikleri hakkında daha fazla bilgi edin. ONNX, CoreML ve TFLite gibi farklı dışa aktarma biçimlerini öğren 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 kapsayıcısı içinde başarıyla kurup çalıştırdın.

Yorumlar