Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Epoch

Un'epoca è un passaggio completo del modello sui dati di addestramento. Scopri come le epoche si rapportano a batch e iterazioni e quante epoche usare per l'addestramento.

Un'epoca è un passaggio completo di un modello di machine learning sull'intero dataset di addestramento. Durante un'epoca, ogni esempio di addestramento contribuisce una sola volta all'aggiornamento dei pesi del modello. I modelli di deep learning raramente imparano abbastanza con un solo passaggio, quindi l'addestramento dura molte epoche e, in genere, l'errore sui dati di addestramento diminuisce a ogni epoca mentre la rete perfeziona le sue previsioni.

Epoca, batch e iterazione a confronto#

Tre termini descrivono la struttura di un'esecuzione di addestramento e ciascuno è contenuto nel precedente:

  • Epoca: un passaggio completo sul dataset di addestramento.
  • Batch: il gruppo di esempi elaborati insieme in un singolo passaggio. Raramente i dataset entrano tutti in una volta nella memoria della GPU, quindi ogni epoca viene suddivisa in batch, di solito dopo aver mescolato i dati.
  • Iterazione: un aggiornamento dei pesi, eseguito dopo aver calcolato la funzione di perdita su un batch e aver propagato i gradienti all'indietro tramite la retropropagazione. «Step» è un sinonimo.

Il numero di iterazioni per epoca è pari alla dimensione del dataset divisa per la dimensione del batch, arrotondando per eccesso. Un dataset di 1.000 immagini con batch di 100 richiede 10 iterazioni per epoca, quindi 50 epoche comportano 500 aggiornamenti dei pesi. In PyTorch, questa struttura si presenta come due cicli annidati: un ciclo esterno sulle epoche e uno interno sui batch gestiti da DataLoader.

import torch
from torch.utils.data import DataLoader, TensorDataset

torch.manual_seed(0)

# 1,000 noisy samples of the line y = 3x + 2, served in shuffled batches of 100
x = torch.rand(1000, 1)
y = 3 * x + 2 + 0.1 * torch.randn(1000, 1)
loader = DataLoader(TensorDataset(x, y), batch_size=100, shuffle=True)

model = torch.nn.Linear(1, 1)
optimizer = torch.optim.SGD(model.parameters(), lr=0.5)

for epoch in range(5):  # one epoch = one full pass over all 1,000 samples
    for xb, yb in loader:  # 1,000 / 100 = 10 iterations per epoch
        loss = torch.nn.functional.mse_loss(model(xb), yb)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
    print(f"Epoch {epoch + 1}: {len(loader)} iterations, last batch loss {loss.item():.4f}")

Ogni epoca comprende 10 iterazioni e la perdita sull'ultimo batch scende da 0.1096 dopo la prima epoca a 0.0088 dopo la quinta, mentre il modello converge sulla retta reale. Quando l'addestramento usa l'aumento dei dati, ogni epoca presenta una versione trasformata di recente di ogni immagine; le epoche successive aggiungono quindi varietà anziché ripetizioni esatte.

Scegliere il numero di epoche#

Il numero di epoche è una delle impostazioni principali nell'ottimizzazione degli iperparametri. Se le epoche sono troppo poche, il modello non apprende abbastanza e va in underfitting, con errori elevati sia sui dati di addestramento sia sui dati di convalida. Se sono troppe, il modello tende all'overfitting: la perdita di addestramento continua a diminuire, mentre il punteggio di convalida si arresta o cala perché il modello ha iniziato a memorizzare gli esempi di addestramento. Il numero corretto dipende dalle dimensioni del dataset e del modello, dalla pianificazione del tasso di apprendimento e dall'eventuale uso di pesi preaddestrati tramite l'apprendimento per trasferimento. Anche la scala cambia il risultato: i piccoli dataset di visione spesso richiedono centinaia di epoche, mentre i modelli linguistici di grandi dimensioni analizzano gran parte dei dati meno di una volta; GPT-3 ha completato 0,44 epoche sui dati Common Crawl filtrati.

L'arresto anticipato automatizza la scelta. Il modello viene valutato sui dati di convalida dopo ogni epoca, viene conservato il checkpoint migliore e l'addestramento termina quando il punteggio di convalida non migliora per un numero prestabilito di epoche, detto pazienza.

Pianificazioni di addestramento basate sulle epoche#

Oltre al punto di arresto, molte impostazioni di addestramento cambiano secondo una pianificazione basata sulle epoche, come il riscaldamento e il decadimento del tasso di apprendimento o l'intensità dell'aumento dei dati. Nell'addestramento Ultralytics YOLO, epochs e patience hanno entrambi un valore predefinito di 100, il tasso di apprendimento viene aumentato gradualmente nelle prime 3 epoche e l'aumento dei dati mosaic viene disattivato nelle ultime 10 epoche (close_mosaic=10), così il modello conclude l'addestramento su immagini simili agli input reali. La ricetta di addestramento di YOLO26 mostra quanto il numero vari con le dimensioni del modello: dopo 150 epoche di preaddestramento su Objects365, la messa a punto di COCO è durata 245 epoche per YOLO26n e 40 per YOLO26x.

from ultralytics import YOLO

# Carica un modello YOLO26n preaddestrato
model = YOLO("yolo26n.pt")

# Addestra per 50 epoche: 50 passaggi completi sulle immagini di addestramento di COCO8
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)

Durante questa esecuzione, il trainer convalida il modello YOLO26 dopo ogni epoca, sovrascrive ogni volta last.pt e salva best.pt quando la fitness di convalida, pari a mAP50-95 per il rilevamento, raggiunge un nuovo massimo.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning