Glossario

TensorFlow

Scopri TensorFlow, il potente framework ML open-source di Google per l'innovazione dell'intelligenza artificiale. Costruisci, addestra e distribuisci modelli di reti neurali senza problemi!

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

TensorFlow è una libreria open-source ampiamente utilizzata e sviluppata dal team di Google Brain per il calcolo numerico e l'apprendimento automatico (ML) su larga scala. Offre un ecosistema completo di strumenti, librerie e risorse della comunità che consente ai ricercatori di spingere lo stato dell'arte del ML e agli sviluppatori di creare e distribuire facilmente applicazioni basate sul ML. La sua architettura flessibile consente la distribuzione su diverse piattaforme, tra cui server, dispositivi mobili tramite TensorFlow Lite e browser web con TensorFlow.js.

Come funziona TensorFlow

Nel suo nucleo, TensorFlow opera sui tensori, che sono array multidimensionali, da cui il nomeTensorFlow" - che rappresenta il flusso di questi tensori attraverso un grafo di calcolo. Mentre le versioni precedenti si basavano molto su grafi di calcolo statici, TensorFlow 2.x ha introdotto l'esecuzione eager per impostazione predefinita, rendendola più intuitiva e più facile da debuggare, in modo simile a quella standard di Python standard. Le caratteristiche principali includono la differenziazione automatica per calcolare facilmente i gradienti necessari per la retropropagazione e l'addestramento dei modelli, oltre a un'ampia gamma di livelli e utilità precostituite per la costruzione di reti neurali (NN). Sfrutta l'accelerazione hardware con le GPU e l'hardware specializzato come le TPU per ottenere alte prestazioni di calcolo.

Caratteristiche principali ed ecosistema

TensorFlow offre diverse funzionalità che semplificano il flusso di lavoro del ML:

  • API di Keras: Un'API di alto livello integrata in TensorFlow, nota per la sua facilità d'uso e modularità, che semplifica il processo di costruzione e addestramento dei modelli di deep learning. Keras consente una rapida prototipazione.
  • Formazione distribuita: Il supporto integrato per la distribuzione dei calcoli su più macchine e GPU aiuta ad accelerare l'addestramento di modelli di grandi dimensioni su enormi set di dati.
  • Ottimizzazione dei modelli: Strumenti come il TensorFlow Model Optimization Toolkit forniscono tecniche di quantizzazione e potatura dei modelli per creare modelli più piccoli, più veloci e più efficienti dal punto di vista energetico, adatti ai dispositivi edge.
  • Flessibilità di distribuzione: I modelli TensorFlow possono essere distribuiti praticamente ovunque, dalle grandi server farm(cloud computing) agli ambienti con risorse limitate, come i sistemi mobili ed embedded, utilizzando l'esportazioneTensorFlow Lite o le applicazioni web tramite l'esportazioneTensorFlow.js. I modelli Ultralytics YOLO possono essere esportati anche nel formatoTensorFlow SavedModel .

Applicazioni ed esempi

TensorFlow viene utilizzato in numerosi settori:

  • Computer Vision: Applicazioni come la classificazione delle immagini, il rilevamento degli oggetti e la segmentazione delle immagini. Ad esempio, Google utilizza TensorFlow in Google Photos per il riconoscimento delle immagini e le funzioni di ricerca. I modelli Ultralytics YOLO , pur essendo sviluppati principalmente in PyTorchpossono essere convertiti in formato TensorFlow per essere distribuiti.
  • Elaborazione del linguaggio naturale (NLP): Utilizzato per compiti come la traduzione automatica, l'analisi del sentimento e la costruzione di modelli linguistici sofisticati come BERT. L'algoritmo RankBrain di Google Search, che aiuta a interpretare le query di ricerca complesse, è stata una prima applicazione su larga scala di TensorFlow.
  • Assistenza sanitaria: Assistenza nell'analisi delle immagini mediche per individuare le malattie dalle scansioni o prevedere gli esiti dei pazienti sulla base delle cartelle cliniche elettroniche.
  • Finanza: Utilizzato per il rilevamento delle frodi, il trading algoritmico e i modelli di credit scoring.

TensorFlow vs. PyTorch

TensorFlow e PyTorch sono i due framework dominanti nel deep learning. Storicamente, TensorFlow era noto per la sua forza nell'implementazione in produzione e per la sua scalabilità grazie all'utilizzo di grafi statici, mentre PyTorch ha guadagnato popolarità nella comunità dei ricercatori grazie ai suoi grafi dinamici e all'atmosfera più pitonica. Tuttavia, con l'adozione di TensorFlow 2.x eager execution, le differenze sono diventate meno pronunciate. La scelta dipende spesso dalle esigenze specifiche del progetto, dalla familiarità del team e dagli strumenti dell'ecosistema. Molti modelli, tra cui Ultralytics YOLOv8offrono opzioni di compatibilità o di esportazione per entrambi i framework, consentendo una certa flessibilità nella distribuzione dei modelli.

Leggi tutto