Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Dimensione del Batch

Scopri l'impatto della dimensione del batch sul deep learning. Ottimizza la velocità di addestramento, l'utilizzo della memoria e le prestazioni del modello in modo efficiente.

La dimensione dei lotti è un iperparametro fondamentale nel dell'apprendimento automatico che determina il numero numero di campioni di dati di addestramento elaborati prima che il prima che il modello aggiorni i suoi parametri interni. Invece di analizzare un intero set di dati in una volta sola, cosa che spesso è computazionalmente computazionalmente impossibile a causa delle limitazionidi memoria dividono i dati in gruppi più piccoli, chiamati batch. Questa divisione regola la stabilità del processo di processo di apprendimento, la velocità di calcolo e la quantità di memoria richiesta dal sistema. GPU durante l'addestramento. La scelta della batch corretto agisce come un atto di bilanciamento tra l'efficienza computazionale e la qualità della convergenza del modello. convergenza del modello.

L'impatto sulle dinamiche di formazione

La selezione di una dimensione di batch modifica radicalmente il modo in cui una rete neurale rete neurale. Quando la dimensione del batch è impostata un valore inferiore, il modello aggiorna i suoi pesi del modello più frequentemente, introducendo rumore nel nel processo di discesa del gradiente. Questo rumore può essere può essere vantaggioso, in quanto spesso aiuta l'algoritmo di ottimizzazione a sfuggire a minimi locali e a trovare soluzioni più robuste, il che contribuisce a a prevenire l'overfitting. Al contrario, lotti di dimensioni maggiori forniscono una stima più accurata del gradiente, portando ad aggiornamenti più uniformi e stabili, anche se richiedono una memoria hardware significativamente più memoria hardware significativamente più elevata e possono talvolta causare un "gap di generalizzazione", in cui il modello Il modello si comporta bene sui dati di addestramento ma meno efficacemente sui dati non visti.

Le capacità hardware spesso dettano il limite superiore di questo parametro. I moderni acceleratori hardware, come quelli dettagliati nella guida alle prestazioni del deep learning diNVIDIA, si basano sull'elaborazione in parallelo di grandi blocchi di dati. di dati simultaneamente. Pertanto, l'uso di una dimensione di batch che si allinea con l'architettura del processore - tipicamente potenze di due, come 32, 64 o 128, può massimizzare il throughput e ridurre il tempo totale di addestramento per per epoca.

Applicazioni nel mondo reale

Capire come sintonizzare questo parametro è essenziale per implementare soluzioni di IA efficaci in diversi settori. settori.

  1. Imaging medico ad alta risoluzione: In IA in ambito sanitario, i modelli sono spesso incaricati di analizzare scansioni TC o risonanze magnetiche dettagliate per identificare anomalie come i tumori. Queste immagini hanno dimensioni enormi. Il tentativo di elaborarne molte contemporaneamente supererebbe la memoria video (VRAM) anche dell'hardware più potente. hardware più potenti. Di conseguenza, i professionisti utilizzano lotti di dimensioni molto ridotte (ad esempio, 1 o 2) per facilitare l'analisi delle immagini mediche senza che il sistema si blocchi. l'analisi delle immagini mediche senza mandare in crash il sistema, privilegiando la capacità di gestire dati ad alta fedeltà rispetto alla velocità di addestramento grezza.
  2. Ispezione della produzione in tempo reale: Al contrario, negli ambienti di produzione intelligente, la velocità è è fondamentale. Un sistema di ispezione visiva automatizzato su un nastro trasportatore può acquisire migliaia di immagini di schede di circuiti circuiti all'ora. Durante la fase di inferenza (rilevamento dei difetti in produzione), i sistemi potrebbero usare lotti di inferenza per raggruppare le immagini in arrivo ed elaborarle in parallelo. In questo modo si massimizza la produttività del sistema di sistema di visione computerizzata, assicurando che tenga il passo con la rapidità della linea di produzione.

Configurazione delle dimensioni dei batch con Ultralytics

Quando si utilizza la funzione Pacchetto Ultralytics PythonLa configurazione della dimensione del batch è semplice. Il batch consente di specificare esattamente il numero di immagini che il modello prima di aggiornare i pesi. Se impostato su -1, la libreria può anche utilizzare un elemento Funzione AutoBatch per determinare automaticamente la dimensione massima del batch che l'hardware è in grado di supportare.

from ultralytics import YOLO

# Load the latest YOLO11 model
model = YOLO("yolo11n.pt")

# Train the model on the COCO8 dataset with a specific batch size
# A batch size of 32 balances speed and memory usage for most standard GPUs
results = model.train(data="coco8.yaml", epochs=50, batch=32)

Distinguere i concetti correlati

È importante per i professionisti distinguere la "dimensione del batch" da una terminologia simile che si trova nei framework di deep learning. strutture di deep learning.

  • Dimensione del batch vs. Epoch: Un'epoch rappresenta un passaggio completo dell'intero dataset di addestramento. La dimensione del batch determina il numero in quante parti vengono suddivisi i dati all'interno della singola epoch. Ad esempio, se si dispone di 1.000 campioni e di una dimensione batch di 100, ci vorranno 10 iterazioni per completare un'epoch.
  • Dimensione del lotto e normalizzazione del lotto: Anche se condividono il nome, La normalizzazione dei lotti è una tecnica di livello tecnica di livello utilizzata per normalizzare gli input del livello per migliorare la stabilità. Mentre l'efficacia della normalizzazione batch può può dipendere dalla dimensione del batch (che richiede un batch sufficientemente grande per calcolare statistiche accurate), si tratta di un componente strutturale dell'architettura di rete, non solo di una componente strutturale dell'architettura della rete, non solo un'impostazione dell'addestramento.
  • Formazione e inferenza Batching: durante la formazione, l'obiettivo è l'apprendimento dei pesi. Durante inferenza, il batching è puramente un'ottimizzazione della velocità. Per le applicazioni sensibili alla latenza, come veicoli autonomi, si utilizza spesso una dimensione di batch pari a 1 per ottenere una risposta immediata. per ottenere una risposta immediata, mentre di analisi dei dati potrebbero utilizzare batch di grandi dimensioni per elaborare filmati storici durante la notte.

Unitevi alla comunità di Ultralytics

Entra nel futuro dell'AI. Connettiti, collabora e cresci con innovatori globali

Iscriviti ora