Начни работу с 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 Container Toolkit (требуется для поддержки GPU): Этот инструментарий позволяет контейнерам Docker использовать GPU NVIDIA твоей хост-системы. Для получения подробных инструкций следуй официальному руководству по установке NVIDIA Container Toolkit.
Настройка NVIDIA Container Toolkit (для пользователей GPU)
Сначала проверь, что драйверы NVIDIA установлены правильно, выполнив команду:
nvidia-smiЭта команда должна отобразить информацию о твоем GPU (или 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 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 в списке доступных сред выполнения (runtimes).
Шаг 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 run.
Монтирование локальных директорий
Чтобы работать со своими локальными файлами (датасетами, весами моделей и т. д.) внутри контейнера, используй флаг -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Изучи документацию для получения подробной информации об использовании различных режимов:
Узнай больше о метриках оценки, таких как Precision, Recall и mAP. Разберись с различными форматами экспорта, такими как ONNX, CoreML и TFLite, и изучи различные варианты развертывания моделей. Не забывай эффективно управлять своими весами моделей.

Ты успешно настроил и запустил YOLOv5 внутри контейнера Docker.