Configuración#
Los ajustes e hiperparámetros de YOLO desempeñan un papel fundamental en el rendimiento, la velocidad y la accuracy del modelo. Estos ajustes pueden afectar al comportamiento del modelo en varias fases, como el entrenamiento, la validación y la predicción.
Watch: Mastering Ultralytics YOLO: Configuration
Los comandos de Ultralytics utilizan la siguiente sintaxis:
yolo TASK MODE ARGSDonde:
TASK(opcional) es uno de (detect, segment, semantic, depth, classify, pose, obb)MODE(obligatorio) es uno de (train, val, predict, export, track, benchmark)ARGS(opcional) son pares dearg=valuecomoimgsz=640que anulan los valores predeterminados.
Los valores predeterminados de ARG se definen en esta página y provienen del archivo cfg/default.yaml.
Tareas#
Los modelos Ultralytics YOLO pueden realizar una variedad de tareas de visión por ordenador, incluyendo:
- Detect: La Object detection identifica y localiza objetos dentro de una imagen o vídeo.
- Segment: La Instance segmentation divide una imagen o vídeo en regiones correspondientes a diferentes objetos o clases.
- Semantic segmentation (
semantic): La Semantic segmentation asigna una etiqueta de clase a cada píxel de una imagen para lograr una comprensión densa de la escena. - Depth (
depth): La Monocular depth estimation predice un mapa de profundidad por píxel en metros a partir de una única imagen RGB. - Classify: La Image classification predice la etiqueta de clase de una imagen de entrada.
- Pose: La Pose estimation identifica objetos y estima sus puntos clave en una imagen o vídeo.
- OBB: Oriented Bounding Boxes utiliza cuadros delimitadores rotados, adecuados para imágenes de satélite o médicas.
| Argumento | Predeterminado | Descripción |
|---|---|---|
task | 'detect' | Especifica la tarea de YOLO: detect para object detection, segment para segmentación de instancias, semantic para segmentación semántica, depth para estimación de profundidad monocular, classify para clasificación, pose para estimación de posturas y obb para cuadros delimitadores orientados. Cada tarea se adapta a salidas y problemas específicos en el análisis de imágenes y vídeos. |
Modos#
Los modelos Ultralytics YOLO operan en diferentes modos, cada uno diseñado para una etapa específica del ciclo de vida del modelo:
- Train: Entrena un modelo YOLO en un conjunto de datos personalizado.
- Val: Valida un modelo YOLO entrenado.
- Predict: Utiliza un modelo YOLO entrenado para hacer predicciones en imágenes o vídeos nuevos.
- Export: Exporta un modelo YOLO para su despliegue.
- Track: Rastrea objetos en tiempo real utilizando un modelo YOLO.
- Benchmark: Evalúa la velocidad y precisión de las exportaciones YOLO (ONNX, TensorRT, etc.).
| Argumento | Predeterminado | Descripció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 la conversión a formatos de despliegue, track para el seguimiento de objetos y benchmark para la evaluación del rendimiento. Cada modo admite distintas fases, desde el desarrollo hasta el despliegue. |
Configuración de entrenamiento#
Los ajustes de entrenamiento para los modelos YOLO incluyen hiperparámetros y configuraciones que afectan al rendimiento, la velocidad y la accuracy del modelo. Los ajustes clave incluyen el batch size, la learning rate, el momento y la caída de peso. La elección del optimizador, la loss function y la composición del conjunto de datos también influyen en el entrenamiento. El ajuste y la experimentación son cruciales para obtener un rendimiento óptimo. Para más detalles, consulta la Ultralytics entrypoint function.
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
model | str | None | Especifica el archivo del modelo para el entrenamiento. Acepta la ruta a un modelo preentrenado de .pt o a un archivo de configuración de .yaml. Es esencial para definir la estructura del modelo o inicializar los pesos. |
data | str | None | Ruta al archivo de configuración del conjunto de datos (por ejemplo, coco8.yaml). Este archivo contiene parámetros específicos del conjunto de datos, incluidas las rutas a los datos de entrenamiento y validation data, los nombres de las clases y el número de clases. |
epochs | int | 100 | Número total de épocas de entrenamiento. Cada epoch 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. |
time | float | None | Tiempo máximo de entrenamiento en horas. Si se establece, esto anula el argumento epochs, lo que permite que el entrenamiento se detenga automáticamente después de la duración especificada. Es útil para escenarios de entrenamiento con restricciones de tiempo. |
patience | int | 100 | Número de épocas que se debe esperar sin mejoras en las métricas de validación antes de detener anticipadamente el entrenamiento. Ayuda a evitar el overfitting deteniendo el entrenamiento cuando el rendimiento se estanca. |
batch | int o float | 16 | Batch size, con tres modos: establecido como un número entero (por ejemplo, batch=16), modo automático para un 60% de utilización de la memoria de la GPU (batch=-1), o modo automático con una fracción de utilización especificada (batch=0.70). |
imgsz | int | 640 | Tamaño de imagen objetivo para el entrenamiento. Las imágenes se redimensionan a cuadrados con lados iguales al valor especificado (si es rect=False), preservando la relación de aspecto para los modelos YOLO pero no para RT-DETR. Afecta a la accuracy del modelo y a la complejidad computacional. |
save | bool | True | Permite guardar puntos de control de entrenamiento y pesos finales del modelo. Es útil para reanudar el entrenamiento o para el model deployment. |
save_period | int | -1 | Frecuencia de guardado de puntos de control del modelo, especificada en epochs. Un valor de -1 deshabilita esta función. Útil para guardar modelos intermedios durante sesiones de entrenamiento largas. |
cache | bool | False | Permite almacenar en caché 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 E/S de disco a cambio de un mayor uso de memoria. |
device | int o str o list | None | Especifica el dispositivo o dispositivos computacionales para el entrenamiento: una sola GPU (device=0), varias GPUs (device=[0,1]), CPU (device=cpu), MPS para silicio de Apple (device=mps), NPU Ascend de Huawei (device=npu:0 o device=npu:0,1), o la selección automática de una GPU inactiva (device=-1) o varias GPUs inactivas (device=[-1,-1]). |
workers | int | 8 | Número de hilos de trabajo para la carga de datos (por RANK en caso de entrenamiento con múltiples GPUs). Influye en la velocidad del preprocesamiento de datos y en su suministro al modelo, lo cual es especialmente útil en configuraciones con múltiples GPUs. |
project | str | None | Nombre del directorio del proyecto donde se guardan los resultados del entrenamiento. Permite el almacenamiento organizado de diferentes experimentos. |
name | str | None | Nombre de la ejecución de entrenamiento. Se utiliza para crear un subdirectorio dentro de la carpeta del proyecto, donde se almacenan los registros y los resultados 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 los resultados anteriores. |
save_dir | str | None | Especifica el directorio exacto donde se guardan los resultados de la ejecución, anulando la combinación de project/name. La ruta se utiliza tal cual sin incremento automático, por lo que las ejecuciones consecutivas reutilizan el mismo directorio. |
pretrained | bool o str | True | Determina si se debe iniciar el entrenamiento a partir de pesos preentrenados. Puede ser un valor booleano o una ruta de cadena de texto a los pesos que se van a cargar. pretrained=False entrena a partir de pesos inicializados aleatoriamente mientras se mantiene la arquitectura del modelo. |
cls_remap | bool | True | Al ajustar un modelo entre conjuntos de datos, copia las filas de la cabeza de clasificación preentrenada en el nuevo modelo siempre que los nombres de las clases coincidan, de modo que las clases superpuestas conserven su sesgo aprendido, además de sus pesos cuando el ancho de la cabeza no cambia. Se aplica tanto si los recuentos de clases difieren como si coinciden con un orden de clases diferente. |
optimizer | str | 'auto' | Elección del optimizador para el entrenamiento. Las opciones incluyen SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp o auto para la selección automática basada en la configuración del modelo. Afecta a la velocidad de convergencia y a la estabilidad. |
seed | int | 0 | Establece la semilla aleatoria para el entrenamiento, asegurando la reproducibilidad de los resultados entre ejecuciones con las mismas configuraciones. |
deterministic | bool | True | Fuerza el uso de algoritmos deterministas, asegurando la reproducibilidad pero pudiendo afectar al rendimiento y la velocidad debido a la restricción de algoritmos no deterministas. |
verbose | bool | True | Habilita la salida detallada durante el entrenamiento, mostrando barras de progreso, métricas por época e información adicional de entrenamiento en la consola. |
single_cls | bool | False | Trata todas las clases en conjuntos de datos multiclase como una sola clase durante el entrenamiento. Útil para tareas de clasificación binaria o cuando te enfocas en la presencia de objetos en lugar de en su clasificación. |
classes | list[int] | None | Especifica una lista de IDs de clase para entrenar. Útil para filtrar y enfocarte solo en ciertas clases durante el entrenamiento. |
rect | bool | False | Habilita la estrategia de relleno mínimo: las imágenes de un lote se rellenan mínimamente para alcanzar un tamaño común, con el lado más largo igual a imgsz. Puede mejorar la eficiencia y la velocidad, pero puede afectar a la precisión del modelo. |
multi_scale | float | 0.0 | Varía aleatoriamente imgsz en cada lote en +/- multi_scale (por ejemplo, 0.25 -> 0.75x a 1.25x), redondeando a múltiplos del paso del modelo; 0.0 deshabilita el entrenamiento a multiescala. |
cos_lr | bool | False | Utiliza un programador de learning rate de coseno, ajustando la tasa de aprendizaje siguiendo una curva de coseno a lo largo de las épocas. Ayuda a gestionar la tasa de aprendizaje para lograr una mejor convergencia. |
close_mosaic | int | 10 | Desactiva la data augmentation de mosaico en las últimas N épocas para estabilizar el entrenamiento antes de finalizar. Establecerlo en 0 deshabilita esta característica. |
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 conteo de épocas, continuando el entrenamiento sin problemas. |
amp | bool | True | Habilita el entrenamiento con Mixed Precision automática (AMP), lo que reduce el uso de memoria y posiblemente acelera el entrenamiento con un impacto mínimo en la precisión. |
fraction | float | 1.0 | Especifica la fracción del conjunto de datos a usar para el entrenamiento. Permite entrenar con un subconjunto del conjunto de datos completo, útil para experimentos o cuando los recursos son limitados. |
profile | bool | False | Habilita la creación de perfiles de velocidades de ONNX y TensorRT durante el entrenamiento, útil para optimizar el despliegue 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. Es útil para el ajuste fino o el transfer learning. |
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 fracción de la tasa inicial = (lr0 * lrf), utilizada junto con los programadores para ajustar la tasa de aprendizaje a lo largo del tiempo. |
momentum | float | 0.937 | Factor de momento para SGD o beta1 para Adam optimizers, que influye en la incorporación de gradientes pasados en la actualización actual. |
weight_decay | float | 0.0005 | Término de regularization 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 inicial para estabilizar el entrenamiento desde el principio. |
warmup_momentum | float | 0.8 | Momento inicial para la fase de calentamiento, ajustándose gradualmente al momento establecido durante el periodo de calentamiento. |
warmup_bias_lr | float | 0.1 | Tasa de aprendizaje para los parámetros de sesgo durante la fase de calentamiento, ayudando a estabilizar el entrenamiento del modelo en las épocas iniciales. |
distill_model | str | None | Ruta a un punto de control del modelo profesor (por ejemplo, yolo26x.pt) para la destilación de conocimientos. Cuando se establece, el modelo alumno se entrena con una pérdida de destilación adicional guiada por el profesor congelado. |
dis | float | 6.0 | Peso de la pérdida de destilación añadida a las pérdidas de detección estándar. Valores más altos aumentan la influencia de la guía de características del profesor. |
box | float | 7.5 | Peso del componente de pérdida de caja en la loss function, que influye en el énfasis que se pone en predecir con precisión las coordenadas del bounding box. |
cls | float | 0.5 | Peso de la pérdida de clasificación en la función de pérdida total, afectando la importancia de una predicción de clase correcta en relación con otros componentes. |
cls_pw | float | 0.0 | Potencia para la ponderación de clases para manejar el desequilibrio de clases utilizando la frecuencia inversa de las clases. 0.0 deshabilita la ponderación de clases, 1.0 aplica una ponderación de frecuencia inversa completa. Los valores entre 0 y 1 proporcionan una ponderación parcial. |
dfl | float | 1.5 | Peso de la distribución focal loss (DFL), un término de localización de bounding box que realiza la regresión de las distancias de los bordes de la caja. |
pose | float | 12.0 | Peso de la pérdida de pose en modelos entrenados para la estimación de pose, influyendo en el énfasis en la predicción precisa de los puntos clave de pose. |
kobj | float | 1.0 | Peso de la pérdida de objetividad de puntos clave en modelos de estimación de pose, equilibrando la confianza de detección con la precisión de la pose. |
rle | float | 1.0 | Peso de la pérdida de estimación de log-verosimilitud residual en modelos de estimación de pose, que afecta la precisión de la localización de los puntos clave. |
angle | float | 1.0 | Peso de la pérdida de ángulo en modelos obb, que afecta la precisión de las predicciones de ángulo de la caja delimitadora orientada. |
dlog | float | 1.0 | Peso de la pérdida logarítmica invariante a la escala (SILog) en modelos de estimación de profundidad, el término principal que impulsa la precisión de la profundidad. |
dgrad | float | 0.5 | Peso de la pérdida de gradiente en modelos de estimación de profundidad, penalizando los errores en los bordes de profundidad y fomentando límites de superficie más nítidos. |
dlam | float | 1.0 | Factor de enfoque 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 log-RMSE simple. |
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 objetos 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 | Tasa de submuestreo para 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 regularización en tareas de clasificación, evitando 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 | True | Genera y guarda gráficos de 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. |
compile | bool o str | False | Habilita la compilación de grafos torch.compile de PyTorch 2.x con backend='inductor'. Acepta True → "default", False → deshabilita, o un modo de cadena de texto como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Vuelve al modo diligente (eager) con una advertencia si no es compatible. |
channels_last | bool | False | Usa el formato de memoria channels_last (NHWC) para las convoluciones durante el entrenamiento, lo que acelera las GPU CUDA Tensor Core sin cambios en los resultados. Se ignora automáticamente en CPU y MPS, donde no ofrece ningún beneficio. |
max_det | int | 300 | Especifica el número máximo de objetos retenidos durante la fase de validación del entrenamiento. |
El argumento batch ofrece tres opciones de configuración:
- Fixed Batch Size: Especifica el número de imágenes por lote con un número entero (por ejemplo,
batch=16). - Auto Mode (60% GPU Memory): Utiliza
batch=-1para el ajuste automático a aproximadamente el 60% de la utilización de la memoria CUDA. - Auto Mode with Utilization Fraction: Establece una fracción (por ejemplo,
batch=0.70) para realizar el ajuste en función de un uso de la memoria de la GPU especificado.
Ajustes de predicción#
Los ajustes de predicción para los modelos YOLO incluyen hiperparámetros y configuraciones que influyen en el rendimiento, la velocidad y la accuracy durante la inferencia. Los ajustes clave incluyen el umbral de confianza, el umbral de Non-Maximum Suppression (NMS) y el número de clases. El tamaño de los datos de entrada, el formato y las características suplementarias como las máscaras también afectan a las predicciones. Ajustar estos ajustes es esencial para obtener un rendimiento óptimo.
Argumentos de inferencia:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
source | str o int o None | None | Especifica la fuente de datos para la inferencia. Puede ser una ruta de imagen, un archivo de vídeo, un directorio, una URL o un ID de 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 gama de formatos y fuentes, lo que permite una aplicación flexible en different types of input. |
conf | float | 0.25 | Establece el umbral mínimo de confianza para las detecciones. Los objetos detectados con una confianza inferior a este umbral serán descartados. Ajustar este valor puede ayudar a reducir los falsos positivos. |
iou | float | 0.7 | Umbral de Intersection Over Union (IoU) para Non-Maximum Suppression (NMS). Los valores más bajos dan lugar a un menor número de detecciones al eliminar los cuadros superpuestos, lo cual es útil para reducir los duplicados. |
imgsz | int o tuple | 640 | Destino Letterbox. Un número entero da un N×N cuadrado; una tupla da (height, width). Con rect=True, el tensor real puede ser más pequeño que este objetivo debido al relleno de rectángulo mínimo. Utiliza rect=False para un tamaño fijo. Consulta Fixed shape vs minimum rectangle. |
rect | bool | True | Si es True, utiliza un relleno de rectángulo mínimo cuando sea posible (lote de la misma forma y backend compatible). Si es False, rellena siempre hasta el imgsz completo. Consulta Fixed shape vs minimum rectangle. |
quantize | int o str | None | Precisión de la inferencia: 16/"fp16" habilita la inferencia en FP16 en GPUs compatibles; 32/"fp32"/sin establecer es FP32. La cuantización INT8/PTQ se configura durante el export y, a continuación, se utiliza cargando el modelo exportado. Sustituye al indicador obsoleto half. |
device | str | None | Especifica el dispositivo para la inferencia (por ejemplo, cpu, cuda:0, 0, npu o npu:0). Permite a los usuarios seleccionar entre la CPU, una GPU específica, la NPU Ascend de Huawei u otros dispositivos de computación para la ejecución del modelo. |
batch | int | 1 | Especifica el tamaño del lote para la inferencia (solo funciona cuando la fuente es a directory, video file, or .txt file). Un tamaño de lote mayor puede proporcionar un mayor rendimiento, acortando el tiempo total requerido para la inferencia. |
max_det | int | 300 | Número máximo de detecciones permitidas por imagen. Limita el número total de objetos que el modelo puede detectar en una única inferencia, evitando salidas excesivas en escenas densas. |
vid_stride | int | 1 | Salto de fotogramas para entradas de vídeo. Permite omitir fotogramas en vídeos para acelerar el procesamiento a costa de la resolución temporal. Un valor de 1 procesa cada fotograma, valores más altos omiten fotogramas. |
stream_buffer | bool | False | Determina si se deben poner en cola los fotogramas entrantes para las secuencias de vídeo. Si es False, los fotogramas antiguos se descartan para dar cabida a los nuevos (optimizado para aplicaciones en tiempo real). Si es True, pone en cola los nuevos fotogramas en un búfer, lo que garantiza que no se omita ningún fotograma, pero provocará latencia si los FPS de la inferencia son inferiores a los FPS de la secuencia. |
visualize | bool | False | Guarda un mapa de calor de activación de clases junto a cada predicción, mostrando qué píxeles elevaron las puntuaciones de las clases predichas. Respeta conf y classes, por lo que classes=[0] mapea solo esa clase. Solo disponible para modelos de PyTorch. |
augment | bool | False | Habilita la aumentación durante la prueba (TTA) para las predicciones, mejorando potencialmente la robustez de la detección a costa de la velocidad de inferencia. |
agnostic_nms | bool | False | Habilita la Supresión de no máximos (NMS) agnóstica de clase, que fusiona cajas superpuestas de diferentes clases. Útil en escenarios de detección multiclase donde la superposición de clases es común. Para modelos de extremo a extremo (YOLO26, YOLOv10), esto solo evita que la misma detección aparezca con múltiples etiquetas de clase (duplicados de IoU=1.0) y no realiza una supresión basada en el umbral de IoU entre cajas distintas. |
classes | list[int] | None | Filtra las predicciones a un conjunto de IDs de clase. Solo se devolverán las detecciones pertenecientes a las clases especificadas. Útil para centrarse en objetos relevantes en tareas de detección multiclase. |
retina_masks | bool | False | Devuelve máscaras de segmentación de alta resolución. Las máscaras devueltas (masks.data) coincidirán con el tamaño de la imagen original si se activa. Si se desactiva, tendrán el tamaño de imagen utilizado durante la inferencia. |
embed | list[int] | None | Especifica las capas de las que extraer vectores de características o embeddings. Utiliza model.embed(source) para las incrustaciones de la penúltima capa, o model.predict(source, embed=[layer]) para seleccionar capas específicas. Es útil para tareas posteriores como la agrupación en clústeres (clustering) o la búsqueda de similitudes. |
project | str | None | Nombre del directorio del proyecto donde se guardan los resultados de la predicción si save está habilitado. |
name | str | None | Nombre de la ejecución de predicción. Se utiliza para crear un subdirectorio dentro de la carpeta del proyecto, donde se almacenan los resultados de la predicción si save está habilitado. |
stream | bool | False | Habilita el procesamiento eficiente en memoria para vídeos largos o numerosas imágenes al devolver un generador de objetos Results en lugar de cargar todos los fotogramas en la memoria de una vez. |
verbose | bool | True | Controla si se deben mostrar registros de inferencia detallados en el terminal, proporcionando información en tiempo real sobre el proceso de predicción. |
compile | bool o str | False | Habilita la compilación de grafos torch.compile de PyTorch 2.x con backend='inductor'. Acepta True → "default", False → deshabilita, o un modo de cadena de texto como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Vuelve al modo diligente (eager) con una advertencia si no es compatible. |
channels_last | bool | False | Usa el formato de memoria channels_last (NHWC) para las convoluciones durante la inferencia, lo que acelera las GPU CUDA Tensor Core sin cambios en los resultados. Se aplica solo a modelos nativos de PyTorch; se ignora para CPU, MPS y formatos exportados como TensorRT y ONNX. |
end2end | bool | None | Anula el modo de extremo a extremo (end-to-end) en los modelos YOLO que admiten inferencia sin NMS (YOLO26, YOLOv10). Configurarlo en False te permite ejecutar la predicción utilizando la canalización NMS tradicional, lo que te permite además hacer uso del argumento iou. Consulta la End-to-End Detection guide para obtener más detalles. |
Argumentos de visualización:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
show | bool | False | Si es True, muestra las imágenes o vídeos anotados en una ventana. Es útil para obtener retroalimentación visual inmediata durante el desarrollo o las pruebas. |
save | bool | False or True | Habilita el guardado de las imágenes o vídeos anotados en archivos. Útil para documentación, análisis posterior o compartir resultados. Predeterminado a True cuando se usa CLI y False cuando se usa en Python. |
save_frames | bool | False | Al procesar vídeos, guarda fotogramas individuales como imágenes. Útil para extraer fotogramas específicos o para un análisis detallado fotograma a fotograma. |
save_txt | bool | False | Guarda los resultados de la detección en un archivo de texto, siguiendo el formato [class] [x_center] [y_center] [width] [height] [confidence]. Es útil para la integración con otras herramientas de análisis. |
save_conf | bool | False | Incluye puntuaciones de confianza en los archivos de texto guardados. Mejora el detalle disponible para el posprocesamiento y el análisis. |
save_crop | bool | False | Guarda imágenes recortadas de las detecciones. Útil para la aumentación de conjuntos de datos, el análisis o la creación de conjuntos de datos enfocados en objetos específicos. |
show_labels | bool | True | Muestra las etiquetas para cada detección en la salida visual. Proporciona una comprensión inmediata de los objetos detectados. |
show_conf | bool | True | Muestra la puntuación de confianza para cada detección junto a la etiqueta. Proporciona información sobre la certeza del modelo para cada detección. |
show_boxes | bool | True | Dibuja cajas delimitadoras alrededor de los objetos detectados. Esencial para la identificación visual y la ubicación de objetos en imágenes o fotogramas de vídeo. |
line_width | int or None | None | Especifica el grosor de línea de los cuadros delimitadores. Si es None, el grosor de la línea se ajusta automáticamente según el tamaño de la imagen. Proporciona una personalización visual para mayor claridad. |
Ajustes de validación#
Los ajustes de validación para los modelos YOLO implican hiperparámetros y configuraciones para evaluar el rendimiento en un validation dataset. Estos ajustes influyen en el rendimiento, la velocidad y la accuracy. Los ajustes comunes 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, junto con la tarea específica, también afectan al proceso.
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
data | str | None | Especifica la ruta al archivo de configuración del conjunto de datos (por ejemplo, coco8.yaml). Este archivo debe incluir la ruta a los validation data. |
imgsz | int | 640 | Define el tamaño de las imágenes de entrada. Todas las imágenes se redimensionan a esta dimensión antes del procesamiento. Tamaños mayores pueden mejorar la precisión para objetos pequeños pero aumentan el tiempo de cómputo. |
batch | int | 16 | Establece el número de imágenes por lote. Valores más altos utilizan la memoria de la GPU de forma más eficiente pero requieren más VRAM. Ajusta según los recursos de hardware disponibles. |
save_json | bool | False | Si es True, guarda los resultados en un archivo JSON para su posterior análisis, integración con otras herramientas o envío a servidores de evaluación como COCO. |
conf | float | 0.001 | Establece el umbral de confianza mínimo para las detecciones. Los valores más bajos aumentan la recuperación, pero pueden introducir más falsos positivos. Se utiliza durante la validation para calcular las curvas de precisión-recuperación. El valor predeterminado es 0.01 para la validación OBB para reducir el uso de memoria. |
iou | float | 0.7 | Establece el umbral de Intersection Over Union para la Non-Maximum Suppression. Controla la eliminación de detecciones duplicadas. |
max_det | int | 300 | Limita el número máximo de detecciones por imagen. Útil en escenas densas para evitar detecciones excesivas y gestionar los recursos computacionales. |
quantize | int o str | None | Precisión de la validación: 16/"fp16" habilita la validación en FP16 en GPUs compatibles; 32/"fp32"/sin establecer es FP32. La cuantización INT8/PTQ se configura durante el export y, a continuación, se utiliza validando el modelo exportado. Sustituye al indicador obsoleto half. |
device | str | None | Especifica el dispositivo para la validación (cpu, cuda:0, npu, npu:0, etc.). Cuando es None, selecciona automáticamente el mejor dispositivo disponible. Se pueden especificar varios dispositivos CUDA separados por comas. |
dnn | bool | False | Si es True, utiliza el módulo DNN de OpenCV para la inferencia del modelo ONNX, ofreciendo una alternativa a los métodos de inferencia de PyTorch. |
plots | bool | True | Cuando se establece en True, genera y guarda gráficos de predicciones frente a la verdad de terreno (ground truth), matrices de confusión y curvas PR para la evaluación visual del rendimiento del modelo. |
classes | list[int] | None | Especifica una lista de IDs de clase para evaluar. Útil para filtrar y centrarse solo en determinadas clases durante la evaluación. |
rect | bool | True | Si es True, utiliza la inferencia rectangular para el procesamiento por lotes, lo que reduce el relleno y potencialmente aumenta la velocidad y la eficiencia al procesar las imágenes en su relación de aspecto original. |
split | str | 'val' | Determina la partición del conjunto de datos que se va a utilizar para la validación (val, test o train). Permite flexibilidad en la elección del segmento de datos para la evaluación del rendimiento. |
project | str | None | Nombre del directorio del proyecto donde se guardan las salidas de validación. Ayuda a organizar los resultados de diferentes experimentos o modelos. |
name | str | None | Nombre de la ejecución de validación. Se utiliza para crear un subdirectorio dentro de la carpeta del proyecto, donde se almacenan los registros y resultados de la validación. |
verbose | bool | True | Si es True, muestra información detallada durante el proceso de validación, incluidas las métricas por clase, el progreso de los lotes y la información de depuración adicional. |
save_txt | bool | False | Si es True, guarda los resultados de la detección en archivos de texto, con un archivo por imagen, lo cual es útil para un análisis posterior, un postprocesamiento personalizado o la integración con otros sistemas. |
save_conf | bool | False | Si es True, incluye los valores de confianza en los archivos de texto guardados cuando save_txt está habilitado, proporcionando una salida más detallada para el análisis y el filtrado. |
workers | int | 8 | Número de hilos de trabajo para la carga de datos. Valores más altos pueden acelerar el preprocesamiento de datos, pero pueden aumentar el uso de CPU. Establecerlo en 0 utiliza el hilo principal, lo que puede ser más estable en algunos entornos. |
augment | bool | False | Habilita la técnica de aumento durante la prueba (TTA) durante la validación, lo que mejora potencialmente la precisión de la detección a costa de la velocidad de inferencia al ejecutar la inferencia en versiones transformadas de la entrada. |
agnostic_nms | bool | False | Habilita la Non-Maximum Suppression agnóstica de clases, que fusiona los cuadros superpuestos independientemente de su clase predicha. Es útil para aplicaciones centradas en instancias. Para los modelos de extremo a extremo (YOLO26, YOLOv10), esto solo evita que la misma detección aparezca con múltiples etiquetas de clase (duplicados con IoU=1.0) y no realiza una supresión basada en el umbral de IoU entre cuadros distintos. |
single_cls | bool | False | Trata todas las clases como una sola clase durante la validación. Útil para evaluar el rendimiento del modelo en tareas de detección binaria o cuando las distinciones de clase no son importantes. |
visualize | bool | False | Visualiza las verdades fundamentales, los verdaderos positivos, los falsos positivos y los falsos negativos para cada imagen. Útil para la depuración y la interpretación del modelo. |
show_labels | bool | True | Muestra las etiquetas de clase en las visualizaciones de validación cuando se usa visualize=True. Establécelo en False para obtener una vista más limpia de las coincidencias y los errores. |
show_conf | bool | True | Muestra las puntuaciones de confianza en las visualizaciones de validación cuando se usa visualize=True. Establécelo en False para obtener una vista más limpia de las coincidencias y los errores. |
compile | bool o str | False | Habilita la compilación de grafos torch.compile de PyTorch 2.x con backend='inductor'. Acepta True → "default", False → deshabilita, o un modo de cadena de texto como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Vuelve al modo diligente (eager) con una advertencia si no es compatible. |
channels_last | bool | False | Utiliza el formato de memoria channels_last (NHWC) para las convoluciones durante la validación, lo que acelera las GPU CUDA Tensor Core sin cambios en los resultados. Se aplica únicamente a modelos nativos de PyTorch; se ignora para CPU, MPS y formatos exportados como TensorRT y ONNX. |
end2end | bool | None | Anula el modo de extremo a extremo (end-to-end) en los modelos YOLO que admiten inferencia sin NMS (YOLO26, YOLOv10). Configurarlo en False te permite ejecutar la validación utilizando la canalización NMS tradicional, lo que te permite además hacer uso del argumento iou. |
Un ajuste cuidadoso y la experimentación son cruciales para garantizar un rendimiento óptimo y para detectar y evitar el overfitting.
Configuración de exportación#
La configuración de exportación para los modelos YOLO incluye configuraciones para guardar o exportar el modelo para su uso en diferentes entornos. Estos ajustes afectan al rendimiento, al tamaño y a la compatibilidad. Los ajustes clave incluyen el formato de archivo exportado (p. ej., ONNX, TensorFlow SavedModel), el dispositivo de destino (p. ej., CPU, GPU) y funciones como las máscaras. La tarea del modelo y las restricciones del entorno de destino también afectan al proceso de exportación.
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
format | str | 'torchscript' | Formato de destino para el modelo exportado, como 'onnx', 'torchscript', 'engine' (TensorRT) u otros. Cada formato permite la compatibilidad con diferentes deployment environments. |
imgsz | int o tuple | 640 | Tamaño de imagen deseado para la entrada del modelo. Puede ser un número entero para imágenes cuadradas (por ejemplo, 640 para 640×640) o una tupla (height, width) para dimensiones específicas. |
keras | bool | False | Habilita la exportación al formato Keras para SavedModel de TensorFlow, proporcionando compatibilidad con las API y el servicio de TensorFlow. |
optimize | bool | False | Habilita una mayor optimización del compilador para DEEPX, lo que reduce la latencia de inferencia mientras aumenta el tiempo de compilación. |
quantize | int o str | None | Precisió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 de accuracy mínima, principalmente para edge devices; necesita calibración data/fraction); 32/sin establecer es FP32. Los formatos de exportación que admiten precisión mixta de pesos y activaciones también aceptan la notación 'w8a8'/'w16a16'/'w8a16'/'w8a32'. Sustituye a los indicadores obsoletos half/int8 (half=True → 16, int8=True → 8, que todavía se aceptan con una advertencia de obsolescencia). Solo se permiten las precisiones compatibles con el formato de destino (véase más abajo). |
dynamic | bool | False | Permite tamaños de entrada dinámicos para exportaciones de TorchScript, ONNX, OpenVINO, TensorRT y CoreML, mejorando la flexibilidad en el manejo de dimensiones de imagen variables. |
simplify | bool | True | Simplifica el grafo ONNX intermedio con onnxslim para las exportaciones que construyen uno (consulta Export Formats), mejorando potencialmente el rendimiento y la compatibilidad con los motores de inferencia. |
opset | int | None | Especifica la versión del conjunto de operadores (opset) de ONNX para las exportaciones que construyen un grafo ONNX (consulta Export Formats), para garantizar la compatibilidad con diferentes analizadores y tiempos de ejecución de ONNX. Si no se establece, utiliza la última versión compatible. |
workspace | float o None | None | Establece el tamaño máximo del espacio de trabajo en GiB para las optimizaciones de TensorRT, equilibrando el uso de memoria y el rendimiento. Utiliza None para la asignación automática por parte de TensorRT hasta el máximo del dispositivo. |
nms | bool | False | Añade Non-Maximum Suppression (NMS) al modelo exportado cuando sea compatible (consulta Export Formats), mejorando la eficiencia del postprocesamiento de detecciones. No disponible para modelos end2end. En el caso de CoreML, solo es compatible con modelos de detección. |
batch | int | 1 | Especifica el tamaño de la inferencia por lotes del modelo de exportación o el número máximo de imágenes que el modelo exportado procesará simultáneamente en el modo predict. Para las exportaciones a Edge TPU, esto se establece automáticamente en 1. |
device | str | None | Especifica el dispositivo para la exportación: GPU (device=0), CPU (device=cpu), MPS para silicio de Apple (device=mps), NPU Ascend de Huawei (device=npu o device=npu:0), o DLA para NVIDIA Jetson (device=dla:0 o device=dla:1). Las exportaciones de TensorRT utilizan automáticamente la GPU, pero TensorRT 11.0 no es compatible con DLA. |
data | str | None | Ruta al archivo de configuración del dataset, esencial para la calibración de la cuantización INT8. Si no se especifica con INT8 habilitado, Ultralytics selecciona un conjunto de datos de calibración específico para la tarea cuando es necesario, o recurre al conjunto de datos predeterminado para la tarea del modelo. |
fraction | float | 1.0 | Especifica la fracción del conjunto de datos a utilizar para la calibración de cuantización INT8. Permite calibrar en un subconjunto del conjunto de datos completo, útil para experimentos o cuando los recursos son limitados. Si no se especifica con INT8 habilitado, se utilizará el conjunto de datos completo. |
end2end | bool | None | Anula el modo de extremo a extremo (end-to-end) en los modelos YOLO que admiten inferencia sin NMS (YOLO26, YOLOv10). Configurarlo en False te permite exportar estos modelos para que sean compatibles con la canalización de postprocesamiento tradicional basada en NMS. Consulta la End-to-End Detection guide para obtener más detalles. |
Una configuración meditada garantiza que el modelo exportado esté optimizado para su caso de uso y funcione eficazmente en el entorno de destino.
Configuración de soluciones#
Los ajustes de configuración de Ultralytics Solutions ofrecen flexibilidad para personalizar modelos para tareas como el conteo de objetos, la creación de mapas de calor, el seguimiento de ejercicios, el análisis de datos, el seguimiento de zonas, la gestión de colas y el conteo basado en regiones. Estas opciones permiten ajustes sencillos para obtener resultados precisos y útiles adaptados a necesidades específicas.
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
model | str | None | Ruta a un archivo de modelo YOLO de Ultralytics. |
region | list o dict | None | Puntos que definen la región de interés, ya sea una lista de tuplas (x, y) o un diccionario que mapea nombres de regiones a listas de puntos para múltiples regiones (solo RegionCounter). Cuando es None, las soluciones que requieren una región recurren a un valor predeterminado. |
show_in | bool | True | Flag para controlar si se muestran los conteos de entrada en la transmisión de vídeo. |
show_out | bool | True | Flag para controlar si se muestran los conteos de salida en la transmisión de vídeo. |
analytics_type | str | 'line' | Tipo de grafo, es decir, line, bar, area o pie. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Mapa de colores a usar para el mapa de calor. |
json_file | str | None | Ruta al archivo JSON que contiene todos los datos de coordenadas del aparcamiento. |
up_angle | float | 145.0 | Umbral de ángulo para la pose 'arriba'. |
kpts | list[int] | '[6, 8, 10]' | Lista de tres índices de puntos clave utilizados para monitorear entrenamientos. Estos puntos clave corresponden a articulaciones o partes del cuerpo, como hombros, codos y muñecas, para ejercicios como flexiones, dominadas, sentadillas y ejercicios abdominales. |
down_angle | int | 90 | Umbral de ángulo para la pose 'abajo'. |
blur_ratio | float | 0.5 | Ajusta el porcentaje de la intensidad del desenfoque (blur), con valores en el rango 0.1 - 1.0. |
crop_dir | str | 'cropped-detections' | Nombre del directorio para almacenar las detecciones recortadas. |
records | int | 5 | Recuento total de detecciones para activar un correo electrónico con el sistema de alarma de seguridad. |
vision_point | tuple[int, int] | (20, 20) | El punto donde la visión rastreará objetos y dibujará trayectorias usando la solución VisionEye. |
source | str | None | Ruta a la fuente de entrada (vídeo, RTSP, etc.). Solo utilizable con la interfaz de línea de comandos (CLI) de Solutions. |
figsize | tuple[float, float] | (12.8, 7.2) | Tamaño de la figura para gráficos analíticos como mapas de calor o gráficas. |
fps | float | 30.0 | Fotogramas por segundo utilizados para los cálculos de velocidad. |
max_hist | int | 5 | Máximos puntos históricos a rastrear por objeto para los cálculos de velocidad/dirección. |
meter_per_pixel | float | 0.05 | Factor de escala utilizado para convertir la distancia de píxeles a unidades del mundo real. |
max_speed | int | 120 | Límite máximo de velocidad en superposiciones visuales (utilizado en alertas). |
data | str | 'images' | Ruta al directorio de imágenes utilizado para la búsqueda por similitud. |
imgsz | int | 640 | Tamaño de la imagen de entrada para la inferencia del modelo. |
Configuración de aumento#
Las técnicas de Data augmentation son esenciales para mejorar la solidez y el rendimiento del modelo YOLO mediante la introducción de variabilidad en los training data, ayudando a que el modelo generalice mejor a datos no vistos. La siguiente tabla resume el propósito y el efecto de cada argumento de aumento:
| Argumento | Tipo | Predeterminado | Tareas compatibles | Rango | Descripción |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Ajusta el tono de la imagen mediante una fracción de la rueda de colores, introduciendo variabilidad de color. Ayuda al modelo a generalizar bajo diferentes condiciones de iluminación. |
hsv_s | float | 0.7 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Altera la saturación de la imagen mediante una fracción, afectando la intensidad de los colores. Útil para simular diferentes condiciones ambientales. |
hsv_v | float | 0.4 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Modifica el valor (brillo) de la imagen mediante una fracción, ayudando al modelo a funcionar bien bajo diversas condiciones de iluminación. |
degrees | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 180 | Rota la imagen aleatoriamente dentro del rango de grados especificado, lo que mejora la capacidad del modelo para reconocer objetos en diversas orientaciones. |
translate | float | 0.1 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | Traslada la imagen horizontal y verticalmente en una fracción del tamaño de la imagen, lo que ayuda a aprender a detectar objetos parcialmente visibles. |
scale | float | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0 - 1 | Escala la imagen mediante un factor de ganancia, simulando objetos a diferentes distancias de la cámara. |
shear | float | 0 | detect, segment, semantic, depth, pose, obb | -180 - +180 | Inclina (cizalla) la imagen en un grado especificado, imitando el efecto de ver objetos desde diferentes ángulos. |
perspective | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 0.001 | Aplica una transformación de perspectiva aleatoria a la imagen, mejorando la capacidad del modelo para entender objetos en el espacio 3D. |
flipud | float | 0 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Voltea la imagen verticalmente (arriba/abajo) con la probabilidad especificada, aumentando la variabilidad de los datos sin afectar a las características del objeto. |
fliplr | float | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Voltea la imagen horizontalmente (izquierda/derecha) con la probabilidad especificada, útil para aprender objetos simétricos y aumentar la diversidad del conjunto de datos. |
bgr | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | Intercambia los canales de la imagen de RGB a BGR con la probabilidad especificada, útil para aumentar la robustez ante un orden de canales incorrecto. |
mosaic | float | 1 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Combina cuatro imágenes de entrenamiento en una, simulando diferentes composiciones de escenas e interacciones entre objetos. Es altamente eficaz para la comprensión de escenas complejas. |
mixup | float | 0 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Fusiona dos imágenes y sus etiquetas, creando una imagen compuesta. Mejora la capacidad de generalización del modelo introduciendo ruido en las etiquetas y variabilidad visual. |
cutmix | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Combina porciones de dos imágenes, creando una fusión parcial mientras mantiene regiones distintas. Aumenta la robustez del modelo al crear escenarios de oclusión. |
copy_paste | float | 0 | segment | 0.0 - 1.0 | Copia y pega objetos entre imágenes para aumentar el número de instancias de objetos. |
copy_paste_mode | str | flip | segment | - | Especifica la estrategia copy-paste que se va a usar. Las opciones incluyen 'flip' y 'mixup'. |
auto_augment | str | randaugment | classify | - | Aplica una directiva de aumento predefinida ('randaugment', 'autoaugment' o 'augmix') para mejorar el rendimiento del modelo mediante la diversidad visual. |
erasing | float | 0.4 | classify | 0.0 - 1.0 | Elimina regiones de la imagen aleatoriamente durante el entrenamiento para animar al modelo a centrarse en características menos obvias. |
augmentations | list | None | detect, segment, semantic, pose, obb | - | Transformaciones personalizadas de Albumentations para un aumento de datos avanzado (solo para la API de Python). Acepta una lista de objetos de transformación para necesidades de aumento especializadas. |
Ajusta estos parámetros para cumplir con los requisitos del conjunto de datos y la tarea. Experimentar con diferentes valores puede ayudar a encontrar la estrategia de aumento óptima para obtener el mejor rendimiento del modelo.
Configuración de registros, puntos de control y gráficos#
El registro, los puntos de control, la representación gráfica y la gestión de archivos son importantes al entrenar un modelo YOLO:
- Registro: Realiza un seguimiento del progreso del modelo y diagnostica problemas usando bibliotecas como TensorBoard o escribiendo en un archivo.
- Puntos de control (checkpoints): Guarda el modelo a intervalos regulares para reanudar el entrenamiento o experimentar con diferentes configuraciones.
- Representación gráfica (plotting): Visualiza el rendimiento y el progreso del entrenamiento utilizando 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 realizar un seguimiento del progreso y facilita la depuración y la optimización.
| Argumento | Predeterminado | Descripción |
|---|---|---|
project | None | Especifica el directorio raíz para guardar las ejecuciones de entrenamiento. Si no se especifica, las ejecuciones se guardan en runs/<task>. Cada ejecución se guarda en un subdirectorio separado. |
name | None | Define el nombre del experimento. Si no se especifica, YOLO usa el nombre del modo y lo incrementa para cada ejecución (p. ej., train, train-2) para evitar sobrescribir. |
exist_ok | False | Determina si se debe sobrescribir un directorio de experimento existente. True permite sobrescribir; False lo impide. |
plots | True | Controla la generación y el guardado de los gráficos de entrenamiento y validación. Establécelo en True para crear gráficos como curvas de pérdida, curvas de precisión-exhaustividad y predicciones de muestra para el seguimiento visual del rendimiento. |
save | True | Habilita el guardado de puntos de control de entrenamiento y pesos finales del modelo. Establécelo en True para guardar los estados del modelo periódicamente, permitiendo 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 anula los valores de default.yaml, mientras que los argumentos adicionales pasados junto a él siguen teniendo prioridad.
| Argumento | Predeterminado | Descripción |
|---|---|---|
cfg | None | Ruta a un archivo YAML cuyos valores reemplazan las entradas de default.yaml. Consulta Overriding Default Config File para ver un ejemplo práctico de CLI. |
FAQ#
¿Cómo puedo mejorar el rendimiento de mi modelo YOLO durante el entrenamiento?#
Mejora el rendimiento ajustando hiperparámetros como el tamaño de lote, la tasa de aprendizaje, el momento y la descomposición de peso. Ajusta la configuración de aumento de datos, selecciona el optimizador adecuado y utiliza técnicas como la parada anticipada o la precisión mixta. Para obtener detalles, consulta la Guía de entrenamiento.
¿Cuáles son los hiperparámetros clave para la precisión del modelo YOLO?#
Los hiperparámetros clave que afectan a la precisión incluyen:
- Tamaño de lote (
batch): Los tamaños mayores pueden estabilizar el entrenamiento, pero necesitan más memoria. - Tasa de aprendizaje (
lr0): Las tasas más pequeñas ofrecen ajustes finos pero una convergencia más lenta. - Momento (
momentum): Acelera los vectores de gradiente, amortiguando 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. Obtén más información en Configuración de entrenamiento.
¿Cómo establezco la tasa de aprendizaje para entrenar un modelo YOLO?#
La tasa de aprendizaje (lr0) es crucial; empieza con 0.01 para SGD o 0.001 para el optimizador Adam. Monitoriza las métricas y ajústala según sea necesario. Usa programadores de tasa de aprendizaje de coseno (cos_lr) o calentamiento (warmup_epochs, warmup_momentum). Los detalles se encuentran en la Guía de entrenamiento.
¿Cuáles son los ajustes de inferencia predeterminados para los modelos YOLO?#
Los ajustes predeterminados incluyen:
- Umbral de confianza (
conf=0.25): Confianza mínima para las detecciones. - Umbral de IoU (
iou=0.7): Para la supresión de no máximos (NMS). - Tamaño de imagen (
imgsz=640): Redimensiona las imágenes de entrada. - Dispositivo (
device=None): Selecciona CPU, GPU, Apple MPS o Huawei Ascend NPU (npu).
Para obtener una descripción general completa, consulta Configuración de predicción y la Guía de predicción.
¿Por qué utilizar el entrenamiento con precisión mixta con modelos YOLO?#
El entrenamiento con precisión mixta (amp=True) reduce el uso de memoria y acelera el entrenamiento usando FP16 y FP32. Es beneficioso para las GPU modernas, ya que permite modelos más grandes y cálculos más rápidos sin una pérdida significativa de precisión. Obtén más información en la Guía de entrenamiento.