Empieza con YOLOv5 🚀 en Docker
¡Bienvenido a la guía de inicio rápido de Docker para Ultralytics YOLOv5! Este tutorial ofrece instrucciones paso a paso para configurar y ejecutar YOLOv5 dentro de un contenedor Docker. Usar Docker te permite ejecutar YOLOv5 en un entorno aislado y coherente, simplificando el despliegue y la gestión de dependencias en diferentes sistemas. Este enfoque aprovecha la containerización para empaquetar la aplicación junto con sus dependencias.
Para otros métodos de configuración, consulta nuestro Cuaderno de Colab
, nuestras guías para GCP Deep Learning VM o Amazon AWS. Para obtener una visión general del uso de Docker con modelos de Ultralytics, consulta la Guía de inicio rápido de Docker de Ultralytics.
Requisitos previos
Antes de empezar, asegúrate de tener instalado lo siguiente:
- Docker: Descarga e instala Docker desde el sitio web oficial de Docker. Docker es esencial para crear y gestionar contenedores.
- Controladores NVIDIA (Necesarios para soporte de GPU): Asegúrate de tener instalados los controladores NVIDIA versión 455.23 o superior. Puedes descargar los controladores más recientes desde el sitio web de NVIDIA.
- NVIDIA Container Toolkit (Necesario para soporte de GPU): Este kit de herramientas permite que los contenedores Docker accedan a las GPU NVIDIA de tu máquina anfitriona. Sigue la guía de instalación oficial de NVIDIA Container Toolkit para obtener instrucciones detalladas.
Configuración de NVIDIA Container Toolkit (Usuarios de GPU)
Primero, verifica que los controladores NVIDIA estén instalados correctamente ejecutando:
nvidia-smiEste comando debería mostrar información sobre tu(s) GPU(s) y la versión del controlador instalado.
A continuación, instala el NVIDIA Container Toolkit. Los comandos que aparecen a continuación son típicos para sistemas basados en Debian como Ubuntu y sistemas basados en RHEL como Fedora/CentOS, pero consulta la guía oficial enlazada anteriormente para obtener instrucciones específicas para tu distribución:
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.listActualiza las listas de paquetes e instala el paquete nvidia-container-toolkit:
sudo apt-get updateInstala la última versión de nvidia-container-toolkit:
sudo apt-get install -y nvidia-container-toolkit \
nvidia-container-toolkit-base libnvidia-container-tools \
libnvidia-container1Opcional: Instalar una versión específica de nvidia-container-toolkit
Opcionalmente, puedes instalar una versión específica del nvidia-container-toolkit configurando la variable de entorno 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 dockerVerificar el tiempo de ejecución NVIDIA con Docker
Ejecuta docker info | grep -i runtime para asegurarte de que nvidia aparece en la lista de tiempos de ejecución:
docker info | grep -i runtimeDeberías ver nvidia listado como uno de los motores de ejecución disponibles.
Paso 1: Descarga la imagen Docker de YOLOv5
Ultralytics ofrece imágenes oficiales de YOLOv5 en Docker Hub. La etiqueta latest rastrea la confirmación más reciente del repositorio, asegurando que siempre obtengas la versión más nueva. Descarga 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 $tPuedes explorar todas las imágenes disponibles en el repositorio de Docker Hub de Ultralytics YOLOv5.
Paso 2: Ejecuta el contenedor Docker
Una vez descargada la imagen, puedes ejecutarla como un contenedor.
Usando solo CPU
Para ejecutar una instancia de contenedor interactivo usando solo la CPU, usa la bandera -it. La bandera --ipc=host permite compartir el espacio de nombres IPC del anfitrión, lo cual es importante para el acceso a la memoria compartida.
# Run an interactive container instance using CPU
sudo docker run -it --runtime=nvidia --ipc=host $tUsando GPU
Para habilitar el acceso a la GPU dentro del contenedor, usa la bandera --gpus. Esto requiere que el NVIDIA Container Toolkit esté instalado correctamente.
# 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"' $tConsulta la referencia de ejecución de Docker para obtener más detalles sobre las opciones de los comandos.
Montaje de directorios locales
Para trabajar con tus archivos locales (conjuntos de datos, pesos de modelos, etc.) dentro del contenedor, usa la bandera -v para montar un directorio del anfitrión en el contenedor:
# 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 $tSustituye /path/on/host por la ruta real en tu máquina y /path/in/container por la ruta deseada dentro del contenedor Docker (por ejemplo, /usr/src/datasets).
Paso 3: Usa YOLOv5 🚀 dentro del contenedor Docker
¡Ya estás dentro del contenedor Docker de YOLOv5 en ejecución! Desde aquí, puedes ejecutar comandos estándar de YOLOv5 para diversas 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 modelExplora la documentación para conocer el uso detallado de los diferentes modos:
Aprende más sobre métricas de evaluación como Precisión, Recuerdo y mAP. Comprende los diferentes formatos de exportación como ONNX, CoreML y TFLite, y explora las diversas Opciones de despliegue de modelos. Recuerda gestionar eficazmente tus pesos de modelo.

Has configurado y ejecutado correctamente YOLOv5 dentro de un contenedor Docker.