Ir al contenido

Comenzar con YOLOv5 🚀 en Docker

¡Bienvenido a la guía de inicio rápido de Docker de Ultralytics YOLOv5! Este tutorial proporciona instrucciones paso a paso para configurar y ejecutar YOLOv5 dentro de un contenedor de Docker. El uso de Docker le permite ejecutar YOLOv5 en un entorno aislado y consistente, lo que simplifica la implementación y la gestión de dependencias en diferentes sistemas. Este enfoque aprovecha la contenedorización para empaquetar la aplicación y sus dependencias juntas.

Para métodos de configuración alternativos, considere nuestro Cuaderno Colab Abrir en Colab Abrir en Kaggle, VM de aprendizaje profundo de GCP, o Amazon AWS guías. Para una visión general del uso de Docker con los modelos de Ultralytics, consulte la Guía de inicio rápido de Ultralytics Docker.

Prerrequisitos

Antes de comenzar, asegúrese de tener instalado lo siguiente:

  1. Docker: Descargue e instale Docker desde el sitio web oficial de Docker. Docker es esencial para crear y administrar contenedores.
  2. Controladores NVIDIA (Requerido para la compatibilidad con GPU): Asegúrese de tener instalados los controladores NVIDIA versión 455.23 o superior. Puede descargar los controladores más recientes desde el sitio web de NVIDIA.
  3. NVIDIA Container Toolkit (Requerido para la compatibilidad con GPU): Este conjunto de herramientas permite que los contenedores Docker accedan a las GPU NVIDIA de la máquina host. Siga la guía de instalación oficial de NVIDIA Container Toolkit para obtener instrucciones detalladas.

Configuración del NVIDIA Container Toolkit (Usuarios de GPU)

Primero, verifique que sus controladores NVIDIA estén instalados correctamente ejecutando:

nvidia-smi

Este comando debería mostrar información sobre su(s) GPU(s) y la versión del controlador instalado.

A continuación, instale el NVIDIA Container Toolkit. Los comandos a continuación son típicos para sistemas basados en Debian como Ubuntu, pero consulte la guía oficial vinculada anteriormente para obtener instrucciones específicas para su distribución:

# 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

Finalmente, verifique que el tiempo de ejecución de NVIDIA esté configurado y disponible para Docker:

docker info | grep -i runtime

Deberías ver nvidia listado como uno de los tiempos de ejecución disponibles.

Paso 1: Extraer la Imagen Docker de YOLOv5

Ultralytics proporciona imágenes oficiales de YOLOv5 en Docker Hub. El latest La etiqueta tag rastrea el commit más reciente del repositorio, asegurando que siempre obtenga la versión más nueva. Extraiga la imagen usando el siguiente comando:

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

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

Puede explorar todas las imágenes disponibles en el repositorio Ultralytics YOLOv5 Docker Hub.

Paso 2: Ejecute el contenedor Docker

Una vez que se extrae la imagen, puede ejecutarla como un contenedor.

Usando solo la CPU

Para ejecutar una instancia de contenedor interactiva utilizando solo la CPU, utiliza el siguiente comando: -it indicador. El --ipc=host El indicador permite compartir el espacio de nombres IPC del host, lo cual es importante para el acceso a la memoria compartida.

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

Usando la GPU

Para habilitar el acceso a la GPU dentro del contenedor, utiliza el siguiente comando: --gpus indicador. Esto requiere que el NVIDIA Container Toolkit esté instalado correctamente.

# 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

Consulte la referencia de ejecución de Docker para obtener más detalles sobre las opciones de comandos.

Montaje de directorios locales

Para trabajar con sus archivos locales (conjuntos de datos, pesos del modelo, etc.) dentro del contenedor, use el -v indicador para montar un directorio del host en el contenedor:

# 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

Reemplaza /path/on/host con la ruta real en su máquina y /path/in/container con la ruta deseada dentro del contenedor Docker (por ejemplo, /usr/src/datasets).

Paso 3: Utilice YOLOv5 🚀 dentro del contenedor Docker

¡Ahora está dentro del contenedor Docker de YOLOv5 en ejecución! Desde aquí, puede ejecutar comandos estándar de YOLOv5 para diversas tareas de Machine Learning y Deep Learning, como la Detección de Objetos.

# 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

Explore la documentación para obtener información detallada sobre el uso de los diferentes modos:

Obtenga más información sobre las métricas de evaluación como Precisión, Recall y mAP. Comprenda los diferentes formatos de exportación como ONNX, CoreML y TFLite, y explore varias Opciones de Implementación de Modelos. Recuerde administrar sus pesos del modelo de manera efectiva.

Ejecución de YOLOv5 dentro de un contenedor Docker en GCP

¡Enhorabuena! Ha configurado y ejecutado YOLOv5 correctamente dentro de un contenedor Docker.



📅 Creado hace 1 año ✏️ Actualizado hace 4 meses

Comentarios