TensorFlow
Esplora i concetti fondamentali, l'architettura e l'ecosistema di TensorFlow. Impara a esportare i modelli Ultralytics YOLO26 per una distribuzione fluida su TFLite, JS e altro.
TensorFlow è una libreria software open source completa per il machine learning (ML) e l'intelligenza artificiale (AI), sviluppata originariamente dal team Google Brain. Funge da piattaforma fondamentale che consente agli sviluppatori di creare, addestrare e distribuire sofisticati modelli di deep learning. Sebbene sia ampiamente utilizzata per creare reti neurali su larga scala, la sua architettura flessibile le consente di funzionare su una varietà di piattaforme, dai potenti server cloud alle unità di elaborazione grafica (GPUs), fino ai dispositivi mobili e ai sistemi di edge computing. Questa versatilità la rende uno strumento fondamentale per settori che spaziano dalla sanità e dalla finanza all'ingegneria automobilistica.
Concetti fondamentali e architettura#
Il framework prende il nome dai "tensori", ovvero array multidimensionali di dati che scorrono attraverso un grafo computazionale. Questo approccio basato sui grafi consente a TensorFlow di gestire in modo efficiente operazioni matematiche complesse.
- Grafi computazionali: TensorFlow utilizza tradizionalmente un grafo del flusso dei dati per rappresentare i calcoli. I nodi del grafo rappresentano operazioni matematiche, mentre gli archi rappresentano gli array di dati multidimensionali (tensori) comunicati tra loro. Questa struttura è eccellente per il training distribuito su più processori.
- Integrazione con Keras: le versioni moderne del framework si integrano strettamente con Keras, un'API di alto livello progettata per le persone, non per le macchine. Keras semplifica il processo di creazione delle reti neurali (NN) astraendo gran parte della complessità di basso livello e rendendo più facile per i principianti la prototipazione dei modelli.
- Esecuzione eager: a differenza delle versioni precedenti, che si basavano fortemente su grafi statici, le iterazioni più recenti utilizzano per impostazione predefinita l'esecuzione eager. Ciò consente di valutare immediatamente le operazioni, semplificando il debug e rendendo l'esperienza di programmazione più intuitiva, in modo simile alla programmazione standard in Python.
Applicazioni nel mondo reale#
TensorFlow è fondamentale per alimentare numerose tecnologie che influenzano la vita quotidiana e le operazioni industriali.
- Classificazione delle immagini e rilevamento degli oggetti: viene utilizzato ampiamente per addestrare le reti neurali convoluzionali (CNNs) all'identificazione degli oggetti nelle immagini. Ad esempio, nell'analisi delle immagini mediche, i modelli creati con questo framework possono assistere i radiologi rilevando con elevata accuratezza anomalie come tumori nelle radiografie o nelle scansioni MRI.
- Elaborazione del linguaggio naturale (NLP): molti modelli linguistici di grandi dimensioni (LLMs) e servizi di traduzione si affidano a TensorFlow per elaborare e generare il linguaggio umano. TensorFlow alimenta applicazioni come gli assistenti vocali e gli strumenti di analisi del sentiment, che aiutano le aziende a comprendere il feedback dei clienti interpretando dati testuali su larga scala.
Confronto con PyTorch#
Sebbene entrambi siano framework dominanti nel panorama dell'AI, TensorFlow differisce significativamente da PyTorch. PyTorch è spesso preferito nella ricerca accademica per il suo grafo computazionale dinamico, che consente di modificare al volo la struttura della rete. TensorFlow, invece, è stato storicamente preferito per la distribuzione dei modelli negli ambienti di produzione grazie al suo solido ecosistema, che include TensorFlow Serving e TensorFlow Lite per dispositivi mobili. Tuttavia, gli aggiornamenti moderni hanno avvicinato i due framework in termini di usabilità e funzionalità.
Integrazione con Ultralytics#
I modelli Ultralytics, come il modello all'avanguardia YOLO26, sono creati utilizzando PyTorch, ma offrono un'interoperabilità perfetta con l'ecosistema TensorFlow. Ciò è possibile grazie alle modalità di esportazione che consentono agli utenti di convertire i modelli YOLO addestrati in formati compatibili con il framework di Google, come SavedModel, TF.js o TFLite. Questa flessibilità garantisce agli utenti la possibilità di eseguire il training sulla Ultralytics Platform e distribuire i modelli su dispositivi che richiedono formati specifici.
L'esempio seguente mostra come esportare un modello Ultralytics YOLO26 in un formato compatibile con questo ecosistema:
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TensorFlow SavedModel format
# This creates a directory containing the model assets
model.export(format="saved_model")Strumenti correlati ed ecosistema#
Il framework è supportato da una ricca suite di strumenti progettati per gestire l'intero ciclo di vita delle operazioni di machine learning (MLOps):
- TensorBoard: un potente toolkit di visualizzazione che aiuta i ricercatori a monitorare metriche come le funzioni di perdita e l'accuratezza durante il training. Fornisce un'interfaccia grafica per esaminare i grafi dei modelli ed eseguire il debug dei problemi di prestazioni. Puoi utilizzare l'integrazione di TensorBoard con Ultralytics per visualizzare le sessioni di training di YOLO.
- TensorFlow Lite: una soluzione leggera progettata specificamente per l'AI all'edge e la distribuzione su dispositivi mobili. Ottimizza i modelli affinché funzionino in modo efficiente su dispositivi con potenza e memoria limitate, come smartphone e microcontrollori.
- TensorFlow.js: questa libreria consente ai modelli ML di funzionare direttamente nel browser o su Node.js. Permette di eseguire l'inferenza lato client, evitando di dover inviare i dati a un server, migliorando la privacy e riducendo la latenza.
- TensorFlow esteso (TFX): una piattaforma end-to-end per la distribuzione di pipeline in produzione. Aiuta ad automatizzare la convalida dei dati, il training dei modelli e il serving, garantendo applicazioni di AI scalabili e affidabili.









