Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Tamaño del lote (Batch Size)

Descubra el impacto del tamaño del lote en el aprendizaje profundo. Optimice la velocidad de entrenamiento, el uso de la memoria y el rendimiento del modelo de forma eficiente.

En el ámbito del aprendizaje automático y , en particular, del aprendizaje profundo, el tamaño del lote se refiere al número de ejemplos de entrenamiento utilizados en una iteración del entrenamiento del modelo. En lugar de introducir todos los datos de entrenamiento en la red neuronal de una sola vez, lo que a menudo es computacionalmente imposible debido a las limitaciones de memoria, el conjunto de datos se divide en subconjuntos más pequeños llamados lotes. El modelo procesa un lote, calcula el error y actualiza sus ponderaciones internas mediante retropropagación antes de pasar al siguiente lote. Este hiperparámetro desempeña un papel fundamental a la hora de determinar tanto la velocidad del entrenamiento como la estabilidad del proceso de aprendizaje .

La dinámica de la formación con lotes

La elección del tamaño del lote altera fundamentalmente la forma en que el algoritmo de optimización, normalmente una variante del descenso del gradiente estocástico, navega por el panorama de pérdidas.

  • Tamaños de lotes pequeños: el uso de un número pequeño (por ejemplo, 8 o 16) da lugar a actualizaciones «ruidosas». Si bien la estimación del gradiente es menos precisa para el conjunto de datos en su totalidad, este ruido a veces puede ayudar al modelo a escapar de mínimos locales, lo que puede conducir a una mejor generalización. Sin embargo, los lotes más pequeños requieren más actualizaciones por época, lo que puede ralentizar el entrenamiento en términos de tiempo real debido a la sobrecarga.
  • Tamaños de lote grandes: un lote más grande (por ejemplo, 128 o 256) proporciona una estimación más precisa del gradiente, lo que conduce a una convergencia más suave de la función de pérdida. Permite una paralelización masiva en hardware moderno, lo que acelera significativamente el cálculo. Sin embargo, si el lote es demasiado grande, el modelo podría estabilizarse en mínimos pronunciados y subóptimos, lo que provocaría un sobreajuste y una capacidad reducida para generalizar a nuevos datos.

Implicaciones de hardware y memoria

Los profesionales a menudo deben seleccionar un tamaño de lote basado en las limitaciones del hardware en lugar de en una preferencia puramente teórica. Los modelos de aprendizaje profundo, especialmente las arquitecturas grandes como los transformadores o las redes convolucionales avanzadas, se almacenan en la VRAM de un GPU.

Al utilizar NVIDIA CUDA para la aceleración, la VRAM debe contener los parámetros del modelo, el lote de datos de entrada y las salidas de activación intermedias necesarias para el cálculo del gradiente. Si el tamaño del lote excede la memoria disponible, el entrenamiento se bloqueará con un error de «memoria insuficiente» (OOM). A menudo se emplean técnicas como el entrenamiento de precisión mixta para reducir el uso de memoria, lo que permite tamaños de lote más grandes en el mismo hardware.

Distinguir conceptos relacionados

Para configurar el entrenamiento de manera eficaz, es esencial distinguir el tamaño del lote de otros términos temporales en el bucle de entrenamiento .

  • Tamaño del lote frente a época: una época representa una pasada completa por todo el conjunto de datos de entrenamiento. El tamaño del lote determina en cuántos fragmentos se divide el dato dentro de esa época. Por ejemplo, si tiene 1000 imágenes y un tamaño de lote de 100, se necesitarán 10 iteraciones para completar una época.
  • Tamaño del lote frente a iteración: Una iteración (o paso) es el acto de procesar un lote y actualizar los pesos. El número total de iteraciones en el entrenamiento es el número de lotes por época multiplicado por el número total de épocas.
  • Tamaño del lote frente a normalización por lotes: Aunque comparten nombre, la normalización por lotes es un tipo de capa específico que normaliza las entradas de la capa basándose en la media y la varianza del lote actual. Esta técnica depende en gran medida del tamaño del lote; si el tamaño del lote es demasiado pequeño (por ejemplo, 2), las estimaciones estadísticas dejan de ser fiables, lo que puede degradar el rendimiento.

Aplicaciones en el mundo real

Ajustar el tamaño del lote es una necesidad habitual al implementar soluciones de visión artificial en diversos sectores.

  1. Imágenes médicas de alta fidelidad: en el campo de la IA en el sector sanitario, los profesionales suelen trabajar con datos volumétricos en 3D, como resonancias magnéticas o tomografías computarizadas. Estos archivos son increíblemente densos y consumen mucha memoria. Para realizar tareas como el análisis de imágenes médicas o la compleja segmentación de imágenes sin bloquear el sistema, los ingenieros suelen reducir el tamaño del lote a un número muy pequeño, a veces incluso a un lote de 1. En este caso, la prioridad es procesar los detalles de alta resolución en lugar de la velocidad de entrenamiento en bruto.
  2. Control de calidad industrial: Por el contrario, en la IA aplicada a la fabricación, la velocidad es primordial. Los sistemas automatizados que inspeccionan los productos en una cinta transportadora deben procesar miles de imágenes por hora. Durante la inferencia, los ingenieros pueden agregar las imágenes de las cámaras en lotes más grandes para maximizar la utilización de los dispositivos de IA periféricos, lo que garantiza un alto rendimiento para la detección de defectos en tiempo real .

Configuración del tamaño del lote en Python

Al utilizar el Paquete Ultralytics Python, establecer el tamaño del lote es sencillo. Puede especificar un número entero fijo o utilizar el batch=-1 configuración, que utiliza el Función AutoBatch para calcular automáticamente el tamaño máximo de lote que su hardware puede manejar de forma segura.

El siguiente ejemplo muestra cómo entrenar un modelo YOLO26(el último estándar en velocidad y precisión) utilizando una configuración de lote específica.

from ultralytics import YOLO

# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")

# Train on the COCO8 dataset
# batch=16 is manually set.
# Alternatively, use batch=-1 for auto-tuning based on available GPU memory.
results = model.train(data="coco8.yaml", epochs=5, batch=16)

Para gestionar experimentos a gran escala y visualizar cómo los diferentes tamaños de lotes afectan a las métricas de entrenamiento, herramientas como la Ultralytics proporcionan un entorno completo para registrar y comparar ejecuciones. El ajuste adecuado de los hiperparámetros del tamaño del lote suele ser el paso final para sacar el máximo rendimiento al modelo.

Únase a la comunidad Ultralytics

Únete al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo

Únete ahora