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

PyTorch

PyTorch è un framework Python open source per creare e addestrare reti neurali con tensori GPU e autograd. Scopri i concetti fondamentali e il percorso di distribuzione.

PyTorch è un framework open source per creare, addestrare e distribuire reti neurali in Python. Fornisce tensori accelerati tramite GPU, differenziazione automatica e una libreria di livelli, ottimizzatori e funzioni di loss; esegue il codice in modalità eager, riga per riga, così i modelli si scrivono e si sottopongono a debug come normali programmi Python. Creato da Facebook AI Research, oggi Meta AI, dal 2022 PyTorch è gestito dalla PyTorch Foundation, indipendente dai fornitori, sotto l'egida della Linux Foundation; è ampiamente utilizzato nella ricerca sul deep learning e nei modelli di produzione per la visione artificiale e il linguaggio.

Concetti fondamentali#

  • Tensori: array multidimensionali, come gli array NumPy, che possono risiedere su una CPU o un acceleratore. PyTorch supporta le GPU NVIDIA tramite CUDA, le GPU AMD tramite ROCm e i chip Apple tramite Metal (MPS); per spostare i dati tra di essi basta una chiamata .to(device).
  • Autograd: mentre le operazioni sui tensori vengono eseguite, PyTorch le registra in un grafo computazionale. La chiamata .backward() percorre il grafo a ritroso e calcola il gradiente dell'output rispetto a ogni tensore che lo richiede: è il passaggio di backpropagation dell'addestramento.
  • Esecuzione eager: il grafo viene ricostruito a ogni passaggio in avanti, perciò i modelli possono usare cicli, condizioni e istruzioni print di Python; inoltre, gli errori indicano la riga esatta in cui si è verificato il problema.
  • Moduli e ottimizzatori: torch.nn fornisce livelli come convoluzioni, attenzione e normalizzazione; torch.optim fornisce ottimizzatori come SGD e Adam, che aggiornano i pesi usando i gradienti calcolati.
  • torch.compile: introdotto in PyTorch 2.0, acquisisce il programma eager sotto forma di grafo e genera kernel fusi, spesso accelerando l'addestramento e l'inferenza senza modificare il codice del modello.

L'esempio seguente esegue un piccolo calcolo su una GPU, se disponibile, e lascia che autograd ne calcoli il gradiente:

import torch

# Use a GPU when PyTorch can see one, otherwise fall back to the CPU
device = "cuda" if torch.cuda.is_available() else "cpu"

# Tensors record the operations applied to them when requires_grad=True
w = torch.tensor([2.0, -1.0], device=device, requires_grad=True)
x = torch.tensor([3.0, 4.0], device=device)

# Ordinary Python runs eagerly: each line executes immediately
loss = (w * x).sum() ** 2

# Autograd walks the recorded graph backward to get d(loss)/dw
loss.backward()
print(f"device={device}, loss={loss.item()}, grad={w.grad.tolist()}")

Su una macchina senza GPU stampa device=cpu, loss=4.0, grad=[12.0, 16.0]. La loss è (2·3 − 1·4)² = 4 e autograd ne restituisce la derivata 2·(w·x)·x = [12, 16] senza bisogno di calcoli manuali: è lo stesso meccanismo che addestra reti con miliardi di pesi.

PyTorch e altri strumenti#

  • TensorFlow: il framework di Google, che prima eseguiva grafi statici e che, fino a TensorFlow 2, non supportava l'esecuzione eager come impostazione predefinita. Rimane comune nei sistemi di produzione basati su Keras e sugli strumenti di distribuzione di Google.
  • JAX: la libreria numerica di Google che trasforma funzioni Python pure con operazioni componibili grad, jit e vmap, compilate tramite XLA; è popolare nella ricerca su larga scala con TPU.
  • OpenCV: una libreria di visione artificiale per leggere, trasformare e analizzare immagini con algoritmi classici. Le pipeline usano spesso OpenCV per caricare e preelaborare i fotogrammi prima che un modello PyTorch li elabori.
  • Hugging Face: un hub e un insieme di librerie basati in gran parte su PyTorch; la libreria Transformers fornisce modelli linguistici e visivi preaddestrati sotto forma di moduli PyTorch.

Dalla ricerca alla distribuzione#

Un modello PyTorch addestrato viene salvato come checkpoint, di solito in un file .pt o .pth che contiene i pesi. Può essere eseguito così com'è in un servizio Python, ma i dispositivi edge e i server ottimizzati in genere richiedono che venga convertito in un runtime progettato per il loro hardware:

Ultralytics YOLO26 è scritto in PyTorch: yolo26n.pt è un checkpoint PyTorch, l'addestramento si basa su autograd e sugli ottimizzatori di PyTorch e model.export() converte il modello in questi formati di distribuzione, tra cui ONNX, TensorRT, OpenVINO, Core ML e LiteRT.

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