1. Scalabilitatea

TensorFlow este conceput pentru a se extinde pe o varietate de platforme, de la desktopuri si servere la telefoanele mobile si sisteme incorporate. Acesta permite calculu distribuit, permitand modelelor sa fie antrenate eficient pe seturi mari de date.

2.Ecosistemul

TensorFlow ofera un ecosistem vast cu instrumente, biblioteci printre care:

TensorFLow Core - API-ul de baza care permite definirea modelelor, construirea calculelor si executarea acestora.

Keras - un API de nivel inalt pentru crearea retelelor neuronale pe TensorFlow, simplificand dezvoltarea acestora.

TensorFlow Lite - solutie usoara pentru implementarea modelelor pe dispozitivele mobile si incorporate.

TensorFlow.js - biblioteca pentru rularea modelelor de invatare automata direct in browser, folosind JavaScript.

TensorFlow Extended (TFX) - solutie gata de productie pentru implementarea modelelor in medii de productie.

TensorFlow Hub - depozit de modele pre-antrenate, usor de integrat in aplicatii

3.Diferentiere Automata (Autograd) - TensorFlow calculeaza automat gradientele pentru toate variabilele antrenabile din model, ceea ce simplifica procesul de backpropagation in timpul antrenamentului. Aceasta este o caracterisitca de baza care permite optimizarea eficienta a modelului folosind tehnici precum gradeint descent. 

4.Suport multi-limbaj - TensorFlow este proiectat in principal pentru Python, dar ofera si API-uri pentru alte limbaje precum C++, Java si JavaScript. Asta il face accesibil dezvoltatorilor cu exeperienta diferita in programare. 

5.TensorFlow serving si optimizarea modelului TensorFlow - Acesta include instrumente pentru servirea modelelor de invatare autoamata in medii de productie si pentru optimizarea acstora in vederea indiferentei, permitand latenta redusa si eficienta ridicata.

Arhitectura lui TensorFlow

Arhitectura lui se bazeaza pe 3 componente principale:

1.Tensoare

Acestea sunt unitati fundamentale de date in TensorFlow. Ele reprezinta tablouri sau matrici multidimensionale folosite pentru stocarea datelor. Un tensor poate avea:

o dimensiune (vector)

doua dimensiuni (matrice)

sau mai multe

2.Grafice (Graph)

Un grafic TensorFlow reprezinta o calculare sub forma unui flux de tensori care trec printr-o serie de operatii. Fiecare operatie din grafic executa o functie mateamtica specifica asupra tensorilor de intrare, cum ar fi:

inmultirea matricilor

adunarea

functii de activare

3.Sesiune (Session)

O sesiune in TensorFlow ruleaza calculul definit de grafic si evalueaza tensorii. Aici are loc executia propriu-zisa a modelului, permitand:

procesul de antrenare

si inferenta (predictia)

Fluxul de lucru la TensorFlow

tensor_work_flow_

1.Antreneaza un model (sageata rosie)

2.Converteste modelul (sageata galbena)

3.Optimizarea modelului (sageata albastra)

4.Distribuie modelul la margine(Edge) (sageaata bleu)

5.Realizeaza inferente la margine (sageata albastru inchis)

Pasul 1: Antreneaza un model

Foloseste TensorFlow pentru a construi si a antrena un model de invatarea automata pe o platforma precum un PC sau in cloud.

Utilizeaza seturi de date relevante pentru aplicatia ta, cum ar fi imagini, text, date de la senzori etc.

Evalueaza si valideaza modelul pentru a te asigura ca are o acuratete ridicata inainte de a-l distribui.

Pasul 2: Converteste modelul

Converteste modelul antrenat in format TensorFlow Lite (.tflite) folosint TFLite Converter.

Aceasta conversie pregateste modelul pentru medii cu resurse limitate, cum ar fi dispozitivele edge.

Sunt acceptate diferite formate: modele salvate, modele Keras sau functii concrete.

Pasul 3: Optimizeaza modelul 

Aplica tehnici de optimizare precum:

  • cuantificare
  • reducerea parametrilor (pruning)
  • gruparea greutatilor (weight clustering)

Aceste metode 

  • reduc dimensiunea modelului
  • imbunatatesc viteza de inferenta 
  • minimizeaza consumul de memorie

Sunt esentiale pentru rularea eficienta pe dispozitivele mobile, incorporate sau microcontrolate.

Pasul 4: Distribuie modelul 

Distribuie modelul .tflite optimizat catre dispozitive edge precum:

  • Android
  • iOS
  • Sisteme Linux incorporate (ex Raspberry Pi)
  • Microcontrolere (ex: Arm Cortex-M)

Asigura-te ca modelul este compatibil cu runtime-ul TensorFlow Lite pentru platforma tinta.

Pasul 5: Realizeaza inferente la margine

Ruleaza predictii in timp real direct pe dispozitivul edge folosind TFLite Interpreter.

Permite inferenta cu latenta redusa, offline, fara a depinde de colud.

Suport alte aplicatii precum:

  • recunoastere de imagini 
  • detectare vocala 
  • analiza de date de la senzori

Haideti sa constrium si sa antrenam o retea neuronala simpla folosind TensorFlow, urmand pasii discutati pana acum. In acest exemplu am incarcat setul de date MNIST si am procesat imaginile. Apoi am construit o retea neuronala simpla folosind API-ul Sequential din TensorFlow, cu doua straturi:

  • un strat dens cu functia de activare ReLU 
  • un strat de iesire cu functia de activare softmax

In final, am compilat modelul folosind optimizatorul Adam si functia de pierdere Sparse Categorical Crossentropy, iar modelul a fost antrenat timp de 5 epoci. In ML o epoca inseamna o trecere completa prin toata reteaua neuronala.

!pip install tensorflow
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.datasets import mnist

#MNIST dataset
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()

train_images = train_images.reshape((train_images.shape[0], 28 * 28)).astype('float32') / 255
test_images = test_images.reshape((test_images.shape[0], 28 * 28)).astype('float32') / 255

# Construim modelul
model = Sequential([
    Dense(128, activation='relu', input_shape=(28 * 28,)),
    Dense(10, activation='softmax')
])

# Compilam modelul
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

# Antrenam modelul
model.fit(train_images, train_labels, epochs=5)

# Evaluam modelul
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f"Test accuracy: {test_acc}")

In consola o sa vedem:

output

Last modified: Wednesday, 27 August 2025, 2:58 PM