Ir al contenido

Primeros pasos con YOLOv5 🚀 en Docker

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

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

Requisitos previos

Antes de empezar, asegúrate de tener instalado lo siguiente:

  1. Docker: Descargue e instale Docker desde el sitio web oficial de Docker. Docker es esencial para crear y gestionar contenedores.
  2. ControladoresNVIDIA (necesarios para GPU GPU): Asegúrate de tener instalados los controladores NVIDIA versión 455.23 o superior. Puedes descargar los últimos controladores desde el sitio web deNVIDIA.
  3. NVIDIA Container Toolkit (necesario para la compatibilidad con GPU ): Este kit de herramientas permite a los contenedores Docker acceder a las GPUs NVIDIA de tu máquina anfitriona. Sigue la guía oficial de instalación deNVIDIA Container Tool kit para obtener instrucciones detalladas.

Configuración de NVIDIA Container ToolkitGPU usuariosGPU )

En primer lugar, comprueba que los controladores NVIDIA están instalados correctamente ejecutando:

nvidia-smi

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

A continuación, instala NVIDIA Container Toolkit. Los siguientes comandos son típicos para sistemas basados en Debian como Ubuntu, pero consulta la guía oficial enlazada anteriormente para obtener instrucciones específicas para tu 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

Por último, comprueba que el tiempo de ejecución de NVIDIA está configurado y disponible para Docker:

docker info | grep -i runtime

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

Paso 1: Extraer la imagen Docker de YOLOv5

Ultralytics ofrece imágenes oficiales YOLOv5 en Centro Docker. En latest rastrea el commit más reciente del repositorio, asegurando que siempre obtenga la versión más reciente. Extrae la imagen utilizando 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 consultar todas las imágenes disponibles en el repositorioUltralytics YOLOv5 Docker Hub.

Paso 2: Ejecutar el contenedor Docker

Una vez extraída la imagen, puede ejecutarla como contenedor.

Uso exclusivo de CPU

Para ejecutar una instancia de contenedor interactiva utilizando sólo la CPU, utilice la opción -it bandera. En --ipc=host permite compartir el espacio de nombres IPC del host, lo que es importante para el acceso a memoria compartida.

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

Uso de GPU

Para habilitar el acceso a GPU dentro del contenedor, utilice la directiva --gpus bandera. Esto requiere que 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, ponderaciones de modelos, etc.) dentro del contenedor, utilice la función -v para montar un directorio 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

Sustituir /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: Utilizar YOLOv5 🚀 dentro del contenedor Docker.

Ya estás dentro del contenedor Docker de YOLOv5 . Desde aquí, puedes ejecutar comandos estándar YOLOv5 para varias tareas de Aprendizaje Automático y Aprendizaje Profundo 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

Explora la documentación para conocer el uso detallado de los distintos modos:

Obtenga más información sobre métricas de evaluación como Precision, Recall y mAP. Comprenda los distintos formatos de exportación, como ONNX, CoreMLy TFLite, y explore varias opciones de despliegue de modelos. Recuerde gestionar eficazmente los pesos de sus modelos.

Ejecutar YOLOv5 dentro de un contenedor Docker en GCP

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



Creado hace 1 año ✏️ Actualizado hace 1 mes

Comentarios