Начните работу с YOLOv5 🚀 в Docker
Добро пожаловать в руководство по быстрому старту Ultralytics YOLOv5 Docker! Этот учебник содержит пошаговые инструкции по настройке и запуску YOLOv5 внутри Docker-контейнера. Использование Docker позволяет запускать YOLOv5 в изолированной, согласованной среде, упрощая развертывание и управление зависимостями в различных системах. Этот подход использует контейнеризацию для упаковки приложения и его зависимостей вместе.
Для альтернативных методов настройки рассмотрите наши Блокнот Colab
, GCP Deep Learning VM, или Amazon AWS руководства. Общий обзор использования Docker с моделями Ultralytics см. в разделе Краткое руководство по Ultralytics Docker.
Предварительные требования
Прежде чем начать, убедитесь, что у вас установлено следующее:
- Docker: Скачайте и установите Docker с официального сайта Docker. Docker необходим для создания и управления контейнерами.
- Драйверы NVIDIA (требуются для поддержки GPU): Убедитесь, что у вас установлены драйверы NVIDIA версии 455.23 или выше. Вы можете скачать последние драйверы с веб-сайта NVIDIA.
- NVIDIA Container Toolkit (требуется для поддержки GPU): Этот инструментарий позволяет контейнерам Docker получать доступ к GPU NVIDIA вашей хост-машины. Следуйте официальному руководству по установке NVIDIA Container Toolkit для получения подробных инструкций.
Настройка NVIDIA Container Toolkit (для пользователей GPU)
Сначала убедитесь, что ваши драйверы NVIDIA установлены правильно, выполнив:
nvidia-smi
Эта команда должна отобразить информацию о вашем(их) GPU и установленной версии драйвера.
Затем установите NVIDIA Container Toolkit. Приведенные ниже команды типичны для систем на базе Debian, таких как Ubuntu, но обратитесь к официальному руководству, ссылка на которое приведена выше, для получения инструкций, специфичных для вашего дистрибутива:
# Add NVIDIA package repositories (refer to official guide for latest setup)
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
# Update package list and install the toolkit
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# Configure Docker to use the NVIDIA runtime
sudo nvidia-ctk runtime configure --runtime=docker
# Restart Docker service to apply changes
sudo systemctl restart docker
Наконец, убедитесь, что среда выполнения NVIDIA настроена и доступна для Docker:
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.
Шаг 2: Запустите Docker-контейнер
После того, как изображение будет извлечено, вы можете запустить его как контейнер.
Использование только CPU
Чтобы запустить интерактивный экземпляр контейнера, используя только CPU, используйте -it
флаг. The --ipc=host
флаг разрешает совместное использование пространства имен IPC хоста, что важно для доступа к общей памяти.
# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $t
Использование GPU
Чтобы включить доступ к GPU внутри контейнера, используйте --gpus
флаг. Для этого необходимо правильно установить NVIDIA Container Toolkit.
# Run with access to all available GPUs
sudo docker run -it --ipc=host --gpus all $t
# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --ipc=host --gpus '"device=2,3"' $t
Для получения более подробной информации о параметрах команд обратитесь к Docker run reference.
Монтирование локальных каталогов
Чтобы работать с локальными файлами (наборами данных, весами моделей и т. д.) внутри контейнера, используйте -v
флаг для монтирования каталога хоста в контейнер:
# Mount /path/on/host (your local machine) to /path/in/container (inside the container)
sudo docker run -it --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 контейнера
Теперь вы находитесь внутри работающего 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
Ознакомьтесь с документацией для подробного использования различных режимов:
Узнайте больше о метриках оценки, таких как Precision, Recall и mAP. Ознакомьтесь с различными форматами экспорта, такими как ONNX, CoreML и TFLite, а также изучите различные варианты развертывания моделей. Не забывайте эффективно управлять весами вашей модели.
Поздравляем! Вы успешно настроили и запустили YOLOv5 внутри Docker-контейнера.