Docker'da YOLOv5 🚀 ile Başla#
Ultralytics YOLOv5 Docker Hızlı Başlangıç Kılavuzu'na hoş geldin! Bu eğitim, bir Docker kapsayıcısında YOLOv5 kurup çalıştırmak için adım adım talimatlar sunar. Docker kullanarak YOLOv5'i yalıtılmış ve tutarlı bir ortamda çalıştırabilir, farklı sistemlerde dağıtımı ve bağımlılık yönetimini kolaylaştırabilirsin. Bu yaklaşım, uygulamayı ve bağımlılıklarını bir arada paketlemek için kapsayıcılaştırmadan yararlanır.
Alternatif kurulum yöntemleri için Colab Notebook
, 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:
- Docker: Docker'ı resmi Docker web sitesinden indirip yükle. Docker, kapsayıcı oluşturmak ve yönetmek için gereklidir.
- 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.
- 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-smiBu 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.listPaket listelerini güncelle ve NVIDIA Container Toolkit'i yükle:
sudo apt-get updatesudo apt-get install -y nvidia-container-toolkitCDI 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 listnvidia.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 $tMevcut 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 $tGPU 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 $tKomut 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! Burada Nesne Algılama 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 modelAyrıntılı kullanım için Özel Verilerle Eğitim ve Model Dışa Aktarma eğitimlerine bak.
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.

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=8gbir alternatiftir.Sürücünün çalıştığını doğrulamak için ana makinede
nvidia-smikomutunu çalıştır, NVIDIA Container Toolkit'innvidia-ctk cdi listile yüklü olduğunu doğrula ve--device nvidia.com/gpu=allkabul edilsin diye Docker'ın 28.2 veya daha yeni olduğundan emin ol.Ana makine dizinlerini
-v /path/on/host:/path/in/containerile bağla ve--dataile--projectdeğ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-txtile veya bunun yerine varsayılanruns/detect/çıktısına kaydet.