ابدأ مع YOLOv5 🚀 في Docker

مرحباً بك في دليل البدء السريع لـ Ultralytics YOLOv5 على Docker! يوفر هذا البرنامج التعليمي إرشادات خطوة بخطوة لإعداد وتشغيل YOLOv5 داخل حاوية Docker. يتيح لك استخدام Docker تشغيل YOLOv5 في بيئة معزولة ومتسقة، مما يبسط عملية النشر وإدارة التبعيات عبر الأنظمة المختلفة. يستفيد هذا النهج من الحاويات لتغليف التطبيق وتبعيّاته معاً.

لطرق إعداد بديلة، يمكنك الاطلاع على دفتر ملاحظات Colab Open In Colab Open In Kaggle، أو أدلة GCP Deep Learning VM، أو Amazon AWS. للحصول على نظرة عامة حول استخدام Docker مع نماذج Ultralytics، راجع دليل البدء السريع لـ Ultralytics Docker.

المتطلبات الأساسية

قبل البدء، تأكد من تثبيت ما يلي:

  1. Docker: قم بتنزيل وتثبيت Docker من موقع Docker الرسمي. يُعد Docker ضرورياً لإنشاء الحاويات وإدارتها.
  2. تعريفات NVIDIA (مطلوبة لدعم GPU): تأكد من تثبيت تعريفات NVIDIA إصدار 455.23 أو أحدث. يمكنك تنزيل أحدث التعريفات من موقع NVIDIA.
  3. NVIDIA Container Toolkit (مطلوبة لدعم GPU): تسمح هذه الأداة لحاويات Docker بالوصول إلى وحدات معالجة الرسومات NVIDIA في جهازك المضيف. اتبع دليل تثبيت NVIDIA Container Toolkit الرسمي للحصول على إرشادات مفصلة.

إعداد NVIDIA Container Toolkit (لمستخدمي GPU)

أولاً، تحقق من تثبيت تعريفات NVIDIA بشكل صحيح عن طريق تشغيل:

nvidia-smi

يجب أن يعرض هذا الأمر معلومات حول وحدة (وحدات) معالجة الرسومات الخاصة بك وإصدار التعريف المثبت.

بعد ذلك، قم بتثبيت NVIDIA Container Toolkit. الأوامر أدناه نموذجية لأنظمة التشغيل المستندة إلى Debian مثل Ubuntu والأنظمة المستندة إلى RHEL مثل Fedora/CentOS، ولكن ارجع إلى الدليل الرسمي المرتبط أعلاه للحصول على إرشادات خاصة بنظام التوزيع الخاص بك:

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

قم بتحديث قوائم الحزم وتثبيت حزمة nvidia-container-toolkit:

sudo apt-get update

تثبيت أحدث إصدار من nvidia-container-toolkit:

sudo apt-get install -y nvidia-container-toolkit \
  nvidia-container-toolkit-base libnvidia-container-tools \
  libnvidia-container1
اختياري: تثبيت إصدار محدد من nvidia-container-toolkit

اختياريًا، يمكنك تثبيت إصدار محدد من nvidia-container-toolkit عن طريق تعيين متغير البيئة NVIDIA_CONTAINER_TOOLKIT_VERSION:

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 مع Docker

قم بتشغيل docker info | grep -i runtime للتأكد من ظهور nvidia في قائمة أوقات التشغيل:

docker info | grep -i runtime

يجب أن ترى nvidia مدرجة كواحدة من بيئات التشغيل المتاحة.

الخطوة 1: سحب صورة YOLOv5 Docker

توفر Ultralytics صور YOLOv5 رسمية على Docker Hub. تتبع العلامة latest أحدث التزام في المستودع، مما يضمن حصولك دائماً على أحدث إصدار. اسحب الصورة باستخدام الأمر التالي:

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

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

يمكنك تصفح جميع الصور المتاحة في مستودع Ultralytics YOLOv5 Docker Hub.

الخطوة 2: تشغيل حاوية Docker

بمجرد سحب الصورة، يمكنك تشغيلها كحاوية.

استخدام CPU فقط

لتشغيل مثيل حاوية تفاعلي باستخدام CPU فقط، استخدم العلم -it. يسمح العلم --ipc=host بمشاركة مساحة اسم IPC للمضيف، وهو أمر مهم للوصول إلى الذاكرة المشتركة.

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

استخدام GPU

لتمكين الوصول إلى GPU داخل الحاوية، استخدم العلم --gpus. يتطلب هذا تثبيت NVIDIA Container Toolkit بشكل صحيح.

# 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

راجع مرجع تشغيل Docker لمزيد من التفاصيل حول خيارات الأوامر.

تثبيت المجلدات المحلية

للعمل مع ملفاتك المحلية (مجموعات البيانات، أوزان النموذج، وما إلى ذلك) داخل الحاوية، استخدم العلم -v لتثبيت مجلد المضيف داخل الحاوية:

# 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 بالمسار الفعلي على جهازك و /path/in/container بالمسار المطلوب داخل حاوية Docker (على سبيل المثال، /usr/src/datasets).

الخطوة 3: استخدام YOLOv5 🚀 داخل حاوية Docker

أنت الآن داخل حاوية YOLOv5 Docker قيد التشغيل! من هنا، يمكنك تنفيذ أوامر YOLOv5 القياسية لمختلف مهام تعلم الآلة والتعلم العميق مثل اكتشاف الكائنات.

# 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

استكشف التوثيق لمعرفة الاستخدام التفصيلي للأوضاع المختلفة:

تعرف على المزيد حول مقاييس التقييم مثل الدقة، الاستدعاء، وmAP. افهم تنسيقات التصدير المختلفة مثل ONNX، وCoreML، وTFLite، واستكشف خيارات نشر النماذج المختلفة. تذكر إدارة أوزان النموذج بفعالية.

Running YOLOv5 inside a Docker container on GCP

لقد قمت بنجاح بإعداد وتشغيل YOLOv5 داخل حاوية Docker.

التعليقات