تخطي إلى المحتوى

ابدأ مع YOLOv5 🚀 في Docker

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

للحصول على طرق إعداد بديلة، ضع في اعتبارك Colab Notebook افتح في Colab افتح في Kaggle, جهاز افتراضي للتعلم العميق من GCP، أو 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

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

بعد ذلك، قم بتثبيت مجموعة أدوات NVIDIA Container Toolkit. الأوامر أدناه نموذجية للأنظمة المستندة إلى دبيان مثل 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:

sudo apt-get update

تثبيت أحدث إصدار من nvidia

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

بشكل اختياري، يمكنك تثبيت إصدار محدد من nvidia عن طريق تعيين 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
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \
  | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo

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

sudo dnf clean expire-cache
sudo dnf check-update
sudo dnf install \
  nvidia-container-toolkit \
  nvidia-container-toolkit-base \
  libnvidia-container-tools \
  libnvidia-container1
اختياري: تثبيت إصدار محدد من nvidia

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

export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
sudo dnf 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 Runtime مع Docker

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

docker info | grep -i runtime

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

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

توفر 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.

الخطوة الثانية: تشغيل حاوية 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 flag. يتطلب هذا تثبيت 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 لمزيد من التفاصيل حول خيارات الأوامر.

تركيب الدلائل المحلية (Mounting Local Directories)

للعمل مع ملفاتك المحلية (مجموعات البيانات وأوزان النموذج وما إلى ذلك) داخل الحاوية، استخدم -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).

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

أنت الآن داخل حاوية Docker الخاصة بتشغيل YOLOv5! من هنا، يمكنك تنفيذ أوامر 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 على GCP

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



📅 أُنشئ منذ سنة واحدة ✏️ تم التحديث منذ 8 أيام

تعليقات