Ultralytics YOLO27: Bekleme listesine katıl.
Başla

Docker'da YOLOv5 🚀 ile Başla#

Bu eğitim, YOLOv5'i bir Docker kapsayıcısında kurup çalıştırmak için adım adım yönergeler sunar. YOLOv5'i Docker ile çalıştırmak, yalıtılmış ve tutarlı bir ortam sağlayarak farklı sistemlerde dağıtımı ve bağımlılık yönetimini kolaylaştırı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ını incele. Docker'ın Ultralytics modelleriyle genel kullanımına ilişkin bilgi için Ultralytics Docker Hızlı Başlangıç Kılavuzu sayfasına bak.

Ön koşullar#

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

  1. Docker: Docker'ı resmi Docker web sitesinden indirip yükle. 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ü yüklediğinden 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 makinedeki 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ı)#

Öncelikle aşağıdaki komutu çalıştırarak NVIDIA sürücülerinin doğru şekilde yüklendiğini doğrula:

nvidia-smi

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

Ardından NVIDIA Container Toolkit'i yükle. Aşağıdaki komutlar Ubuntu gibi Debian tabanlı ve Fedora/CentOS gibi RHEL tabanlı sistemlerde yaygın olarak kullanılır; 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 Aygıtlarını Docker ile Doğrulama#

GPU CDI aygıtlarının kullanılabilir olduğunu doğrulamak için nvidia-ctk cdi list komutunu çalıştır (toolkit'in nvidia-cdi-refresh hizmeti, toolkit >= 1.18 olduğunda belirtimi otomatik olarak oluşturur ve yönetir):

nvidia-ctk cdi list

nvidia.com/gpu=0 ve nvidia.com/gpu=all gibi girdiler görmelisin. Linux'ta CDI aygıt istekleri için Docker >= 28.2.0 ve NVIDIA Container Toolkit >= 1.18 gerekir. Eski --gpus all işareti, ana makinedeki arka plan hizmeti yeniden yüklendikten sonra GPU erişimini kaybettirebilir; bu nedenle eski Linux ana makinelerini yükselt ve onun yerine --device kullan.

Adım 1: YOLOv5 Docker görüntüsünü çek#

Ultralytics, Docker Hub'da resmi YOLOv5 görüntüleri sunar. latest etiketi, deponun en son işlemesini izleyerek her zaman en yeni sürümü edinmeni sağlar. Görüntüyü aşağıdaki komutla ç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 görüntülere Ultralytics YOLOv5 Docker Hub deposundan göz atabilirsin.

Adım 2: Docker kapsayıcısını çalıştır#

Görüntü çekildikten sonra bunu kapsayıcı olarak çalıştırabilirsin.

Yalnızca CPU kullanma#

Yalnızca CPU kullanarak etkileşimli bir kapsayıcı örneği çalıştırmak için -it işaretini kullan. --ipc=host işareti, paylaşılan belleğe erişim 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 kullanma#

Kapsayıcı içinde GPU erişimini etkinleştirmek için --device nvidia.com/gpu=... CDI işaretini kullan. Bunun için NVIDIA Container Toolkit'in doğru şekilde yüklenmiş 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 bilgi için Docker run başvurusuna bak.

Yerel dizinleri bağlama#

Yerel dosyalarınla (veri kümeleri, model ağırlıkları vb.) kapsayıcı içinde çalışmak için ana makine dizinini kapsayıcıya bağlayan -v işaretini 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ında istediğiniz yolu yaz (ör. /usr/src/datasets).

Adım 3: YOLOv5 🚀'i Docker kapsayıcısında kullan#

Artık çalışan YOLOv5 Docker kapsayıcısının içindesin! Buradan makine öğrenimi ve derin öğrenme görevleri için standart YOLOv5 komutlarını, örneğin nesne algılamayı, ç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

Ayrıntılı kullanım için Özel Verilerle Eğitim ve Model Dışa Aktarma eğitimlerine bak.

val.py hassaslık, duyarlılık ve mAP değerlerini raporlar; export.py ise seçtiğin dağıtım seçeneği için ONNX, CoreML ve TFLite gibi biçimler yazar.

Running YOLOv5 inside a Docker container on GCP

YOLOv5'i Docker kapsayıcısında başarıyla kurup çalıştırdın.

Sık Sorulan Sorular#

  • PyTorch veri yükleyici çalışanları tensörleri paylaşılan bellek üzerinden paylaşır ve Docker'ın varsayılan 64 MB boyutu çok küçüktür. --ipc=host, ana makinenin bellek bölümünü paylaşır; kapsayıcıyı yalıtılmış tutmayı tercih ediyorsan --shm-size=8g bir alternatiftir.

  • Sürücünün çalıştığını doğrulamak için ana makinede nvidia-smi komutunu çalıştır, NVIDIA Container Toolkit'in nvidia-ctk cdi list ile yüklü olduğunu doğrula ve --device nvidia.com/gpu=all kabul edilsin diye Docker'ın 28.2 veya daha yeni olduğundan emin ol.

  • Ana makine dizinlerini -v /path/on/host:/path/in/container ile bağla ve --data ile --project değerlerini bağlanan yolları gösterecek şekilde ayarla. Kapsayıcı kaldırıldığında, içinde başka yerlere yazılan dosyalar silinir.

  • Evet, ancak kapsayıcının bir görüntü sunucusuna erişmesi gerekir. Ultralytics Docker kılavuzundaki X11 ve Wayland talimatlarına bak. Görüntü sunucusu olmadan sonuçları --save-txt ile veya bunun yerine varsayılan runs/detect/ çıktısına kaydet.

Yorumlar3

Bir soru sor, sonuçlarını paylaş veya başka birine yardım et.

  1. Letícia RamaLetícia Rama

    Hello,

    Is this workflow suitable for other YOLO families, such as YOLO26?

    1. Paula DerrengerPaula DerrengerUltralytics

      Yes—the same Docker concepts apply to YOLO26, but use the current Ultralytics Docker Quickstart and ultralytics/ultralytics images rather than the YOLOv5-specific image. Please continue dropping any setup questions in this discussion so the Ultralytics team can assist.

      1