blog.dopana

Back

Keras 3 là framework deep learning đa backend của keras-team — “deep learning cho con người.” Thay đổi chính so với Keras 2: nó không còn phụ thuộc TensorFlow. Một codebase giờ chạy được trên JAX, TensorFlow, PyTorch và OpenVINO (chỉ inference). ~64k sao GitHub, hơn 5 triệu developer dùng.

Vì Sao Đa Backend Quan Trọng#

Trước đây bạn phải chọn framework và sống với nó. Keras 3 tách API khỏi lớp tính toán bên dưới:

  • Không khóa framework — đổi backend bằng cách sửa một biến môi trường
  • Hiệu năng tốt nhất — chọn backend nhanh nhất cho từng model. Benchmark Keras cho thấy tăng tốc 20-350%, JAX thường thắng trên GPU/TPU/CPU
  • Tùy chọn hệ sinh thái — model Keras là Module PyTorch, export được thành SavedModel TensorFlow, hoặc tạo thành hàm JAX stateless

Chọn Backend#

export KERAS_BACKEND="jax" # hoặc: tensorflow, torch, openvino
bash

Hoặc sửa ~/.keras/keras.json. Phiên bản tối thiểu của backend (Keras 3 stable): TensorFlow 2.16.1, JAX 0.4.20, PyTorch 2.1.0, OpenVINO 2025.3.

BackendTốt nhất cho
JAXHuấn luyện/inference nhanh nhất trên GPU & TPU, XLA
TensorFlowStack TF hiện có, pipeline tf.data
PyTorchHệ sinh thái HF, model động, nghiên cứu
OpenVINOTối ưu inference CPU (Intel)

keras.ops — Một API Kiểu NumPy#

Keras 3 có keras.ops, một API NumPy đầy đủ chạy trên mọi backend — custom layer, loss, metric chạy ở đâu cũng được mà không cần import tf. / torch.:

import keras
import numpy as np

x = keras.ops.ones((3, 3))
y = keras.ops.matmul(x, keras.ops.transpose(x))
python

Pipeline Dữ Liệu Đa Framework#

Model Keras 3 huấn luyện được với mọi pipeline — tf.data.Dataset, torch.utils.data.DataLoader, mảng NumPy, DataFrame Pandas, hoặc keras.utils.PyDataset. Không cần viết lại.

API Cấp Cao Đầy Đủ#

Tất cả phần quen thuộc đều có — layers, metrics, losses, optimizers, callbacks, vòng lặp huấn luyện, lưu/serialize — và không phụ thuộc backend. train_step() tùy chỉnh phải viết riêng cho từng backend, nhưng compute_loss() chạy ở mọi nơi.

Ví dụ: Cùng Model, Backend Bất Kỳ#

import os
os.environ["KERAS_BACKEND"] = "jax"   # đổi: "tensorflow", "torch"

import keras

model = keras.Sequential([
    keras.Input(shape=(28, 28)),
    keras.layers.Flatten(),
    keras.layers.Dense(128, activation="relu"),
    keras.layers.Dense(10, activation="softmax"),
])
model.compile(optimizer="adam", loss="sparse_categorical_crossentropy")
model.fit(x_train, y_train, epochs=5)
python

Cùng code chạy trên JAX, TF hoặc PyTorch.

Model Tiền Huấn Luyện#

  • Keras Applications: cả 40 model (ResNet, EfficientNet, MobileNet…) trên mọi backend
  • KerasCV & KerasHub: BERT, OPT, Whisper, T5, StableDiffusion, YOLOv8, SegmentAnything — mọi backend

Di Trú Từ Keras 2 / tf.keras#

Model chỉ dùng built-in layer di trú gần như không thay đổi. Code tf.* tùy chỉnh cần thay bằng keras.ops, và override train_step() riêng theo backend. Sau khi di trú, bạn đổi sang JAX hoặc PyTorch chỉ bằng một biến env.

Ưu & Nhược Điểm#

Ưu điểm:

  • Viết một lần, chạy trên 4 framework
  • Không khóa framework — hiếm có trong 2026
  • Hiệu năng đỉnh nhờ backend JAX
  • Cùng đội ngũ (François Chollet) đã tạo tf.keras

Nhược điểm:

  • Custom training loop cần code riêng theo backend
  • OpenVINO chỉ dành cho inference
  • API distribution mới (device mesh) hiện chỉ có cho JAX
  • Custom op niche có thể cần fallback riêng theo backend

Kết Luận#

Keras 3 là thứ gần nhất với một API deep learning thống nhất trong năm 2026. Nó không chọn người thắng giữa TensorFlow, PyTorch và JAX — nó để bạn viết model một lần và chạy ở đâu cũng được, lấy hiệu năng tốt nhất mỗi framework cung cấp. Với đội ngũ làm thư viện hoặc phục vụ nhiều đối tượng dùng, đây ngày càng là lựa chọn mặc định.

Tài liệu tham khảo#