Ultralytics YOLO27:
Get Started

Configuración#

La configuración y los hiperparámetros de YOLO son fundamentales para el rendimiento, la velocidad y la precisión del modelo. Estos ajustes pueden afectar al comportamiento del modelo en distintas etapas, como el entrenamiento, la validación y la predicción.



Ver: Domina Ultralytics YOLO: configuración

Los comandos de Ultralytics usan la sintaxis siguiente:

Ejemplo
yolo TASK MODE ARGS

Donde:

Los valores predeterminados de ARG se definen en esta página y proceden del archivo cfg/default.yaml.

Tareas#

Los modelos Ultralytics YOLO pueden realizar diversas tareas de visión artificial, entre ellas:

ArgumentoPredeterminadoDescripción
task'detect'Especifica la tarea de YOLO: detect para la detección de objetos, segment para la segmentación de instancias, semantic para la segmentación semántica, depth para la estimación monocular de profundidad, classify para la clasificación, pose para la estimación de pose y obb para los cuadros delimitadores orientados. Cada tarea está adaptada a resultados y problemas específicos del análisis de imágenes y vídeos.

Guía de tareas

Modos#

Los modelos Ultralytics YOLO funcionan en distintos modos, cada uno diseñado para una etapa específica del ciclo de vida del modelo:

  • Train: Entrena un modelo YOLO con un conjunto de datos personalizado.
  • Val: Valida un modelo YOLO entrenado.
  • Predict: Usa un modelo YOLO entrenado para hacer predicciones sobre imágenes o vídeos nuevos.
  • Export: Exporta un modelo YOLO para su implementación.
  • Track: Rastrea objetos en tiempo real con un modelo YOLO.
  • Benchmark: Evalúa la velocidad y la precisión de las exportaciones de YOLO (ONNX, TensorRT, etc.).
ArgumentoPredeterminadoDescripción
mode'train'Especifica el modo de funcionamiento del modelo YOLO: train para el entrenamiento del modelo, val para la validación, predict para la inferencia, export para convertirlo a formatos de implementación, track para el seguimiento de objetos y benchmark para evaluar el rendimiento. Cada modo admite distintas etapas, desde el desarrollo hasta la implementación.

Guía de modos

Ajustes de entrenamiento#

Los ajustes de entrenamiento de los modelos YOLO incluyen hiperparámetros y configuraciones que afectan al rendimiento, la velocidad y la precisión del modelo. Entre los ajustes clave se encuentran el tamaño del lote, la tasa de aprendizaje, el momentum y la disminución de pesos. La elección del optimizador, la función de pérdida y la composición del conjunto de datos también influyen en el entrenamiento. El ajuste y la experimentación son fundamentales para lograr un rendimiento óptimo. Para obtener más información, consulta la función de entrada de Ultralytics.

ArgumentoTipoPredeterminadoDescripción
modelstrNoneEspecifica el archivo del modelo para el entrenamiento. Acepta la ruta a un modelo preentrenado .pt o a un archivo de configuración .yaml. Es esencial para definir la estructura del modelo o inicializar los pesos.
datastrNoneRuta al YAML del conjunto de datos (p. ej., coco8.yaml), que contiene las rutas a los datos de entrenamiento y validación, los nombres de las clases y el número de clases. Para la clasificación, se usa en su lugar un directorio del conjunto de datos o el nombre de un conjunto de datos integrado (p. ej., imagenet10).
epochsint100Número total de épocas de entrenamiento. Cada época representa una pasada completa por todo el conjunto de datos. Ajustar este valor puede afectar a la duración del entrenamiento y al rendimiento del modelo.
timefloatNoneDuración máxima del entrenamiento en horas. Si se establece, prevalece sobre el argumento epochs y permite que el entrenamiento se detenga automáticamente al cumplirse el tiempo especificado. Es útil cuando el tiempo de entrenamiento es limitado.
patienceint100Número de épocas que se espera sin mejoras en las métricas de validación antes de detener el entrenamiento de forma anticipada. Ayuda a evitar el sobreajuste deteniendo el entrenamiento cuando el rendimiento se estabiliza.
batchint o float16Tamaño del lote, con tres modos: establecer un entero (p. ej., batch=16), usar el modo automático con un 60 % de utilización de la memoria de la GPU (batch=-1) o el modo automático con una fracción de utilización especificada (batch=0.70).
imgszint640Tamaño objetivo de las imágenes para el entrenamiento. Las imágenes se redimensionan a cuadrados cuyos lados tienen el valor especificado (si rect=False); los modelos YOLO conservan la relación de aspecto, pero RT-DETR no. Afecta a la precisión del modelo y a la complejidad computacional.
saveboolTrueActiva el guardado de los puntos de control del entrenamiento y de los pesos finales del modelo. Es útil para reanudar el entrenamiento o para la implementación del modelo.
save_periodint-1Frecuencia de guardado de los puntos de control del modelo, especificada en épocas. Un valor de -1 desactiva esta función. Es útil para guardar modelos intermedios durante sesiones de entrenamiento largas.
cachebool o strFalseActiva el almacenamiento en caché de las imágenes del conjunto de datos en memoria (True/ram), en disco (disk) o lo desactiva (False). Aumenta la velocidad del entrenamiento al reducir las operaciones de E/S de disco, a costa de un mayor uso de memoria.
deviceint o str o listNoneEspecifica el dispositivo o los dispositivos de cálculo para el entrenamiento: una sola GPU (device=0), varias GPU (device=[0,1]), CPU (device=cpu), MPS para Apple silicon (device=mps), NPU Huawei Ascend (device=npu:0 o device=npu:0,1), Intel XPU (device=xpu:0), selección automática de una GPU inactiva (device=-1) o de varias GPU inactivas (device=[-1,-1]).
workersint8Número de hilos de trabajo para cargar datos (por cada RANK si se entrena con varias GPU). Influye en la velocidad del preprocesamiento de datos y de su suministro al modelo; resulta especialmente útil en configuraciones con varias GPU.
projectstrNoneNombre del directorio del proyecto donde se guardan los resultados del entrenamiento. Permite organizar el almacenamiento de distintos experimentos.
namestrNoneNombre de la ejecución de entrenamiento. Se usa para crear un subdirectorio dentro de la carpeta del proyecto donde se almacenan los registros y los resultados del entrenamiento.
exist_okboolFalseSi es True, permite sobrescribir un directorio de proyecto/nombre existente. Es útil para experimentar de forma iterativa sin tener que eliminar manualmente los resultados anteriores.
save_dirstrNoneEspecifica el directorio exacto donde se guardan los resultados de la ejecución y prevalece sobre la combinación project/name. La ruta se usa tal cual, sin incrementar automáticamente el nombre; por tanto, las ejecuciones consecutivas reutilizan el mismo directorio.
pretrainedbool o strTrueDetermina si se empieza el entrenamiento con pesos preentrenados. Puede ser un valor booleano o una ruta de cadena a los pesos que se cargarán. pretrained=False entrena con pesos inicializados aleatoriamente y mantiene la arquitectura del modelo.
cls_remapboolTrueAl ajustar el modelo con distintos conjuntos de datos, copia al nuevo modelo las filas de la cabeza de clasificación preentrenada correspondientes a las clases con nombres coincidentes. Así, las clases coincidentes conservan los sesgos aprendidos y también los pesos si el ancho de la cabeza no cambia. Se aplica tanto si el número de clases varía como si coincide pero el orden es distinto.
optimizerstr'auto'Elección del optimizador para el entrenamiento. Entre las opciones se incluyen SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp o auto, para elegir AdamW o MuSGD según el número de iteraciones de entrenamiento. Afecta a la velocidad y la estabilidad de la convergencia.
seedint0Establece la semilla aleatoria del entrenamiento para garantizar que los resultados sean reproducibles en ejecuciones con las mismas configuraciones.
deterministicboolTrueFuerza el uso de algoritmos deterministas, lo que garantiza la reproducibilidad, pero puede afectar al rendimiento y la velocidad debido a la restricción de los algoritmos no deterministas.
verboseboolTrueActiva una salida detallada durante el entrenamiento, que muestra barras de progreso, métricas por época e información adicional sobre el entrenamiento en la consola.
single_clsboolFalseTrata todas las clases de los conjuntos de datos multiclase como una sola clase durante el entrenamiento. Es útil para tareas de clasificación binaria o cuando interesa detectar la presencia de objetos en lugar de clasificarlos.
classeslist[int]NoneEspecifica una lista de ID de clase con los que entrenar. Es útil para filtrar las clases y centrarse únicamente en algunas durante el entrenamiento.
rectboolFalseActiva la estrategia de relleno mínimo: las imágenes de un lote reciben el relleno mínimo necesario para alcanzar un tamaño común, con el lado más largo igual a imgsz. Puede mejorar la eficiencia y la velocidad, pero afectar a la precisión del modelo. El entrenador estándar de YOLO usa rect=True para la validación de detección, segmentación, pose y OBB, independientemente de este ajuste.
multi_scalefloat0.0Varía aleatoriamente imgsz en cada lote en +/- multi_scale (p. ej., de 0.25 a 0.75x y 1.25x), redondeando a múltiplos del stride del modelo; 0.0 desactiva el entrenamiento multiescala.
cos_lrboolFalseUsa un programador cosenoidal de la tasa de aprendizaje, que la ajusta siguiendo una curva cosenoidal a lo largo de las épocas. Ayuda a gestionar la tasa de aprendizaje para lograr una mejor convergencia.
close_mosaicint10Desactiva la aumentación de datos mosaico durante las últimas N épocas para estabilizar el entrenamiento antes de que termine. Si se establece en 0, se desactiva esta función.
resumeboolFalseReanuda el entrenamiento desde el último punto de control guardado. Carga automáticamente los pesos del modelo, el estado del optimizador y el número de épocas, para continuar el entrenamiento sin interrupciones.
ampbool o strTrueEstablece la precisión del entrenamiento: True o "fp16" usa FP16, "bf16" usa BF16 en los dispositivos CUDA compatibles y False o "fp32" usa FP32.
quantizeint o strNoneEstablece 8 (o "int8") para el entrenamiento con cuantización INT8 consciente de la cuantización (QAT), que ajusta el modelo con cuantización simulada durante el proceso para que los pesos admitan la exportación a INT8. Consulta Entrenamiento con cuantización consciente.
fractionfloat, int o list1.0Subconjunto del conjunto de datos expresado como proporción, recuento o lista [train, val, test]. 1 indica que se usa toda la partición; los enteros superiores a 1 representan cantidades de imágenes, y solo la entrada de prueba opcional acepta 0/0.0 para indicar que no se usa ninguna. Las listas de dos elementos mantienen completa la partición de prueba.
profileboolFalseActiva la elaboración de perfiles de velocidad de ONNX y TensorRT durante el entrenamiento, útil para optimizar la implementación del modelo.
freezeint o listNoneCongela las primeras N capas del modelo o capas específicas por índice o nombre de módulo (23.cv2, sin el model. inicial), lo que reduce el número de parámetros entrenables. Es útil para el ajuste fino o el aprendizaje por transferencia.
lr0float0.01Tasa de aprendizaje inicial (es decir, SGD=1E-2, Adam=1E-3). Se ignora con el valor predeterminado optimizer='auto'; indica un optimizador explícitamente para usarla.
lrffloat0.01Tasa de aprendizaje final como fracción de la tasa inicial = (lr0 * lrf); se usa junto con los programadores para ajustar la tasa de aprendizaje con el tiempo.
momentumfloat0.937Factor de momentum para SGD o beta1 para los optimizadores Adam, que influye en la incorporación de gradientes anteriores a la actualización actual.
weight_decayfloat0.0005Término de regularización L2 que penaliza los pesos grandes para evitar el sobreajuste.
warmup_epochsfloat3.0Número de épocas de calentamiento de la tasa de aprendizaje. Esta aumenta gradualmente desde un valor bajo hasta la tasa de aprendizaje inicial para estabilizar el entrenamiento al principio.
warmup_momentumfloat0.8Momentum inicial para la fase de calentamiento, que se ajusta gradualmente al momentum establecido durante el periodo de calentamiento.
warmup_bias_lrfloat0.1Tasa de aprendizaje de los parámetros de sesgo durante la fase de calentamiento, que ayuda a estabilizar el entrenamiento del modelo en las primeras épocas. Se establece automáticamente en 0.0 con el valor predeterminado optimizer='auto'; indica un optimizador explícitamente para usarla.
distill_modelstrNoneRuta a un punto de control del modelo profesor (p. ej., yolo26x.pt) para la destilación de conocimiento. Al establecerla, el modelo alumno se entrena con una pérdida de destilación adicional guiada por el modelo profesor congelado.
disfloat6.0Peso de la pérdida de destilación que se añade a las pérdidas de detección estándar. Los valores más altos aumentan la influencia de la orientación basada en las características del modelo profesor.
boxfloat7.5Peso del componente de pérdida de cuadros en la función de pérdida, que determina la importancia de predecir con precisión las coordenadas del cuadro delimitador.
clsfloat0.5Peso de la pérdida de clasificación en la función de pérdida total, que determina la importancia de predecir correctamente la clase respecto a los demás componentes.
cls_pwfloat0.0Potencia para ponderar las clases y gestionar el desequilibrio entre ellas mediante la frecuencia inversa de clase. 0.0 desactiva la ponderación de clases; 1.0 aplica la ponderación completa por frecuencia inversa. Los valores entre 0 y 1 aplican una ponderación parcial.
dflfloat1.5Peso del término de regresión de la distancia de los cuadros: pérdida focal de distribución (DFL) cuando la cabeza de detección usa reg_max > 1; pérdida L1 sobre distancias de cuadros normalizadas en YOLO26 sin DFL (reg_max: 1).
posefloat12.0Peso de la pérdida de pose en los modelos entrenados para estimar poses, que determina la importancia de predecir con precisión los puntos clave de la pose.
kobjfloat1.0Peso de la pérdida de objetividad de los puntos clave en los modelos de estimación de pose, que equilibra la confianza de detección y la precisión de la pose.
rlefloat1.0Peso de la pérdida de estimación residual de log-verosimilitud en los modelos de estimación de pose, que afecta a la precisión de la localización de los puntos clave.
anglefloat1.0Peso de la pérdida del ángulo en los modelos OBB, que afecta a la precisión de las predicciones del ángulo de los cuadros delimitadores orientados.
dlogfloat1.0Peso de la pérdida logarítmica invariante a la escala (SILog) en los modelos de estimación de profundidad; es el término principal que determina la precisión de la profundidad.
dgradfloat0.5Peso de la pérdida de gradiente en los modelos de estimación de profundidad, que penaliza los errores en los bordes de profundidad y favorece límites de superficie más definidos.
dlamfloat1.0Factor de énfasis de la varianza de la pérdida SILog en los modelos de estimación de profundidad. 1.0 hace que la pérdida sea totalmente invariante a la escala, mientras que 0.0 la reduce a un RMSE logarítmico simple.
nbsint64Tamaño nominal del lote para normalizar la pérdida.
overlap_maskboolTrueDetermina si las máscaras de los objetos deben combinarse en una sola máscara para el entrenamiento o mantenerse separadas para cada objeto. Si hay solapamiento, al combinarlas se superpone la máscara más pequeña sobre la más grande.
mask_ratioint4Proporción de submuestreo de las máscaras de segmentación, que afecta a la resolución de las máscaras usadas durante el entrenamiento. No modifica la resolución de las máscaras predichas.
dropoutfloat0.0Tasa de abandono para la regularización en tareas de clasificación; evita el sobreajuste omitiendo unidades aleatoriamente durante el entrenamiento.
valboolTrueActiva la validación durante el entrenamiento para evaluar periódicamente el rendimiento del modelo con un conjunto de datos independiente.
nmsbool, opcionalNoneSelecciona la cabeza de inferencia que se usa para validar cada época, seleccionar puntos de control y detener el entrenamiento de forma anticipada. None o True usa una relación uno-a-muchos con NMS; False usa la cabeza sin NMS cuando está disponible. Ambas cabezas conservan sus pérdidas de entrenamiento.
plotsboolTrueGenera y guarda gráficos de las métricas de entrenamiento y validación, así como ejemplos de predicciones, para ofrecer una visión visual del rendimiento del modelo y de su evolución durante el aprendizaje.
compilebool o strFalseActiva la compilación de grafos torch.compile de PyTorch 2.x con backend='inductor'. Acepta True → "default" para activarla, False → para desactivarla o un modo de cadena como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Si no es compatible, vuelve al modo eager y muestra una advertencia.
channels_lastboolNoneUsa el formato de memoria channels_last (NHWC) para las convoluciones durante el entrenamiento. None lo activa automáticamente en CUDA con PyTorch 1.11 o versiones posteriores, excepto en Windows, donde se ha medido un rendimiento más lento. False lo desactiva y True lo solicita explícitamente. El entrenamiento en CPU o MPS siempre mantiene el formato NCHW (True se ignora y se muestra una advertencia).
max_detint300Número máximo de detecciones por imagen durante la validación del entrenamiento. En las tareas de detección, segmentación, pose y OBB, el valor predeterminado de 300 aumenta hasta el mayor recuento de objetos etiquetados de entrenamiento/validación solo si dicho recuento supera 300. Los demás valores se mantienen fijos; si se supera el límite, se muestra una advertencia.
Nota sobre los ajustes del tamaño del lote

El argumento batch ofrece tres opciones de configuración:

  • Tamaño fijo del lote: Especifica el número de imágenes por lote con un entero (p. ej., batch=16).
  • Modo automático (60 % de memoria de GPU): Usa batch=-1 para ajustar automáticamente el uso de memoria CUDA a aproximadamente el 60 %.
  • Modo automático con fracción de utilización: Establece una fracción (p. ej., batch=0.70) para ajustar el uso a una proporción determinada de la memoria de la GPU.
  • No se encuentra un tamaño adecuado: Si ningún tamaño de lote candidato genera un perfil válido, AutoBatch produce un RuntimeError claro en lugar de recurrir silenciosamente a un valor predeterminado no relacionado.

Guía de entrenamiento

Ajustes de predicción#

Los ajustes de predicción de los modelos YOLO incluyen hiperparámetros y configuraciones que influyen en el rendimiento, la velocidad y la precisión durante la inferencia. Entre los ajustes clave se encuentran el umbral de confianza, el umbral de supresión no máxima (NMS) y el número de clases. El tamaño y el formato de los datos de entrada, además de funciones adicionales como las máscaras, también afectan a las predicciones. Ajustar estos valores es esencial para lograr un rendimiento óptimo.

Argumentos de inferencia:

ArgumentoTipoPredeterminadoDescripción
sourcestr o int o NoneNoneEspecifica el origen de datos para la inferencia. Puede ser la ruta a una imagen, un archivo de vídeo, un directorio, una URL o el ID de un dispositivo para transmisiones en directo. Si se omite, se registra una advertencia y el modelo recurre a los recursos de demostración integrados (ultralytics/assets o una URL de demostración para OBB). Admite una amplia variedad de formatos y orígenes, lo que permite usarlo con flexibilidad en distintos tipos de entrada.
conffloat0.25Establece el umbral mínimo de confianza para las detecciones. Se descartan los objetos detectados con un nivel de confianza inferior a este umbral. Ajustar este valor puede ayudar a reducir los falsos positivos.
ioufloat0.7Umbral de intersección sobre unión (IoU) para la supresión no máxima (NMS). Los valores más bajos producen menos detecciones al eliminar cuadros superpuestos, lo que resulta útil para reducir los duplicados.
imgszint o tuple640Objetivo de Letterbox. Un entero define un N×N cuadrado; una tupla define (height, width). Con rect=True, el tensor real puede ser más pequeño que este objetivo debido al relleno mínimo en rectángulo. Usa rect=False para fijar el tamaño. Consulta Forma fija frente a rectángulo mínimo.
rectboolTrueSi True, usa el relleno mínimo en rectángulo cuando sea posible (lotes con la misma forma y backend compatible). Si False, rellena siempre hasta el valor completo de imgsz. Consulta Forma fija frente a rectángulo mínimo.
quantizeint o strNonePrecisión de inferencia: 16/"fp16" y 32/"fp32"/unset seleccionan el cálculo FP16 o FP32 para los modelos PyTorch y TorchScript (FP32 en CPU); los demás formatos usan la precisión que seleccionen el artefacto y el entorno de ejecución. En 16, OpenVINO sigue redondeando la entrada a FP16 en el cliente y volviéndola a ampliar a FP32, sin cambiar la precisión del entorno de ejecución. La cuantización INT8/PTQ se configura durante la exportación y se utiliza después al cargar el modelo exportado. Sustituye a la marca obsoleta half.
devicestrNoneEspecifica el dispositivo para la inferencia (p. ej., cpu, cuda:0, 0, npu o npu:0). Permite seleccionar entre CPU, una GPU específica, una NPU Huawei Ascend u otros dispositivos de cálculo para ejecutar el modelo.
dnnboolFalseSi True, usa el módulo DNN de OpenCV en lugar de ONNX Runtime para la inferencia de modelos ONNX.
datastrNoneRuta a un YAML del conjunto de datos (p. ej., coco8.yaml) que se lee solo para obtener su names, y únicamente cuando el modelo cargado no incluye nombres de clase propios: una exportación de terceros o una exportación de Ultralytics separada de los metadatos que la acompañan. De lo contrario, el modelo indica class0, class1, etc.
batchint1Especifica el tamaño del lote para la inferencia (solo funciona cuando el origen es un directorio, un archivo de vídeo o un archivo .txt). Un tamaño de lote mayor puede aumentar el rendimiento y reducir el tiempo total necesario para la inferencia.
max_detint300Número máximo de detecciones permitido por imagen. Limita el número total de objetos que el modelo puede detectar en una sola inferencia para evitar resultados excesivos en escenas densas.
vid_strideint1Salto de fotogramas para entradas de vídeo. Permite omitir fotogramas para acelerar el procesamiento a costa de la resolución temporal. El valor 1 procesa todos los fotogramas; los valores superiores los omiten.
stream_bufferboolFalseDetermina si se ponen en cola los fotogramas entrantes de las secuencias de vídeo. Si False, se descartan los fotogramas antiguos para dejar sitio a los nuevos (optimizado para aplicaciones en tiempo real). Si True, los fotogramas nuevos se guardan en un búfer para garantizar que no se omita ninguno, pero se introduce latencia si los FPS de inferencia son inferiores a los FPS de la secuencia.
visualizeboolFalseGuarda un mapa de calor de activación de clases junto a cada predicción, que muestra qué píxeles han elevado las puntuaciones de la clase predicha. Respeta conf y classes, por lo que classes=[0] solo asigna esa clase. Solo está disponible para modelos PyTorch de Ultralytics.
augmentboolFalseActiva el aumento en tiempo de prueba (TTA) para las predicciones, lo que puede mejorar la robustez de la detección a costa de la velocidad de inferencia. Solo está disponible para modelos PyTorch de Ultralytics.
agnostic_nmsboolFalseActiva la supresión no máxima (NMS) independiente de la clase, que suprime los cuadros solapados con puntuaciones más bajas entre clases distintas, en lugar de hacerlo solo dentro de la misma clase. Es útil en escenarios de detección multiclase donde los solapamientos entre clases son frecuentes. Con la inferencia sin NMS (nms=False en YOLO26 o YOLOv10), solo impide que la misma detección aparezca con varias etiquetas de clase (duplicados con IoU=1.0); no suprime cuadros distintos según el umbral de IoU.
classeslist[int]NoneFiltra las predicciones para limitarse a un conjunto de ID de clase. Solo se devuelven las detecciones pertenecientes a las clases especificadas. Es útil para centrarse en los objetos relevantes en tareas de detección multiclase.
retina_masksboolFalseDevuelve máscaras de segmentación de alta resolución. Si se activa, las máscaras devueltas (masks.data) coinciden con el tamaño de la imagen original. Si se desactiva, tienen el tamaño de imagen utilizado durante la inferencia.
embedlist[int]NoneEspecifica las capas de las que se extraen vectores de características o embeddings. Usa model.embed(source) para obtener embeddings de la penúltima capa o model.predict(source, embed=[layer]) para seleccionar capas concretas. Es útil para tareas posteriores, como la agrupación en clústeres o la búsqueda por similitud. Solo está disponible para modelos PyTorch de Ultralytics.
projectstrNoneNombre del directorio del proyecto donde se guardan los resultados de las predicciones si se activa save.
namestrNoneNombre de la ejecución de predicción. Se usa para crear un subdirectorio dentro de la carpeta del proyecto, donde se guardan los resultados de las predicciones si se activa save.
streamboolFalsePermite procesar de forma eficiente en cuanto a memoria vídeos largos o numerosas imágenes, ya que devuelve un generador de objetos Results en lugar de cargar todos los fotogramas en memoria a la vez.
verboseboolTrueControla si se muestran registros detallados de inferencia en el terminal para ofrecer información en tiempo real sobre el proceso de predicción.
compilebool o strFalseActiva la compilación de grafos torch.compile de PyTorch 2.x con backend='inductor'. Acepta True → "default" para activarla, False → para desactivarla o un modo de cadena como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Si no es compatible, vuelve al modo eager y muestra una advertencia.
channels_lastboolNoneUsa el formato de memoria channels_last (NHWC) para la inferencia nativa de PyTorch. None lo activa automáticamente en CPU x86 con Linux y Windows, compatible con oneDNN y PyTorch 1.13 o posterior; False lo desactiva y True lo solicita en dispositivos CPU x86 o CUDA compatibles. ARM64, MPS, las versiones anteriores de PyTorch, las CPU sin oneDNN y los formatos exportados como TensorRT y ONNX no cambian.
nmsbool, opcionalNonePor defecto, ejecuta inferencia uno a varios con NMS (None o True). Configura False para usar el cabezal uno a uno sin NMS cuando esté disponible. Consulta la guía de detección de extremo a extremo para obtener más información.

Argumentos de visualización:

ArgumentoTipoPredeterminadoDescripción
showboolFalseSi True, muestra las imágenes o los vídeos anotados en una ventana. Es útil para obtener información visual inmediata durante el desarrollo o las pruebas.
saveboolFalse or TrueActiva el guardado de las imágenes o los vídeos anotados en archivos. Es útil para documentar, analizar más adelante o compartir resultados. De forma predeterminada, es True al usar la CLI y False al usar Python.
save_framesboolFalseAl procesar vídeos, guarda fotogramas individuales como imágenes. Es útil para extraer fotogramas concretos o analizarlos detalladamente uno por uno.
save_txtboolFalseGuarda los resultados de detección en un archivo de texto con el formato [class] [x_center] [y_center] [width] [height] [confidence]. Es útil para integrarlos con otras herramientas de análisis.
save_confboolFalseIncluye puntuaciones de confianza en los archivos de texto guardados. Ofrece más detalles para el posprocesamiento y el análisis.
save_cropboolFalseGuarda imágenes recortadas de las detecciones. Es útil para aumentar conjuntos de datos, realizar análisis o crear conjuntos de datos centrados en objetos concretos.
show_labelsboolTrueMuestra etiquetas para cada detección en la salida visual. Facilita la identificación inmediata de los objetos detectados.
show_confboolTrueMuestra la puntuación de confianza de cada detección junto a su etiqueta. Permite conocer el grado de certeza del modelo para cada detección.
show_boxesboolTrueDibuja cuadros delimitadores alrededor de los objetos detectados. Es esencial para identificar visualmente y localizar objetos en imágenes o fotogramas de vídeo.
line_widthint or NoneNoneEspecifica el grosor de línea de los cuadros delimitadores. Si None, el grosor de línea se ajusta automáticamente al tamaño de la imagen. Permite personalizar la visualización para mejorar la claridad.

Guía de predicción

Configuración de validación#

La configuración de validación de los modelos YOLO incluye hiperparámetros y opciones para evaluar el rendimiento en un conjunto de datos de validación. Estos ajustes influyen en el rendimiento, la velocidad y la precisión. Entre los ajustes habituales se incluyen el tamaño del lote, la frecuencia de validación y las métricas de rendimiento. El tamaño y la composición del conjunto de datos de validación, así como la tarea concreta, también influyen en el proceso.

ArgumentoTipoPredeterminadoDescripción
datastrNoneEspecifica la ruta al YAML del conjunto de datos (p. ej., coco8.yaml), que debe incluir la ruta a los datos de validación. Para la clasificación, en cambio, se usa un directorio de conjunto de datos o el nombre de un conjunto de datos integrado (p. ej., imagenet10).
imgszint640Define el tamaño de las imágenes de entrada. Todas las imágenes se redimensionan a estas dimensiones antes del procesamiento. Los tamaños mayores pueden mejorar la precisión en objetos pequeños, pero aumentan el tiempo de cálculo.
batchint16Establece el número de imágenes por lote. Los valores más altos aprovechan mejor la memoria de la GPU, pero requieren más VRAM. Ajústalo según los recursos de hardware disponibles.
save_jsonboolFalseSi True, guarda los resultados en un archivo JSON para analizarlos más adelante, integrarlos con otras herramientas o enviarlos a servidores de evaluación como COCO. En conjuntos de datos de detección, también evalúa las predicciones con faster-coco-eval e informa del mAP para objetos pequeños, medianos y grandes; durante el entrenamiento, estos valores se registran como metrics/mAP_small(B), metrics/mAP_medium(B) y metrics/mAP_large(B) en results.csv.
conffloat0.001Establece el umbral mínimo de confianza para las detecciones. Los valores más bajos aumentan la exhaustividad, pero pueden introducir más falsos positivos. Las curvas de precisión-exhaustividad, el mAP y las matrices de confusión de detección usan este valor; un conf más alto, como 0.25, genera una matriz más parecida a la salida de predicción, pero puede reducir el mAP. La precisión y la exhaustividad resumidas usan la confianza de F1 máximo, por lo que pueden diferir de los valores derivados de confusion_matrix.png. El valor predeterminado para la validación OBB es 0.01 para reducir el uso de memoria.
ioufloat0.7Establece el umbral de intersección sobre unión para la supresión no máxima. Controla la eliminación de detecciones duplicadas.
max_detint300Limita el número máximo de detecciones por imagen. Para detect, segment, pose y OBB, si se mantiene en 300, se aumenta hasta el número más alto de objetos etiquetados en la partición validada cuando una imagen supera ese límite, con una advertencia; cualquier otro valor se mantiene, con una advertencia de que la exhaustividad puede quedar limitada si una imagen lo supera.
quantizeint o strNonePrecisión de validación: 16/"fp16" y 32/"fp32"/unset seleccionan el cálculo FP16 o FP32 para los modelos PyTorch y TorchScript (FP32 en CPU); los demás formatos usan la precisión que seleccionen el artefacto y el entorno de ejecución. En 16, OpenVINO sigue redondeando la entrada a FP16 en el cliente y volviéndola a ampliar a FP32, sin cambiar la precisión del entorno de ejecución. La cuantización INT8/PTQ se configura durante la exportación y se utiliza después al validar el modelo exportado. Sustituye a la marca obsoleta half.
devicestrNoneEspecifica el dispositivo para la validación (cpu, cuda:0, npu, npu:0, etc.). Con None, selecciona automáticamente el mejor dispositivo disponible. Puedes especificar varios dispositivos CUDA separándolos con comas.
dnnboolFalseSi True, usa el módulo DNN de OpenCV para la inferencia de modelos ONNX, como alternativa a los métodos de inferencia de PyTorch.
plotsboolTrueSi se establece en True, genera y guarda gráficos que comparan las predicciones con la verdad de referencia, matrices de confusión y curvas PR para evaluar visualmente el rendimiento del modelo.
classeslist[int]NoneEspecifica una lista de ID de clase que se van a evaluar. Es útil para filtrar y centrarse solo en determinadas clases durante la evaluación.
rectboolTrueSi True, agrupa en lotes imágenes con relaciones de aspecto similares y les da forma rectangular. Añade medio stride antes de redondear cada dimensión al siguiente múltiplo de stride (sin medio stride adicional para semantic). Con un stride de 32, una imagen de 640×640 en imgsz=640 pasa a 672×672 con un desplazamiento de 16 px, mientras que predict usa 640×640, por lo que las métricas pueden diferir. rect=False coincide con predict para las imágenes cuadradas. Se ignora para depth, que estira las imágenes hasta un cuadrado de imgsz.
splitstr'val'Determina qué partición del conjunto de datos se usa para la validación (val, test o train). Permite elegir con flexibilidad el segmento de datos para evaluar el rendimiento.
fractionfloat, int o list1.0Subconjunto de la partición validada. Con una lista [train, val, test], se aplica la entrada que coincida con split (1 = partición completa; los enteros superiores a 1 = número de imágenes; las entradas omitidas corresponden a la partición completa). Un valor escalar solo se aplica con split=train; val y test usan entonces la partición completa.
projectstrNoneNombre del directorio del proyecto donde se guardan los resultados de validación. Ayuda a organizar los resultados de distintos experimentos o modelos.
namestrNoneNombre de la ejecución de validación. Se usa para crear un subdirectorio dentro de la carpeta del proyecto, donde se guardan los registros y resultados de validación.
verboseboolTrueSi True, muestra información detallada durante el proceso de validación, incluidas las métricas por clase, el progreso de los lotes y más información de depuración.
save_txtboolFalseSi True, guarda los resultados de detección en archivos de texto, uno por imagen. Es útil para realizar análisis adicionales, posprocesamiento personalizado o integraciones con otros sistemas.
save_confboolFalseSi True, incluye valores de confianza en los archivos de texto guardados cuando se activa save_txt, lo que proporciona resultados más detallados para el análisis y el filtrado.
workersint8Número de subprocesos de trabajo para cargar datos. Los valores más altos pueden acelerar el preprocesamiento, pero aumentar el uso de la CPU. Si se establece en 0, se usa el hilo principal, lo que puede ser más estable en algunos entornos.
augmentboolFalseActiva el aumento en tiempo de prueba (TTA) durante la validación, lo que puede mejorar la precisión de detección a costa de la velocidad de inferencia al ejecutar la inferencia con versiones transformadas de la entrada. Solo está disponible para modelos PyTorch de Ultralytics.
agnostic_nmsboolFalseActiva la supresión no máxima independiente de la clase, que suprime los cuadros solapados con puntuaciones más bajas sin tener en cuenta la clase predicha. Es útil en aplicaciones centradas en instancias. Con la inferencia sin NMS (nms=False en YOLO26 o YOLOv10), solo impide que la misma detección aparezca con varias etiquetas de clase (duplicados con IoU=1.0); no suprime cuadros distintos según el umbral de IoU.
single_clsboolFalseTrata todas las clases como una sola durante la validación. Es útil para evaluar el rendimiento del modelo en tareas de detección binaria o cuando las diferencias entre clases no son importantes.
visualizeboolFalseVisualiza la verdad de referencia, los verdaderos positivos, los falsos positivos y los falsos negativos de cada imagen. Es útil para depurar e interpretar el modelo.
show_labelsboolTrueMuestra las etiquetas de clase en las visualizaciones de validación cuando visualize=True. Configúralo en False para ver las coincidencias y los errores con más claridad.
show_confboolTrueMuestra las puntuaciones de confianza en las visualizaciones de validación cuando visualize=True. Configúralo en False para ver las coincidencias y los errores con más claridad.
compilebool o strFalseActiva la compilación de grafos torch.compile de PyTorch 2.x con backend='inductor'. Acepta True → "default" para activarla, False → para desactivarla o un modo de cadena como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Si no es compatible, vuelve al modo eager y muestra una advertencia.
channels_lastboolNoneUsa el formato de memoria channels_last (NHWC) para la validación nativa de PyTorch. None lo activa automáticamente en CPU x86 con Linux y Windows, compatible con oneDNN y PyTorch 1.13 o posterior; False lo desactiva y True lo solicita en dispositivos CPU x86 o CUDA compatibles. ARM64, MPS, las versiones anteriores de PyTorch, las CPU sin oneDNN y los formatos exportados no cambian; durante el entrenamiento, la validación mantiene la disposición del modelo de entrenamiento.
nmsbool, opcionalNonePor defecto, ejecuta inferencia uno a varios con NMS (None o True). Configura False para usar el cabezal uno a uno sin NMS cuando esté disponible. Consulta la guía de detección de extremo a extremo para obtener más información.

Un ajuste cuidadoso y la experimentación son fundamentales para garantizar un rendimiento óptimo y detectar y prevenir el sobreajuste.

Guía de validación

Configuración de exportación#

La configuración de exportación de los modelos YOLO incluye opciones para guardar o exportar el modelo y usarlo en distintos entornos. Estos ajustes afectan al rendimiento, el tamaño y la compatibilidad. Entre los ajustes principales se incluyen el formato del archivo exportado (p. ej., ONNX o TensorFlow SavedModel), el dispositivo de destino (p. ej., CPU o GPU) y funciones como las máscaras. La tarea del modelo y las limitaciones del entorno de destino también influyen en el proceso de exportación.

ArgumentoTipoPredeterminadoDescripción
formatstr'torchscript'Formato de destino del modelo exportado, como 'onnx', 'torchscript', 'engine' (TensorRT) u otros. Cada formato permite la compatibilidad con distintos entornos de implementación.
namestrNoneNombre del hardware de destino para los formatos que lo requieren: arquitectura Hailo ('hailo8', 'hailo8l', 'hailo10h', 'hailo15h', 'hailo15l'; de forma predeterminada, 'hailo8l'), chip Rockchip RKNN (de forma predeterminada, 'rk3588'), SoC Huawei Ascend (un --soc_version de CANN; de forma predeterminada, 'Ascend310B4'), destino Qualcomm QNN HTP (de forma predeterminada, '73') o dispositivo AMD Xilinx Versal AI Edge Series Gen 2 (de forma predeterminada, 've2-xc2ve3858', el kit de evaluación VEK385). Es distinto del par project/name de nomenclatura de ejecuciones que usan otros modos.
imgszint o tuple640Tamaño de imagen deseado para la entrada del modelo. Puede ser un entero para imágenes cuadradas (p. ej., 640 para 640×640) o una tupla (height, width) para dimensiones concretas. Si no se especifica, la exportación reutiliza el tamaño de entrenamiento registrado en el punto de control cargado: los puntos de control oficiales de YOLO26 registran 768 para depth, 224 para classify, 1024 para OBB y 640 para las demás tareas; un ajuste fino registra el valor imgsz con el que se entrenó. Un modelo creado a partir de un YAML no tiene un tamaño de entrenamiento registrado y usa 640.
optimizeboolFalseActiva una optimización superior del compilador para DEEPX, lo que reduce la latencia de inferencia y aumenta el tiempo de compilación.
quantizeint o strNonePrecisión de cuantización: 16 (FP16, reduce el tamaño del modelo y puede acelerar la inferencia en hardware compatible) o 8 (INT8/PTQ, comprime aún más el modelo con una pérdida mínima de precisión, principalmente para dispositivos periféricos; requiere calibración data/fraction); 32/sin especificar equivale a FP32. Un checkpoint entrenado con quantize=8 siempre se exporta en INT8: onnx y engine se exportan a partir de los rangos que incorporan, sin calibración, y se rechazan otros formatos o precisiones. 'w8a8' y 'w16a16' son alias de 8 y 16; las precisiones mixtas 'w8a16' (pesos INT8 con activaciones de 16 bits: CoreML, LiteRT, QNN) y 'w8a32' (INT8 dinámico: LiteRT) solo se admiten en esos formatos. Sustituye las opciones obsoletas half/int8 (half=True → 16, int8=True → 8; las opciones antiguas aún se aceptan con un aviso de obsolescencia). Solo se permiten las precisiones compatibles con el formato de destino (consulta más abajo).
dynamicboolFalsePermite tamaños de entrada dinámicos en las exportaciones TorchScript, ONNX, OpenVINO, TensorRT, CoreML y MNN, lo que aporta flexibilidad para gestionar distintas dimensiones de imagen.
simplifyboolTrueSimplifica el grafo ONNX intermedio con onnxslim para las exportaciones que lo generan (consulta Formatos de exportación), lo que puede mejorar el rendimiento y la compatibilidad con motores de inferencia.
opsetintNoneEspecifica la versión de opset de ONNX para las exportaciones que generan un grafo ONNX (consulta Formatos de exportación), a fin de garantizar la compatibilidad con distintos analizadores y entornos de ejecución ONNX. Si no se establece, se usa la última versión compatible.
workspacefloat o NoneNoneEstablece el tamaño máximo del espacio de trabajo en GiB para las optimizaciones de TensorRT, equilibrando el uso de memoria y el rendimiento. Usa None para que TensorRT lo asigne automáticamente hasta el máximo del dispositivo.
nmsbool, opcionalNoneNone exporta predicciones sin procesar de uno a varios para aplicar NMS externamente; True incorpora NMS cuando es compatible; False selecciona el cabezal sin NMS cuando está disponible. La NMS integrada de CoreML admite detect, segment y pose con formas estáticas. Consulta la guía de detección de extremo a extremo.
conffloatNoneUmbral de confianza que se usa siempre que se genera NMS durante la exportación: exportaciones nms=True; exportaciones detect de Hailo que no son de extremo a extremo; y exportaciones detect, pose y segment de IMX, que fuerzan internamente nms=True. Si no se establece, el valor predeterminado es 0.25.
ioufloat0.7Umbral de IoU que se usa siempre que se genera NMS durante la exportación: exportaciones nms=True; exportaciones detect de Hailo que no son de extremo a extremo; y exportaciones detect, pose y segment de IMX, que fuerzan internamente nms=True.
max_detint300Número máximo de detecciones que se conservan en la salida del modelo exportado. Se aplica a las exportaciones nms=True en todos los formatos, excepto a la detección de CoreML, cuya canalización de NMS nativa no limita el número de detecciones; también se aplica a las exportaciones de detección de extremo a extremo sin NMS (YOLO26, YOLOv10, limitado al número de anclas disponibles) y a las exportaciones detect, pose y segment de IMX.
agnostic_nmsboolFalseActiva NMS independiente de la clase siempre que la NMS de exportación se genere mediante la canalización estándar nms=True, incluida la fase de NMS propia de CoreML. Suprime los cuadros solapados con puntuaciones más bajas entre clases distintas, en lugar de hacerlo solo dentro de la misma clase. No se aplica a las configuraciones de NMS generadas por Hailo o IMX, que no tienen una opción independiente de la clase y siguen teniendo en cuenta la clase, independientemente de esta marca. También se incorpora en las exportaciones de extremo a extremo sin NMS (YOLO26, YOLOv10), donde solo impide que la misma detección aparezca con varias etiquetas de clase (duplicados con IoU=1.0), pero no suprime cuadros distintos según el umbral de IoU.
batchint1Especifica el tamaño del lote de inferencia del modelo exportado o el número máximo de imágenes que el modelo exportado procesará simultáneamente en modo predict. Los formatos cuyos argumentos de exportación no incluyen batch (Edge TPU, IMX500, DEEPX, Hailo, AMD Xilinx) exportan con un lote de 1 y rechazan otros valores.
devicestrNoneEspecifica el dispositivo para la exportación: GPU (device=0), CPU (device=cpu), MPS para Apple silicon (device=mps), NPU Huawei Ascend (device=npu o device=npu:0) o DLA para NVIDIA Jetson (device=dla:0 o device=dla:1). Las exportaciones TensorRT usan automáticamente la GPU, pero TensorRT 11.0 no es compatible con DLA.
verboseboolFalseAumenta a VERBOSE la gravedad del registro del generador de TensorRT durante la exportación format='engine'. Los demás formatos de exportación ignoran esta opción.
datastrNoneRuta al YAML del conjunto de datos, imprescindible para la calibración de la cuantización INT8; para la clasificación, en cambio, se usa un directorio de conjunto de datos o el nombre de un conjunto de datos integrado. Si no se especifica y se activa INT8, Ultralytics selecciona un conjunto de datos de calibración específico para la tarea cuando es necesario o recurre al conjunto de datos predeterminado de la tarea del modelo. Un punto de control entrenado con quantize=8 incluye sus propios rangos INT8 y no necesita datos de calibración.
splitstr'val'Partición del conjunto de datos ('train', 'val' o 'test') que se usa para crear el cargador de datos de calibración de cuantización INT8 a partir de data.
fractionfloat, int o list1.0Subconjunto del conjunto de datos utilizado para la calibración INT8: una proporción, un número de imágenes o valores [train, val, test]. 1 indica la partición completa; los enteros superiores a 1 indican el número de imágenes; solo la entrada de prueba opcional acepta 0/0.0 para indicar que no se use ninguna. Las listas de dos elementos dejan test completo.

Una configuración bien pensada garantiza que el modelo exportado esté optimizado para su caso de uso y funcione eficazmente en el entorno de destino.

Guía de exportación

Configuración de Solutions#

La configuración de Ultralytics Solutions ofrece flexibilidad para personalizar modelos en tareas como el recuento de objetos, la creación de mapas de calor, el seguimiento de entrenamientos, el análisis de datos, el seguimiento de zonas, la gestión de colas y el recuento por regiones. Estas opciones permiten realizar ajustes fácilmente para obtener resultados precisos y útiles, adaptados a necesidades concretas.

ArgumentoTipoPredeterminadoDescripción
modelstrNoneRuta a un archivo de modelo Ultralytics YOLO.
regionlist o dictNonePuntos que definen la región de interés, ya sea una lista de tuplas (x, y) o un diccionario que asigna nombres de región a listas de puntos para varias regiones (solo RegionCounter). Si None, las soluciones que requieren una región usan una región predeterminada predefinida.
show_inboolTrueIndicador que controla si se muestran los recuentos de entradas en la secuencia de vídeo.
show_outboolTrueIndicador que controla si se muestran los recuentos de salidas en la secuencia de vídeo.
analytics_typestr'line'Tipo de gráfico, es decir, line, bar, area o pie.
colormapintcv2.COLORMAP_DEEPGREENMapa de colores que se usa para el mapa de calor.
line_widthint2Grosor de línea de los cuadros, puntos clave y recuentos que dibuja la solución.
verboseboolTrueActiva el registro por fotograma de la forma de entrada, los recuentos por clase y la velocidad de procesamiento de la solución. La llamada de seguimiento en sí siempre es silenciosa.
json_filestrNoneRuta al archivo JSON que contiene todos los datos de coordenadas de aparcamiento.
up_anglefloat145.0Umbral de ángulo para la pose «arriba».
kptslist[int][6, 8, 10]Lista de tres índices de puntos clave que se usan para supervisar entrenamientos. Estos puntos clave corresponden a articulaciones o partes del cuerpo, como hombros, codos y muñecas, en ejercicios como flexiones, dominadas, sentadillas y ejercicios abdominales.
down_anglefloat90.0Umbral de ángulo para la pose «abajo».
blur_ratiofloat0.5Ajusta el porcentaje de intensidad del desenfoque, con valores dentro del intervalo 0.1 - 1.0.
crop_dirstr'cropped-detections'Nombre del directorio donde se guardan las detecciones recortadas.
recordsint5Número total de detecciones necesario para activar un correo electrónico con el sistema de alarma de seguridad.
vision_pointtuple[int, int](20, 20)Punto desde el que la visión artificial seguirá los objetos y dibujará trayectorias mediante VisionEye Solution.
sourcestrNoneRuta a la fuente de entrada (vídeo, RTSP, etc.). Solo se puede utilizar con la interfaz de línea de comandos (CLI) de Solutions.
figsizetuple[float, float](12.8, 7.2)Tamaño de las figuras en pulgadas para los gráficos de Analytics; (12.8, 7.2) genera un fotograma de 1280×720.
fpsfloat30.0Fotogramas por segundo utilizados para los cálculos de velocidad.
max_histint5Número máximo de puntos históricos que se registran por objeto para calcular la velocidad y la dirección.
meter_per_pixelfloat0.05Factor de escala utilizado para convertir la distancia en píxeles a unidades del mundo real.
max_speedint120Velocidad máxima en km/h; las velocidades estimadas superiores se limitan a este valor.
datastr'images'Ruta al directorio de imágenes utilizado para la búsqueda por similitud.
imgszint640Tamaño de la imagen de entrada para la inferencia del modelo.

Guía de Solutions

Ajustes de aumento de datos#

Las técnicas de aumento de datos son esenciales para mejorar la robustez y el rendimiento de los modelos YOLO, ya que introducen variabilidad en los datos de entrenamiento y ayudan al modelo a generalizar mejor ante datos que no ha visto. En la siguiente tabla se describe el propósito y el efecto de cada argumento de aumento de datos:

ArgumentoTipoPredeterminadoTareas compatiblesIntervaloDescripción
hsv_hfloat0.015detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Ajusta el tono de la imagen en una fracción de la rueda de color, lo que introduce variabilidad cromática. Ayuda al modelo a generalizar en distintas condiciones de iluminación. Para classify, solo se aplica cuando auto_augment=None.
hsv_sfloat0.7detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Modifica la saturación de la imagen en una fracción, lo que afecta a la intensidad de los colores. Es útil para simular distintas condiciones ambientales. Para classify, solo se aplica cuando auto_augment=None.
hsv_vfloat0.4detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Modifica el valor (brillo) de la imagen en una fracción, lo que ayuda al modelo a funcionar bien en distintas condiciones de iluminación. Para classify, solo se aplica cuando auto_augment=None.
degreesfloat0detect, segment, semantic, depth, pose, obb0.0 - 180Gira la imagen aleatoriamente dentro del intervalo de grados especificado, lo que mejora la capacidad del modelo para reconocer objetos en distintas orientaciones.
translatefloat0.1detect, segment, semantic, depth, pose, obb0.0 - 1.0Desplaza la imagen horizontal y verticalmente en una fracción de su tamaño, lo que ayuda al modelo a aprender a detectar objetos parcialmente visibles.
scalefloat | tuple0.5detect, segment, semantic, depth, classify, pose, obb0 - 1 o una tupla (min, max) explícita (no para classify).Escala la imagen mediante un factor de ampliación, lo que simula objetos situados a distintas distancias de la cámara.
shearfloat0detect, segment, semantic, depth, pose, obb-180 - +180Cizalla la imagen en los grados especificados, lo que imita el efecto de observar objetos desde distintos ángulos.
perspectivefloat0detect, segment, semantic, depth, pose, obb0.0 - 0.001Aplica una transformación de perspectiva aleatoria a la imagen, lo que mejora la capacidad del modelo para comprender los objetos en un espacio 3D.
flipudfloat0detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Invierte la imagen verticalmente con la probabilidad especificada, lo que aumenta la variabilidad de los datos sin afectar a las características del objeto.
fliplrfloat0.5detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Invierte la imagen de izquierda a derecha con la probabilidad especificada; es útil para aprender a reconocer objetos simétricos y aumentar la diversidad del conjunto de datos.
bgrfloat0detect, segment, semantic, depth, pose, obb0.0 - 1.0Invierte los canales de la imagen de RGB a BGR con la probabilidad especificada; es útil para aumentar la robustez ante un orden incorrecto de los canales.
mosaicfloat1detect, segment, semantic, pose, obb0.0 - 1.0Combina cuatro imágenes de entrenamiento en una, lo que simula distintas composiciones de escenas e interacciones entre objetos. Es muy eficaz para comprender escenas complejas.
mixupfloat0detect, segment, semantic, pose, obb0.0 - 1.0Mezcla dos imágenes y sus etiquetas para crear una imagen compuesta. Mejora la capacidad del modelo para generalizar al introducir ruido en las etiquetas y variabilidad visual.
cutmixfloat0detect, segment, semantic, pose, obb0.0 - 1.0Combina partes de dos imágenes para crear una mezcla parcial que mantiene regiones diferenciadas. Mejora la robustez del modelo al crear situaciones de oclusión.
copy_pastefloat0segment, semantic, obb0.0 - 1.0Fracción de objetos aptos que se pegan; flip los refleja dentro de la imagen, mientras que mixup también utiliza el valor como probabilidad de aplicación entre imágenes.
copy_paste_modestrflipsegment, semantic, obb-Especifica la estrategia de copy-paste que se va a utilizar. Las opciones incluyen 'flip' y 'mixup'.
auto_augmentstrrandaugmentclassify-Aplica una política de aumento predefinida ('randaugment', 'autoaugment' o 'augmix') para mejorar el rendimiento del modelo mediante la diversidad visual.
erasingfloat0.4classify0.0 - 1.0Borra aleatoriamente regiones de la imagen durante el entrenamiento para animar al modelo a centrarse en características menos evidentes.
augmentationslistNonedetect, segment, semantic, depth, pose, obb-Transformaciones personalizadas de Albumentations para el aumento de datos avanzado (solo API de Python). Acepta una lista de objetos de transformación para necesidades de aumento especializadas.

Ajusta estos parámetros según los requisitos del conjunto de datos y de la tarea. Probar distintos valores puede ayudar a encontrar la estrategia de aumento óptima para lograr el mejor rendimiento del modelo.

Guía de aumento de datos

Ajustes de registro, puntos de control y gráficos#

El registro, los puntos de control, los gráficos y la gestión de archivos son importantes al entrenar un modelo YOLO:

  • Registro: sigue el progreso del modelo y diagnostica problemas con bibliotecas como TensorBoard o escribiendo en un archivo.
  • Puntos de control: guarda el modelo a intervalos regulares para reanudar el entrenamiento o probar distintas configuraciones.
  • Gráficos: visualiza el rendimiento y el progreso del entrenamiento con bibliotecas como Matplotlib o TensorBoard.
  • Gestión de archivos: organiza los archivos generados durante el entrenamiento, como puntos de control, archivos de registro y gráficos, para facilitar el acceso y el análisis.

La gestión eficaz de estos aspectos ayuda a seguir el progreso y facilita la depuración y la optimización.

ArgumentoPredeterminadoDescripción
projectNoneEspecifica el directorio raíz donde se guardan las ejecuciones de entrenamiento. Si no se especifica, las ejecuciones se guardan en runs/<task>. Cada ejecución se guarda en un subdirectorio independiente.
nameNoneDefine el nombre del experimento. Si no se especifica, YOLO utiliza el nombre del modo y lo incrementa en cada ejecución (por ejemplo, train, train-2) para evitar sobrescribir datos.
exist_okFalseDetermina si se sobrescribe un directorio de experimento existente. True permite sobrescribirlo; False lo impide.
plotsTrueControla la generación y el guardado de gráficos de entrenamiento y validación. Establécelo en True para crear gráficos como las curvas de pérdida, las curvas de precisión-exhaustividad y las predicciones de muestra, con los que podrás seguir visualmente el rendimiento.
saveTruePermite guardar los puntos de control del entrenamiento y los pesos finales del modelo. Establécelo en True para guardar periódicamente los estados del modelo, lo que permite reanudar el entrenamiento o desplegar el modelo.

Archivo de configuración personalizado#

Carga un archivo YAML guardado para reutilizar un conjunto completo de argumentos sin pasarlos en línea. El argumento cfg prevalece sobre los valores de default.yaml, mientras que los argumentos adicionales que se pasen junto a él siguen teniendo prioridad.

ArgumentoPredeterminadoDescripción
cfgNoneRuta a un archivo YAML cuyos valores sustituyen las entradas de default.yaml. Consulta Cómo sobrescribir el archivo de configuración predeterminado para ver un ejemplo práctico de CLI.

Preguntas frecuentes#

  • Mejora el rendimiento ajustando hiperparámetros como el tamaño del lote, la tasa de aprendizaje, el momentum y la caída de pesos. Ajusta los parámetros de aumento de datos, elige el optimizador adecuado y utiliza técnicas como la detención temprana o la precisión mixta. Encontrarás más información en la Guía de entrenamiento.

  • Entre los hiperparámetros clave que afectan a la precisión se incluyen:

    • Tamaño del lote (batch): los tamaños mayores pueden estabilizar el entrenamiento, pero requieren más memoria.
    • Tasa de aprendizaje (lr0): las tasas más bajas permiten ajustes más precisos, pero la convergencia es más lenta.
    • Momentum (momentum): acelera los vectores de gradiente y amortigua las oscilaciones.
    • Tamaño de imagen (imgsz): los tamaños mayores mejoran la precisión, pero aumentan la carga computacional.

    Ajústalos según tu conjunto de datos y tu hardware. Encontrarás más información en Ajustes de entrenamiento.

  • La tasa de aprendizaje (lr0) es fundamental; empieza con 0.01 para SGD o 0.001 para el optimizador Adam, y establece explícitamente optimizer, ya que el valor predeterminado auto ignora lr0. Supervisa las métricas y ajústala según sea necesario. Utiliza programadores de tasa de aprendizaje coseno (cos_lr) o calentamiento (warmup_epochs, warmup_momentum). Encontrarás más información en la Guía de entrenamiento.

  • Los ajustes predeterminados incluyen:

    • Umbral de confianza (conf=0.25): confianza mínima para las detecciones.
    • Umbral de IoU (iou=0.7): se utiliza para la supresión no máxima (NMS).
    • Tamaño de imagen (imgsz=640): cambia el tamaño de las imágenes de entrada.
    • Dispositivo (device=None): selecciona CPU, GPU CUDA, Apple MPS, Intel XPU (xpu) o NPU Huawei Ascend (npu).

    Para obtener una descripción general completa, consulta Ajustes de predicción y la Guía de predicción.

  • El entrenamiento con precisión mixta (amp=True) reduce el uso de memoria y acelera el entrenamiento mediante FP16 y FP32. Resulta beneficioso para las GPU modernas, ya que permite utilizar modelos más grandes y realizar cálculos más rápidos sin una pérdida significativa de precisión. Encontrarás más información en la Guía de entrenamiento.

Comentarios