TensorFlow
TensorFlow là framework ML mã nguồn mở của Google để huấn luyện và triển khai model trên máy chủ, trình duyệt và điện thoại; Keras là API cấp cao của framework này.
TensorFlow là framework mã nguồn mở dành cho machine learning (ML), được Google phát hành vào tháng 11 năm 2015 theo giấy phép Apache 2.0, sau khi nhóm Google Brain xây dựng công cụ này cho nghiên cứu và sản phẩm nội bộ. Các chương trình deep learning và những tác vụ số học khác biểu diễn phép tính dưới dạng thao tác trên tensor, tức mảng số nhiều chiều; TensorFlow tự động tính vi phân, biên dịch chúng thành đồ thị được tối ưu hóa và chạy trên CPU, GPU và TPU. Hệ sinh thái này bao quát toàn bộ quy trình MLOps, từ huấn luyện đến triển khai model: Keras để định nghĩa model, TensorBoard để theo dõi thử nghiệm, TensorFlow Serving để phục vụ model trong môi trường production, TensorFlow.js cho trình duyệt và LiteRT, trước đây là TensorFlow Lite, cho điện thoại và thiết bị nhúng chạy edge AI. Khi phát hành TensorFlow 2.21 vào tháng 3 năm 2026, Google cho biết công việc TensorFlow trong tương lai sẽ tập trung vào bảo mật và sửa lỗi, cập nhật dependency cùng đóng góp từ cộng đồng; Google cũng hướng các dự án AI tạo sinh mới sang Keras 3, JAX hoặc PyTorch.
Cách TensorFlow hoạt động#
TensorFlow 1.x yêu cầu người dùng xây dựng đồ thị tính toán tĩnh trước, rồi thực thi đồ thị trong một session. TensorFlow 2.0, phát hành năm 2019, đặt chế độ thực thi eager làm mặc định, nhờ đó các phép toán chạy ngay như mã Python thông thường, đồng thời vẫn giữ đồ thị làm cơ chế tối ưu hóa: một hàm được trang trí bằng tf.function sẽ được trace một lần cho mỗi chữ ký đầu vào thành đồ thị mà TensorFlow có thể tối ưu hóa, biên dịch bằng trình biên dịch XLA và lưu ở định dạng SavedModel để triển khai mà không cần Python. tf.GradientTape ghi lại các phép toán của một lượt truyền xuôi để TensorFlow tính gradient phục vụ lan truyền ngược và gradient descent. Đoạn mã sau thực hiện cả hai việc:
import tensorflow as tf
w = tf.Variable([[1.0], [-2.0]])
x = tf.constant([[3.0, 4.0]])
@tf.function # trace the Python function into a TensorFlow graph on the first call
def loss_fn(x):
print("Tracing") # Python code runs only while tracing, not on every call
return tf.reduce_sum((x @ w) ** 2)
# Record operations on a tape to compute the gradient of the loss with respect to w
with tf.GradientTape() as tape:
loss = loss_fn(x)
gradient = tape.gradient(loss, w)
loss_fn(x) # same input shape and dtype: reuses the traced graph without printing
print(f"loss {loss.numpy()}, gradient {gradient.numpy().ravel()}")Đoạn mã in Tracing một lần, sau đó in loss 25.0, gradient [-30. -40.]: lần gọi thứ hai chạy đồ thị đã lưu trong cache mà không thực thi phần thân Python, còn gradient của (3w₁ + 4w₂)² tại w = (1, -2) là 2 × (-5) × (3, 4). Để huấn luyện phân tán, các chiến lược tf.distribute sao chép một model trên nhiều GPU, lát TPU hoặc máy.
Hệ sinh thái TensorFlow#
- Keras: API cấp cao để định nghĩa layer và model, cũng như huấn luyện chúng bằng
fit. Kể từ TensorFlow 2.16, cài đặt TensorFlow sẽ cài Keras 3, phiên bản cũng chạy trên JAX và PyTorch. - TensorBoard: Dashboard hiển thị các đường cong loss, metric, histogram và đồ thị model trong quá trình huấn luyện. TensorBoard cũng đọc log do các framework khác ghi lại, và TensorFlow 2.21 không còn cài TensorBoard như một dependency.
- TensorFlow Serving: Hệ thống phục vụ model tải SavedModel và xử lý yêu cầu dự đoán qua gRPC hoặc REST, hỗ trợ quản lý phiên bản để thay model nhanh chóng.
- TFX: Framework pipeline dành cho machine learning production, kết nối các bước xác thực dữ liệu, huấn luyện, đánh giá và đưa model đã được phê duyệt vào hệ thống phục vụ.
- TensorFlow.js: Chạy và huấn luyện model trong trình duyệt lẫn Node.js, cho phép suy luận ngay trên thiết bị của người dùng mà không cần gửi dữ liệu lên server.
- LiteRT: Runtime trên thiết bị của Google dành cho Android, iOS, Linux nhúng và vi điều khiển, được đổi tên từ TensorFlow Lite vào tháng 9 năm 2024. LiteRT chạy các model
.tfliteđược chuyển đổi từ TensorFlow, PyTorch hoặc JAX, đồng thời hỗ trợ tăng tốc trên GPU di động và NPU.
TensorFlow so với PyTorch và JAX#
- PyTorch so với TensorFlow: PyTorch ưu tiên eager execution ngay từ đầu, còn
torch.compilebổ sung biên dịch đồ thị. Đây là framework mặc định cho phần lớn mã nghiên cứu mới và model có trọng số mở, trong khi thế mạnh của TensorFlow là stack triển khai hoàn thiện cho server, trình duyệt và thiết bị di động. - JAX: Thư viện của Google theo phong cách NumPy, cung cấp các phép biến đổi có thể kết hợp,
gradđể tính đạo hàm,jitđể biên dịch bằng XLA vàvmapđể vector hóa. Google huấn luyện các model Gemini bằng JAX. - Keras: API cấp cao thay vì một engine độc lập. Mã Keras 3 chạy trên TensorFlow, JAX hoặc PyTorch, vì vậy định nghĩa model không ràng buộc dự án với một framework duy nhất.
Chuyển đổi model cho runtime TensorFlow#
Các model được huấn luyện bằng framework khác có thể sử dụng công cụ triển khai TensorFlow thông qua các trình chuyển đổi: onnx2tf dựng lại đồ thị ONNX thành TensorFlow SavedModel, jax2tf bọc các hàm JAX thành hàm TensorFlow, còn trình chuyển đổi LiteRT Torch của Google tạo trực tiếp model LiteRT từ PyTorch. Model Ultralytics YOLO được viết bằng PyTorch, và chế độ export của chúng sử dụng các quy trình này cho YOLO26: format="saved_model" export ONNX rồi chuyển đổi bằng onnx2tf thành SavedModel cho TensorFlow Serving, format="edgetpu" biên dịch model INT8 cho Coral Edge TPU, còn format="litert" dùng LiteRT Torch nên không cần cài TensorFlow. Đoạn mã sau thực hiện export SavedModel:
from ultralytics import YOLO
# Load the smallest YOLO26 detection model
model = YOLO("yolo26n.pt")
# Convert through ONNX to a TensorFlow SavedModel directory
path = model.export(format="saved_model")
print(f"SavedModel: {path}")Quá trình export tạo thư mục yolo26n_saved_model; Python tải thư mục này bằng tf.saved_model.load, còn Ultralytics YOLO có thể trực tiếp chạy thư mục đó bằng YOLO("yolo26n_saved_model").










