Ir al contenido

Entrenamiento de Modelos con Ultralytics YOLO

Ecosistema e integraciones de Ultralytics YOLO

Introducción

El entrenamiento de un modelo de aprendizaje profundo implica alimentarlo con datos y ajustar sus parámetros para que pueda hacer predicciones precisas. El modo Train en Ultralytics YOLO11 está diseñado para un entrenamiento eficaz y eficiente de modelos de detección de objetos, utilizando al máximo las capacidades del hardware moderno. Esta guía tiene como objetivo cubrir todos los detalles que necesitas para empezar a entrenar tus propios modelos utilizando el sólido conjunto de características de YOLO11.



Ver: Cómo entrenar un modelo YOLO en tu conjunto de datos personalizado en Google Colab.

¿Por qué elegir Ultralytics YOLO para el entrenamiento?

Aquí hay algunas razones convincentes para optar por el modo Train de YOLO11:

  • Eficiencia: Aprovecha al máximo tu hardware, ya sea que estés en una configuración de una sola GPU o escalando a través de múltiples GPUs.
  • Versatilidad: Entrena en conjuntos de datos personalizados además de los disponibles como COCO, VOC e ImageNet.
  • Fácil de usar: Interfaces sencillas pero potentes de CLI y python para una experiencia de entrenamiento directa.
  • Flexibilidad de hiperparámetros: Una amplia gama de hiperparámetros personalizables para ajustar el rendimiento del modelo.

Características clave del modo Train

Las siguientes son algunas características notables del modo Train de YOLO11:

  • Descarga automática de conjuntos de datos: Los conjuntos de datos estándar como COCO, VOC e ImageNet se descargan automáticamente en el primer uso.
  • Soporte Multi-GPU: Escale sus esfuerzos de entrenamiento sin problemas a través de múltiples GPU para acelerar el proceso.
  • Configuración de hiperparámetros: La opción de modificar los hiperparámetros a través de archivos de configuración YAML o argumentos de la CLI.
  • Visualización y monitorización: Seguimiento en tiempo real de las métricas de entrenamiento y visualización del proceso de aprendizaje para obtener mejores perspectivas.

Consejo

  • Los conjuntos de datos de YOLO11 como COCO, VOC, ImageNet y muchos otros se descargan automáticamente en el primer uso, es decir, yolo train data=coco.yaml

Ejemplos de uso

Entrena YOLO11n en el conjunto de datos COCO8 para 100 épocas con un tamaño de imagen de 640. El dispositivo de entrenamiento se puede especificar utilizando el device argumento. Si no se pasa ningún argumento, se utilizará la GPU device=0 si está disponible, de lo contrario device='cpu' se utilizará la CPU. Consulte la sección Argumentos a continuación para obtener una lista completa de los argumentos de entrenamiento.

Error de multiprocesamiento de Windows

En Windows, puede recibir un RuntimeError al iniciar el entrenamiento como un script. Añada un if __name__ == "__main__": bloquea antes de tu código de entrenamiento para resolverlo.

Ejemplo de entrenamiento con una sola GPU y CPU

El dispositivo se determina automáticamente. Si hay una GPU disponible, se utilizará (dispositivo CUDA 0 predeterminado); de lo contrario, el entrenamiento comenzará en la CPU.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.yaml")  # build a new model from YAML
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo11n.yaml").load("yolo11n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolo11n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolo11n.yaml pretrained=yolo11n.pt epochs=100 imgsz=640

Entrenamiento Multi-GPU

El entrenamiento Multi-GPU permite una utilización más eficiente de los recursos de hardware disponibles al distribuir la carga de entrenamiento entre múltiples GPU. Esta característica está disponible a través de la API de python y la interfaz de línea de comandos. Para habilitar el entrenamiento Multi-GPU, especifique los IDs de los dispositivos GPU que desea utilizar.

Ejemplo de entrenamiento Multi-GPU

Para entrenar con 2 GPU, dispositivos CUDA 0 y 1, utilice los siguientes comandos. Amplíe a GPU adicionales según sea necesario.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])

# Train the model with the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])
# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=0,1

# Use the two most idle GPUs
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=-1,-1

Entrenamiento con GPU Inactiva

El Entrenamiento con GPU Inactiva permite la selección automática de las GPU menos utilizadas en sistemas multi-GPU, optimizando el uso de recursos sin selección manual de GPU. Esta función identifica las GPU disponibles basándose en métricas de utilización y disponibilidad de VRAM.

Ejemplo de Entrenamiento con GPU Inactiva

Para seleccionar y utilizar automáticamente la(s) GPU(s) más inactiva(s) para el entrenamiento, utilice el -1 parámetro device. Esto es particularmente útil en entornos informáticos compartidos o servidores con múltiples usuarios.

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train using the single most idle GPU
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=-1)

# Train using the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])
# Start training using the single most idle GPU
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640 device=-1

# Start training using the two most idle GPUs
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640 device=-1,-1

El algoritmo de selección automática prioriza las GPU con:

  1. Porcentajes de utilización de corriente más bajos
  2. Mayor memoria disponible (VRAM libre)
  3. Menor temperatura y consumo de energía

Esta característica es especialmente valiosa en entornos informáticos compartidos o al ejecutar múltiples trabajos de entrenamiento en diferentes modelos. Se adapta automáticamente a las condiciones cambiantes del sistema, garantizando una asignación óptima de recursos sin intervención manual.

Entrenamiento MPS en Apple Silicon

Con el soporte para chips de silicio de Apple integrados en los modelos YOLO de Ultralytics, ahora es posible entrenar sus modelos en dispositivos que utilizan el potente marco Metal Performance Shaders (MPS). El MPS ofrece una forma de alto rendimiento de ejecutar tareas de computación y procesamiento de imágenes en el silicio personalizado de Apple.

Para habilitar el entrenamiento en chips de silicio de Apple, debe especificar 'mps' como su dispositivo al iniciar el proceso de entrenamiento. A continuación, se muestra un ejemplo de cómo podría hacer esto en python y a través de la línea de comandos:

Ejemplo de entrenamiento MPS

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model with MPS
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")
# Start training from a pretrained *.pt model using MPS
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=mps

Al aprovechar la potencia computacional de los chips de silicio de Apple, esto permite un procesamiento más eficiente de las tareas de entrenamiento. Para obtener una guía más detallada y opciones de configuración avanzadas, consulte la documentación de PyTorch MPS.

Reanudación de Entrenamientos Interrumpidos

Reanudar el entrenamiento desde un estado guardado previamente es una característica crucial cuando se trabaja con modelos de aprendizaje profundo. Esto puede ser útil en varios escenarios, como cuando el proceso de entrenamiento se ha interrumpido inesperadamente, o cuando desea continuar entrenando un modelo con nuevos datos o para más épocas.

Cuando se reanuda el entrenamiento, Ultralytics YOLO carga los pesos del último modelo guardado y también restaura el estado del optimizador, el programador de tasa de aprendizaje y el número de época. Esto le permite continuar el proceso de entrenamiento sin problemas desde donde lo dejó.

Puede reanudar fácilmente el entrenamiento en Ultralytics YOLO configurando el resume argumento en True al llamar al train método, y especificando la ruta al .pt archivo que contiene los pesos del modelo parcialmente entrenado.

A continuación, se muestra un ejemplo de cómo reanudar un entrenamiento interrumpido usando python y a través de la línea de comandos:

Ejemplo de reanudación del entrenamiento

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/last.pt")  # load a partially trained model

# Resume training
results = model.train(resume=True)
# Resume an interrupted training
yolo train resume model=path/to/last.pt

Al establecer resume=True, la train función continuará el entrenamiento desde donde lo dejó, utilizando el estado almacenado en el archivo 'path/to/last.pt'. Si el resume argumento se omite o se establece en False, la train la función iniciará una nueva sesión de entrenamiento.

Recuerde que los puntos de control se guardan al final de cada época de forma predeterminada, o a intervalos fijos utilizando el save_period argumento, por lo que debe completar al menos 1 época para reanudar una ejecución de entrenamiento.

Ajustes de Entrenamiento

La configuración de entrenamiento para los modelos YOLO abarca varios hiperparámetros y configuraciones utilizados durante el proceso de entrenamiento. Estos ajustes influyen en el rendimiento, la velocidad y la precisión del modelo. Los ajustes clave de entrenamiento incluyen el tamaño del lote, la tasa de aprendizaje, el momento y la disminución del peso. Además, la elección del optimizador, la función de pérdida y la composición del conjunto de datos de entrenamiento pueden afectar el proceso de entrenamiento. La optimización y la experimentación cuidadosa con estos ajustes son cruciales para optimizar el rendimiento.

Argumento Tipo Predeterminado Descripción
model str None Especifica el archivo del modelo para el entrenamiento. Acepta una ruta a un .pt modelo preentrenado o a un .yaml archivo de configuración. Esencial para definir la estructura del modelo o inicializar los pesos.
data str None Ruta al archivo de configuración del conjunto de datos (p. ej., coco8.yaml). Este archivo contiene parámetros específicos del conjunto de datos, incluyendo las rutas al entrenamiento y a los datos de validación, los nombres de las clases y el número de clases.
epochs int 100 Número total de épocas de entrenamiento. Cada época representa un pase completo sobre todo el conjunto de datos. El ajuste de este valor puede afectar la duración del entrenamiento y el rendimiento del modelo.
time float None Tiempo máximo de entrenamiento en horas. Si se establece, esto anula el epochs argumento, que permite que el entrenamiento se detenga automáticamente tras la duración especificada. Útil para escenarios de entrenamiento con restricciones de tiempo.
patience int 100 Número de épocas que se esperan sin mejora en las métricas de validación antes de detener el entrenamiento anticipadamente. Ayuda a prevenir el sobreajuste deteniendo el entrenamiento cuando el rendimiento se estanca.
batch int o float 16 Tamaño del lote (Batch size), con tres modos: establecido como un entero (p. ej., batch=16), modo automático para el 60% de utilización de la memoria de la GPU (batch=-1), o modo automático con fracción de utilización especificada (batch=0.70).
imgsz int o list 640 Tamaño de imagen objetivo para el entrenamiento. Todas las imágenes se redimensionan a esta dimensión antes de ser introducidas en el modelo. Afecta a la precisión del modelo y a la complejidad computacional.
save bool True Permite guardar los puntos de control del entrenamiento y los pesos finales del modelo. Útil para reanudar el entrenamiento o la implementación del modelo.
save_period int -1 Frecuencia de guardado de los puntos de control del modelo, especificada en épocas. Un valor de -1 desactiva esta función. Útil para guardar modelos provisionales durante sesiones de entrenamiento largas.
cache bool False Permite el almacenamiento en caché de las imágenes del conjunto de datos en la memoria (True/ram), en el disco (disk), o lo desactiva (False). Mejora la velocidad de entrenamiento al reducir las operaciones de E/S en el disco a costa de un mayor uso de la memoria.
device int o str o list None Especifica el(los) dispositivo(s) computacional(es) para el entrenamiento: una sola GPU (device=0), múltiples GPUs (device=[0,1]), CPU (device=cpu), MPS para Apple silicon (device=mps), o la selección automática de la GPU más inactiva (device=-1) o varias GPU inactivas (device=[-1,-1])
workers int 8 Número de hilos de trabajo para la carga de datos (por RANK si se entrena con múltiples GPU). Influye en la velocidad del preprocesamiento de los datos y en la alimentación del modelo, especialmente útil en configuraciones con múltiples GPU.
project str None Nombre del directorio del proyecto donde se guardan los resultados del entrenamiento. Permite un almacenamiento organizado de los diferentes experimentos.
name str None Nombre de la ejecución del entrenamiento. Se utiliza para crear un subdirectorio dentro de la carpeta del proyecto, donde se almacenan los registros y las salidas del entrenamiento.
exist_ok bool False Si es True, permite sobrescribir un directorio de proyecto/nombre existente. Útil para la experimentación iterativa sin necesidad de borrar manualmente las salidas anteriores.
pretrained bool o str True Determina si se debe comenzar el entrenamiento a partir de un modelo preentrenado. Puede ser un valor booleano o una ruta de cadena a un modelo específico desde el cual cargar los pesos. Mejora la eficiencia del entrenamiento y el rendimiento del modelo.
optimizer str 'auto' Elección del optimizador para el entrenamiento. Las opciones incluyen SGD, Adam, AdamW, NAdam, RAdam, RMSProp etc., o auto para la selección automática basada en la configuración del modelo. Afecta la velocidad y la estabilidad de la convergencia.
seed int 0 Establece la semilla aleatoria para el entrenamiento, asegurando la reproducibilidad de los resultados en ejecuciones con las mismas configuraciones.
deterministic bool True Fuerza el uso de algoritmos deterministas, asegurando la reproducibilidad, pero puede afectar el rendimiento y la velocidad debido a la restricción de algoritmos no deterministas.
single_cls bool False Trata todas las clases en conjuntos de datos de múltiples clases como una sola clase durante el entrenamiento. Útil para tareas de clasificación binaria o cuando se enfoca en la presencia de objetos en lugar de la clasificación.
classes list[int] None Especifica una lista de IDs de clase para entrenar. Útil para filtrar y centrarse solo en ciertas clases durante el entrenamiento.
rect bool False Habilita el entrenamiento rectangular, optimizando la composición del lote para un relleno mínimo. Puede mejorar la eficiencia y la velocidad, pero puede afectar la precisión del modelo.
multi_scale bool False Permite el entrenamiento a múltiples escalas aumentando/disminuyendo imgsz hasta un factor de 0.5 durante el entrenamiento. Entrena el modelo para que sea más preciso con múltiples imgsz durante la inferencia.
cos_lr bool False Utiliza un programador de tasa de aprendizaje coseno, ajustando la tasa de aprendizaje siguiendo una curva coseno a lo largo de las épocas. Ayuda a administrar la tasa de aprendizaje para una mejor convergencia.
close_mosaic int 10 Desactiva el aumento de datos de mosaico en las últimas N épocas para estabilizar el entrenamiento antes de completarse. Establecer en 0 desactiva esta función.
resume bool False Reanuda el entrenamiento desde el último punto de control guardado. Carga automáticamente los pesos del modelo, el estado del optimizador y el recuento de épocas, continuando el entrenamiento sin problemas.
amp bool True Habilita el entrenamiento Automático de Precisión Mixta (AMP), reduciendo el uso de memoria y posiblemente acelerando el entrenamiento con un impacto mínimo en la precisión.
fraction float 1.0 Especifica la fracción del conjunto de datos que se utilizará para el entrenamiento. Permite el entrenamiento en un subconjunto del conjunto de datos completo, útil para experimentos o cuando los recursos son limitados.
profile bool False Permite la creación de perfiles de velocidades de ONNX y TensorRT durante el entrenamiento, útil para optimizar la implementación del modelo.
freeze int o list None Congela las primeras N capas del modelo o las capas especificadas por índice, reduciendo el número de parámetros entrenables. Útil para el ajuste fino o el aprendizaje por transferencia.
lr0 float 0.01 Tasa de aprendizaje inicial (es decir, SGD=1E-2, Adam=1E-3). Ajustar este valor es crucial para el proceso de optimización, ya que influye en la rapidez con la que se actualizan los pesos del modelo.
lrf float 0.01 Tasa de aprendizaje final como una fracción de la tasa inicial = (lr0 * lrf), utilizada junto con los programadores para ajustar la tasa de aprendizaje con el tiempo.
momentum float 0.937 Factor de momento para SGD o beta1 para optimizadores Adam, que influye en la incorporación de gradientes pasados en la actualización actual.
weight_decay float 0.0005 Término de regularización L2, que penaliza los pesos grandes para evitar el sobreajuste.
warmup_epochs float 3.0 Número de épocas para el calentamiento de la tasa de aprendizaje, aumentando gradualmente la tasa de aprendizaje desde un valor bajo hasta la tasa de aprendizaje inicial para estabilizar el entrenamiento al principio.
warmup_momentum float 0.8 Momento inicial para la fase de calentamiento, ajustándose gradualmente al momento establecido durante el período de calentamiento.
warmup_bias_lr float 0.1 Tasa de aprendizaje para los parámetros de sesgo durante la fase de calentamiento, lo que ayuda a estabilizar el entrenamiento del modelo en las épocas iniciales.
box float 7.5 Peso del componente de pérdida de la caja en la función de pérdida, que influye en la cantidad de énfasis que se pone en la predicción precisa de las coordenadas del cuadro delimitador.
cls float 0.5 Peso de la pérdida de clasificación en la función de pérdida total, que afecta la importancia de la predicción correcta de la clase en relación con otros componentes.
dfl float 1.5 Peso de la pérdida focal de distribución, utilizada en ciertas versiones de YOLO para la clasificación de grano fino.
pose float 12.0 Peso de la pérdida de pose en los modelos entrenados para la estimación de la pose, lo que influye en el énfasis en la predicción precisa de los puntos clave de la pose.
kobj float 2.0 Peso de la pérdida de objetividad de los puntos clave en los modelos de estimación de pose, equilibrando la confianza de la detección con la precisión de la pose.
nbs int 64 Tamaño de lote nominal para la normalización de la pérdida.
overlap_mask bool True Determina si las máscaras de objeto deben fusionarse en una sola máscara para el entrenamiento, o mantenerse separadas para cada objeto. En caso de superposición, la máscara más pequeña se superpone a la máscara más grande durante la fusión.
mask_ratio int 4 Ratio de submuestreo para las máscaras de segmentación, que afecta la resolución de las máscaras utilizadas durante el entrenamiento.
dropout float 0.0 Tasa de dropout para la regularización en tareas de clasificación, previniendo el sobreajuste al omitir aleatoriamente unidades durante el entrenamiento.
val bool True Habilita la validación durante el entrenamiento, permitiendo la evaluación periódica del rendimiento del modelo en un conjunto de datos separado.
plots bool False Genera y guarda gráficos de las métricas de entrenamiento y validación, así como ejemplos de predicción, proporcionando información visual sobre el rendimiento del modelo y la progresión del aprendizaje.

Nota sobre la configuración del tamaño de lote

El batch El argumento puede configurarse de tres maneras:

  • Tamaño de Lote Fijo: Establezca un valor entero (p. ej., batch=16), especificando directamente el número de imágenes por lote.
  • Modo Automático (60% de Memoria de la GPU): Use batch=-1 para ajustar automáticamente el tamaño del lote para una utilización de memoria CUDA de aproximadamente el 60%.
  • Modo Automático con Fracción de Utilización: Establezca un valor de fracción (p. ej., batch=0.70) para ajustar el tamaño del lote en función de la fracción especificada de uso de la memoria de la GPU.

Ajustes de Aumento y Hiperparámetros

Las técnicas de aumento son esenciales para mejorar la robustez y el rendimiento de los modelos YOLO al introducir variabilidad en los datos de entrenamiento, lo que ayuda al modelo a generalizar mejor a datos no vistos. La siguiente tabla describe el propósito y el efecto de cada argumento de aumento:

Argumento Tipo Predeterminado Rango Descripción
hsv_h float 0.015 0.0 - 1.0 Ajusta el tono de la imagen en una fracción de la rueda de colores, introduciendo variabilidad de color. Ayuda al modelo a generalizar en diferentes condiciones de iluminación.
hsv_s float 0.7 0.0 - 1.0 Altera la saturación de la imagen en una fracción, afectando la intensidad de los colores. Útil para simular diferentes condiciones ambientales.
hsv_v float 0.4 0.0 - 1.0 Modifica el valor (brillo) de la imagen en una fracción, ayudando al modelo a funcionar bien en diversas condiciones de iluminación.
degrees float 0.0 0.0 - 180 Rota la imagen aleatoriamente dentro del rango de grados especificado, mejorando la capacidad del modelo para reconocer objetos en varias orientaciones.
translate float 0.1 0.0 - 1.0 Traslada la imagen horizontal y verticalmente en una fracción del tamaño de la imagen, ayudando a aprender a detectar objetos parcialmente visibles.
scale float 0.5 >=0.0 Escala la imagen mediante un factor de ganancia, simulando objetos a diferentes distancias de la cámara.
shear float 0.0 -180 - +180 Cizalla la imagen según un grado especificado, imitando el efecto de objetos vistos desde diferentes ángulos.
perspective float 0.0 0.0 - 0.001 Aplica una transformación de perspectiva aleatoria a la imagen, mejorando la capacidad del modelo para comprender objetos en el espacio 3D.
flipud float 0.0 0.0 - 1.0 Invierte la imagen verticalmente con la probabilidad especificada, aumentando la variabilidad de los datos sin afectar las características del objeto.
fliplr float 0.5 0.0 - 1.0 Invierte la imagen de izquierda a derecha con la probabilidad especificada, útil para aprender objetos simétricos y aumentar la diversidad del conjunto de datos.
bgr float 0.0 0.0 - 1.0 Invierte los canales de la imagen de RGB a BGR con la probabilidad especificada, útil para aumentar la robustez ante un orden incorrecto de los canales.
mosaic float 1.0 0.0 - 1.0 Combina cuatro imágenes de entrenamiento en una, simulando diferentes composiciones de escena e interacciones de objetos. Altamente eficaz para la comprensión de escenas complejas.
mixup float 0.0 0.0 - 1.0 Mezcla dos imágenes y sus etiquetas, creando una imagen compuesta. Mejora la capacidad del modelo para generalizar al introducir ruido en las etiquetas y variabilidad visual.
cutmix float 0.0 0.0 - 1.0 Combina porciones de dos imágenes, creando una mezcla parcial mientras mantiene regiones distintas. Mejora la robustez del modelo al crear escenarios de oclusión.
copy_paste float 0.0 0.0 - 1.0 Solo segmentación. Copia y pega objetos a través de imágenes para aumentar las instancias de objetos.
copy_paste_mode str flip - Solo segmentación. Especifica el copy-paste estrategia a utilizar. Las opciones incluyen 'flip' y 'mixup'.
auto_augment str randaugment - Solo clasificación. Aplica una política de aumento predefinida ('randaugment', 'autoaugment', o 'augmix') para mejorar el rendimiento del modelo a través de la diversidad visual.
erasing float 0.4 0.0 - 0.9 Solo clasificación. Borra aleatoriamente regiones de la imagen durante el entrenamiento para animar al modelo a centrarse en características menos obvias.

Estos ajustes se pueden modificar para satisfacer los requisitos específicos del conjunto de datos y la tarea en cuestión. Experimentar con diferentes valores puede ayudar a encontrar la estrategia de aumento óptima que conduzca al mejor rendimiento del modelo.

Información

Para obtener más información sobre las operaciones de aumento de entrenamiento, consulte la sección de referencia.

Registro

Al entrenar un modelo YOLO11, puede resultarle valioso realizar un seguimiento del rendimiento del modelo a lo largo del tiempo. Aquí es donde entra en juego el registro. Ultralytics YOLO proporciona soporte para tres tipos de registradores: Comet, ClearML y TensorBoard.

Para usar un registrador, selecciónelo en el menú desplegable del fragmento de código anterior y ejecútelo. El registrador elegido se instalará e inicializará.

Comet

Comet es una plataforma que permite a los científicos de datos y desarrolladores rastrear, comparar, explicar y optimizar experimentos y modelos. Proporciona funcionalidades como métricas en tiempo real, diferencias de código y seguimiento de hiperparámetros.

Para usar Comet:

Ejemplo

# pip install comet_ml
import comet_ml

comet_ml.init()

Recuerde iniciar sesión en su cuenta de Comet en su sitio web y obtener su clave API. Deberá agregar esto a sus variables de entorno o a su script para registrar sus experimentos.

ClearML

ClearML es una plataforma de código abierto que automatiza el seguimiento de experimentos y ayuda a compartir recursos de manera eficiente. Está diseñado para ayudar a los equipos a administrar, ejecutar y reproducir su trabajo de ML de manera más eficiente.

Para usar ClearML:

Ejemplo

# pip install clearml
import clearml

clearml.browser_login()

Después de ejecutar este script, deberá iniciar sesión en su cuenta de ClearML en el navegador y autenticar su sesión.

TensorBoard

TensorBoard es un conjunto de herramientas de visualización para TensorFlow. Le permite visualizar su gráfico de TensorFlow, trazar métricas cuantitativas sobre la ejecución de su gráfico y mostrar datos adicionales como imágenes que lo atraviesan.

Para usar TensorBoard en Google Colab:

Ejemplo

load_ext tensorboard
tensorboard --logdir ultralytics/runs # replace with 'runs' directory

Para usar TensorBoard localmente, ejecute el siguiente comando y vea los resultados en http://localhost:6006/.

Ejemplo

tensorboard --logdir ultralytics/runs # replace with 'runs' directory

Esto cargará TensorBoard y lo dirigirá al directorio donde se guardan sus registros de entrenamiento.

Después de configurar su logger, puede proceder con el entrenamiento de su modelo. Todas las métricas de entrenamiento se registrarán automáticamente en la plataforma elegida, y puede acceder a estos registros para supervisar el rendimiento de su modelo a lo largo del tiempo, comparar diferentes modelos e identificar áreas de mejora.

Preguntas frecuentes

¿Cómo puedo entrenar un modelo de detección de objetos usando Ultralytics YOLO11?

Para entrenar un modelo de detección de objetos usando Ultralytics YOLO11, puede usar la API de python o la CLI. A continuación, se muestra un ejemplo para ambos:

Ejemplo de entrenamiento con una sola GPU y CPU

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

Para obtener más detalles, consulte la sección de Ajustes de Entrenamiento.

¿Cuáles son las características clave del modo Train de Ultralytics YOLO11?

Las características clave del modo Train de Ultralytics YOLO11 incluyen:

  • Descarga Automática de Conjuntos de Datos: Descarga automáticamente conjuntos de datos estándar como COCO, VOC e ImageNet.
  • Soporte Multi-GPU: Escala el entrenamiento a través de múltiples GPUs para un procesamiento más rápido.
  • Configuración de Hiperparámetros: Personalice los hiperparámetros a través de archivos YAML o argumentos de la CLI.
  • Visualización y Monitoreo: Seguimiento en tiempo real de las métricas de entrenamiento para obtener mejores perspectivas.

Estas características hacen que el entrenamiento sea eficiente y personalizable a sus necesidades. Para obtener más detalles, consulte la sección de Características Clave del Modo Train.

¿Cómo reanudo el entrenamiento desde una sesión interrumpida en Ultralytics YOLO11?

Para reanudar el entrenamiento desde una sesión interrumpida, establezca el resume argumento en True y especifique la ruta al último punto de control guardado.

Ejemplo de reanudación del entrenamiento

from ultralytics import YOLO

# Load the partially trained model
model = YOLO("path/to/last.pt")

# Resume training
results = model.train(resume=True)
yolo train resume model=path/to/last.pt

Consulte la sección sobre Reanudación de Entrenamientos Interrumpidos para obtener más información.

¿Puedo entrenar modelos YOLO11 en chips de silicio de Apple?

Sí, Ultralytics YOLO11 admite el entrenamiento en chips de silicio de Apple utilizando el framework Metal Performance Shaders (MPS). Especifique 'mps' como su dispositivo de entrenamiento.

Ejemplo de entrenamiento MPS

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo11n.pt")

# Train the model on Apple silicon chip (M1/M2/M3/M4)
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=mps

Para obtener más detalles, consulte la sección de Entrenamiento MPS en Apple Silicon.

¿Cuáles son los ajustes de entrenamiento comunes y cómo los configuro?

Ultralytics YOLO11 le permite configurar una variedad de ajustes de entrenamiento, como el tamaño del lote, la tasa de aprendizaje, las épocas y más, a través de argumentos. Aquí hay una breve descripción general:

Argumento Predeterminado Descripción
model None Ruta al archivo del modelo para el entrenamiento.
data None Ruta al archivo de configuración del conjunto de datos (p. ej., coco8.yaml).
epochs 100 Número total de épocas de entrenamiento.
batch 16 Tamaño del lote, ajustable como entero o en modo automático.
imgsz 640 Tamaño de imagen objetivo para el entrenamiento.
device None Dispositivo(s) computacional(es) para el entrenamiento como cpu, 0, 0,1, o mps.
save True Habilita el guardado de puntos de control de entrenamiento y pesos del modelo final.

Para obtener una guía detallada sobre la configuración del entrenamiento, consulta la sección de Ajustes de Entrenamiento.



📅 Creado hace 1 año ✏️ Actualizado hace 26 días

Comentarios