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
, 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:
- Docker: Descargue e instale Docker desde el sitio web oficial de Docker. Docker es esencial para crear y gestionar contenedores.
- 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.
- 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.
¡Enhorabuena! Ha configurado y ejecutado correctamente YOLOv5 dentro de un contenedor Docker.