PyTorch
Esplora PyTorch, la libreria principale che alimenta Ultralytics YOLO26. Scopri i suoi grafi dinamici, l'accelerazione GPU e come costruire modelli di deep learning efficienti.
PyTorch è una libreria di machine learning open source sviluppata principalmente da Meta AI che è diventata un pilastro per ricercatori e sviluppatori nel campo del deep learning. Nota per la sua flessibilità e facilità d'uso, consente di costruire e addestrare reti neurali complesse utilizzando un grafo computazionale dinamico. Questa caratteristica, spesso definita "eager execution", permette di valutare il codice immediatamente, rendendo il debugging e la prototipazione molto più intuitivi rispetto ai framework che si basano su definizioni di grafi statici. Si integra perfettamente con il linguaggio di programmazione Python, risultando come una naturale estensione degli strumenti standard di calcolo scientifico.
Meccaniche fondamentali e importanza#
Al centro di questo framework ci sono i tensor, che sono array multidimensionali simili a quelli presenti nella documentazione di NumPy. Tuttavia, a differenza degli array standard, i tensor di PyTorch sono progettati per sfruttare l'accelerazione GPU fornita da NVIDIA CUDA. Questa accelerazione hardware è fondamentale per l'enorme elaborazione parallela richiesta per addestrare in modo efficiente i moderni modelli di intelligenza artificiale (AI).
La libreria supporta un vasto ecosistema di strumenti per la computer vision (CV) e l'elaborazione del linguaggio naturale. Fornendo un set ricco di layer predefiniti, ottimizzatori e funzioni di perdita, semplifica il processo di creazione di algoritmi per attività come la classificazione di immagini e la modellazione di sequenze.
Applicazioni nel mondo reale#
La versatilità di questo framework ha portato alla sua adozione in diversi settori per soluzioni AI ad alto impatto:
-
Veicoli autonomi: I leader del settore sfruttano PyTorch per costruire modelli di deep learning che elaborano flussi video dalle telecamere delle auto. Questi modelli eseguono il rilevamento di oggetti in tempo reale per identificare corsie, segnali e pedoni, consentendo una navigazione più sicura.
-
Diagnostica medica: I ricercatori utilizzano il framework per sviluppare applicazioni sanitarie avanzate. Ad esempio, alimenta sistemi che analizzano scansioni MRI o raggi X per assistere i medici nel rilevamento di tumori tramite la segmentazione di immagini precisa.
Confronto con strumenti correlati#
Per comprendere meglio il suo ruolo, è utile distinguere PyTorch da altri strumenti comuni nello stack AI:
- Vs. TensorFlow: Sviluppato da Google, TensorFlow si basava storicamente su grafi computazionali statici, il che rendeva il debugging più difficile ma ottimizzava il deployment. Sebbene entrambi i framework siano confluiti in termini di funzionalità, PyTorch è spesso preferito per la prototipazione rapida e la ricerca grazie alla sua interfaccia intuitiva.
- Vs. OpenCV: OpenCV è una libreria incentrata su funzioni tradizionali di elaborazione delle immagini (come ridimensionamento, filtraggio e conversione di colore) piuttosto che sull'addestramento di reti neurali. In un flusso di lavoro tipico, gli sviluppatori usano OpenCV per la preelaborazione dei dati prima di alimentare le immagini in un modello PyTorch per l'analisi.
Integrazione con Ultralytics#
L'intera famiglia di modelli Ultralytics, inclusi il rivoluzionario YOLO26 e il diffuso YOLO11, è costruita in modo nativo su PyTorch. Questa base garantisce che gli utenti traggano vantaggio dalla velocità, dalla stabilità e dal vasto supporto della community del framework. Che si tratti di eseguire il transfer learning su dati di addestramento personalizzati o di esportare modelli per dispositivi edge, l'architettura sottostante si basa su tensor e gradienti di PyTorch.
L'imminente Ultralytics Platform semplifica ulteriormente questa esperienza, fornendo un'interfaccia unificata per gestire l'acquisizione dei dataset, l'addestramento e il deployment senza dover scrivere estesi codici boilerplate.
Il seguente esempio mostra come verificare la disponibilità della GPU ed eseguire l'inferenza utilizzando un modello YOLO, mettendo in mostra come il framework gestisce l'accelerazione hardware sotto il cofano:
import torch
from ultralytics import YOLO
# Check if CUDA (GPU) is available for PyTorch acceleration
device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"PyTorch is using device: {device}")
# Load a YOLO26n model (built on PyTorch)
model = YOLO("yolo26n.pt")
# Perform object detection on an image
# PyTorch handles tensor operations and moves data to the GPU automatically
results = model("https://ultralytics.com/images/bus.jpg", device=device)





