ابدأ مع YOLOv5 🚀 في Docker#
مرحباً بك في دليل البدء السريع لـ Ultralytics YOLOv5 باستخدام Docker! يوفر هذا البرنامج التعليمي إرشادات خطوة بخطوة لإعداد وتشغيل YOLOv5 داخل حاوية Docker. يتيح لك استخدام Docker تشغيل YOLOv5 في بيئة معزولة ومتسقة، مما يبسيط عملية النشر وإدارة التبعيات عبر الأنظمة المختلفة. يسترشد هذا النهج بـ حوسبة الحاويات لتجميع التطبيق وتبعياته معا.
للحصول على طرق إعداد بديلة، راجع أدلة Colab Notebook
أو GCP Deep Learning VM أو Amazon AWS. للحصول على نظرة عامة حول استخدام Docker مع نماذج Ultralytics، راجع دليل البدء السريع لـ Ultralytics Docker.
المتطلبات الأساسية#
قبل البدء، تأكد من تثبيت ما يلي:
- Docker: قم بتنزيل وتثبيت Docker من موقع Docker الرسمي. يُعد Docker ضرورياً لإنشاء الحاويات وإدارتها.
- برامج تشغيل NVIDIA (مطلوبة لدعم GPU): تأكد من تثبيت برامج تشغيل NVIDIA بالإصدار 455.23 أو أحدث. يمكنك تنزيل أحدث برامج التشغيل من موقع NVIDIA.
- مجموعة أدوات حاويات NVIDIA (مطلوبة لدعم GPU): تتيح هذه المجموعة لحاويات Docker الوصول إلى وحدات معالجة الرسومات GPU الخاصة بجهاز المضيف. اتبع دليل تثبيت مجموعة أدوات حاويات NVIDIA الرسمي للحصول على إرشادات تفصيلية.
إعداد NVIDIA Container Toolkit (لمستخدمي GPU)#
أولاً، تحقق من تثبيت تعريفات NVIDIA بشكل صحيح عن طريق تشغيل:
nvidia-smiيجب أن يعرض هذا الأمر معلومات حول وحدة معالجة الرسومات (GPU) الخاصة بك وإصدار التعريف المثبت.
بعد ذلك، قم بتثبيت 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 updatesudo apt-get install -y nvidia-container-toolkitتحقق من أجهزة CDI باستخدام Docker#
قم بتشغيل nvidia-ctk cdi list للتأكد من توفر أجهزة CDI لوحدة معالجة الرسومات (تقوم خدمة nvidia-cdi-refresh الخاصة بالأداة بإنشاء المواصفات والحفاظ عليها تلقائيًا على الإصدار >= 1.18 من الأداة):
nvidia-ctk cdi listيجب أن ترى إدخالات مثل nvidia.com/gpu=0 و nvidia.com/gpu=all. على نظام Linux، تتطلب طلبات أجهزة CDI برنامج Docker الإصدار >= 28.2.0 ومجموعة أدوات حاويات NVIDIA الإصدار >= 1.18. يمكن أن تتسبب العلامة القديمة --gpus all في فقدان الوصول إلى GPU بعد إعادة تحميل برنامج المضيف الخفي، لذا قم بترقية مضيفات Linux الأقدم واستخدم --device بدلاً من ذلك.
الخطوة 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يمكنك تصفح جميع الصور المتاحة في مستودع Docker Hub لـ Ultralytics YOLOv5.
الخطوة 2: تشغيل حاوية Docker#
بمجرد سحب الصورة، يمكنك تشغيلها كحاوية.
استخدام CPU فقط#
لتشغيل مثيل حاوية تفاعلي باستخدام وحدة المعالجة المركزية CPU فقط، استخدم علامة -it. تتيح علامة --ipc=host مشاركة مساحة أسماء IPC الخاصة بالمضيف، وهو أمر مهم للوصول إلى الذاكرة المشتركة.
# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $tاستخدام GPU#
تمكين الوصول إلى GPU داخل الحاية، استخدم علامة CDI --device nvidia.com/gpu=.... يتطلب هذا تثبيت مجموعة أدوات حاويات NVIDIA بشكل صحيح.
# 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ارجع إلى مرجع تشغيل Docker لمزيد من التفاصيل حول خيارات الأوامر.
تركيب الدلائل المحلية#
للعمل مع ملفاتك المحلية (مجموعات البيانات، أوزان النماذج، إلخ) داخل الحاوية، استخدم علامة -v لتحميل دليل مضيف داخل الحاوية:
# 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 بالمسار الفعلي على جهازك و /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، واستكشف مختلف خيارات نشر النموذج. تذكر إدارة أوزان النموذج بفعالية.

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