Công nghệ Việt - Hàn17 phút đọc·19/08/2026KVKVBiz

Tensor và TensorFlow là gì? Từ khối số đến một hệ thống AI

Hiểu shape, rank, dtype và axis trước; sau đó khám phá TensorFlow, Keras, GradientTape, graph, GPU và cách đưa mô hình vào sản phẩm.

Ảnh minh họa editorial nguyên bản · KVBiz
Xem 23 nội dung chính
  1. 01Tensor là gì?
  2. 02Bốn thuộc tính phải nhìn đầu tiên
  3. 03Tensor có phải chỉ là một mảng NumPy?
  4. 04Thử tạo tensor bằng TensorFlow
  5. 05TensorFlow là gì?
  6. 06Các phần chính trong hệ sinh thái TensorFlow
  7. 07TensorFlow dạy model học thế nào?
  8. 08Ví dụ model TensorFlow cực nhỏ
  9. 09Vì sao TensorFlow từng tạo ảnh hưởng lớn?
  10. 10TensorFlow khác PyTorch ở đâu?
  11. 11TensorFlow, CUDA và GPU liên hệ thế nào?
  12. 12TPU là gì trong TensorFlow?
  13. 13Tensor có thể chứa chữ không?
  14. 14RaggedTensor và SparseTensor là gì?
  15. 15Broadcasting — phép toán “tự kéo giãn”
  16. 16Reshape không làm thay đổi dữ liệu
  17. 17Doanh nghiệp cần hiểu tensor để làm gì?
  18. 18Khi nào nên chọn TensorFlow?
  19. 19Khi nào chưa cần TensorFlow?
  20. 20Lộ trình học TensorFlow trong bảy bước
  21. 21Checklist debug tensor
  22. 22Kết luận
  23. 23Nguồn chính thức

Tên TensorFlow có thể hiểu nôm na là “dòng chảy của tensor”. Muốn hiểu framework này, trước tiên phải hiểu thứ đang chảy là gì.

Tensor là gì?

Hãy bắt đầu từ những thứ quen thuộc:

  • Nhiệt độ hôm nay: một con số;
  • Nhiệt độ bảy ngày: một hàng số;
  • Bảng nhiệt độ của nhiều thành phố trong bảy ngày: một bảng;
  • Video: nhiều khung hình, mỗi khung có chiều cao, chiều rộng và màu;
  • Một batch video: thêm một chiều chứa nhiều video.

Trong toán học và machine learning, tất cả có thể biểu diễn bằng tensor.

Từ một số đến video

Dữ liệuCách hình dungRank thường gặp
Một số 7Scalar0
Danh sách [1, 2, 3]Vector1
Bảng hàng × cộtMatrix2
Ảnh màu cao × rộng × 3 kênhTensor 3 chiều3
Một batch ảnhSố ảnh × cao × rộng × kênh4
Một batch videoSố video × thời gian × cao × rộng × kênh5

Rank là số trục của tensor, không phải số phần tử. Một ảnh 4K có hàng triệu giá trị nhưng vẫn thường là tensor rank 3.

Minh họa tensor từ một số, vector, ma trận, ảnh RGB, batch ảnh đến batch video

Đọc hình từ trái sang phải: một giá trị → dãy 6 số → bảng 4×5 → ảnh có ba kênh màu 4×5×3 → N ảnh → N video, mỗi video có T khung hình. Rank tăng khi ta thêm một trục mới; kích thước từng trục nằm trong shape.

Bốn thuộc tính phải nhìn đầu tiên

Shape — hình dạng

Shape cho biết tensor dài bao nhiêu trên từng trục.

Ví dụ một batch 32 ảnh màu 224 × 224 pixel có thể có shape:

`[32, 224, 224, 3]`

Ý nghĩa:

  • 32 ảnh;
  • cao 224 pixel;
  • rộng 224 pixel;
  • 3 kênh màu RGB.

Một số framework hoặc model dùng thứ tự `[batch, channel, height, width]`, tức `[32, 3, 224, 224]`. Hai tensor có cùng số phần tử nhưng khác thứ tự trục có thể làm model báo lỗi hoặc cho kết quả sai.

Dtype — loại số

Tensor còn có kiểu dữ liệu:

  • `int32`: số nguyên;
  • `float32`: số thực phổ biến khi huấn luyện;
  • `float16` hoặc `bfloat16`: ít bit hơn, có thể nhanh và tiết kiệm bộ nhớ trên phần cứng phù hợp;
  • `int8`: thường gặp khi lượng tử hóa để inference;
  • `bool`: đúng/sai.

Dtype không phải chi tiết trang trí. Nó ảnh hưởng bộ nhớ, tốc độ, độ chính xác số học và phần cứng nào có thể tăng tốc.

Một triệu giá trị `float32` cần khoảng 4 MB chỉ để lưu số; `float16` cần khoảng một nửa. Nhưng đổi dtype tùy tiện có thể khiến model mất ổn định hoặc giảm độ chính xác.

Axis — trục

Axis là chiều mà một phép toán tác động.

Với bảng điểm shape `[lớp, học sinh, môn]`:

  • Tính trung bình theo axis môn sẽ cho điểm trung bình từng học sinh;
  • Tính theo axis học sinh sẽ cho trung bình từng môn của mỗi lớp;
  • Chọn nhầm axis vẫn có thể chạy nhưng trả lời sai câu hỏi.

Device — tensor nằm ở đâu

Tensor có thể ở RAM của CPU, bộ nhớ GPU hoặc accelerator khác. Phép tính chỉ thực hiện được khi dữ liệu và model nằm trên thiết bị tương thích.

Chuyển tensor lớn qua lại giữa CPU và GPU giống chở hàng qua cầu: dù hai nhà máy đều nhanh, giao thông liên tục vẫn làm toàn hệ thống chậm.

Tensor có phải chỉ là một mảng NumPy?

Tensor khá giống mảng NumPy, nhưng các framework AI bổ sung những khả năng quan trọng:

  • Chạy trên GPU/TPU và phần cứng tăng tốc;
  • Tham gia vào automatic differentiation;
  • Theo dõi đồ thị tính toán;
  • Hỗ trợ các phép toán chuyên cho neural network;
  • Phân phối công việc trên nhiều thiết bị;
  • Xuất graph/model để triển khai.

Trong TensorFlow, `tf.Tensor` là bất biến: không sửa trực tiếp nội dung mà tạo tensor mới. Trọng số cần thay đổi khi model học thường được lưu trong `tf.Variable`.

Thử tạo tensor bằng TensorFlow

PYTHON
import tensorflow as tf

x = tf.constant([
[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0]
])

print(x.shape)  # (2, 3)
print(x.dtype)  # float32
print(tf.reduce_sum(x))  # 21.0

Tensor trên có hai hàng và ba cột. `tf.reduce_sum` cộng toàn bộ phần tử.

Muốn giữ một giá trị có thể cập nhật:

PYTHON
weight = tf.Variable([1.0, 2.0])
weight.assign([1.5, 2.5])

Model học bằng cách thay đổi những variable như vậy.

TensorFlow là gì?

Theo tài liệu chính thức, TensorFlow là nền tảng end-to-end cho machine learning. Nó hỗ trợ:

  • Tính toán số trên tensor;
  • GPU và xử lý phân tán;
  • Automatic differentiation;
  • Xây và huấn luyện model;
  • Lưu, xuất và triển khai model;
  • Chạy trên server, web, mobile và một số thiết bị edge.

TensorFlow không phải:

  • Một ngôn ngữ lập trình;
  • Một con chip;
  • Một model AI có sẵn;
  • Một cơ sở dữ liệu;
  • Chỉ riêng Keras.

Python thường là ngôn ngữ điều khiển. TensorFlow là thư viện và runtime thực hiện công việc.

Các phần chính trong hệ sinh thái TensorFlow

TensorFlow Core — động cơ

Core chứa tensor, phép toán, automatic differentiation, graph, thiết bị và các API mức thấp.

Bạn có thể viết training loop hoàn toàn bằng Core, nhưng người mới thường không cần bắt đầu ở đây.

Keras — bảng điều khiển dễ dùng

Keras là API cấp cao được khuyến nghị cho phần lớn người dùng TensorFlow. Nó cung cấp:

  • Layers;
  • Models;
  • Losses;
  • Optimizers;
  • Metrics;
  • `fit()`, `evaluate()`, `predict()`;
  • Callback như EarlyStopping và ModelCheckpoint.

Nếu TensorFlow là một nhà máy, Core là máy móc bên trong còn Keras là bảng điều khiển giúp kỹ sư vận hành mà không phải tự nối từng dây điện.

tf.data — dây chuyền đưa dữ liệu vào

`tf.data` giúp đọc, biến đổi, shuffle, batch, prefetch và cung cấp dữ liệu cho model.

GPU đắt tiền có thể phải ngồi chờ nếu pipeline dữ liệu quá chậm. Vì vậy tốc độ model không chỉ phụ thuộc số TOPS/FLOPS; cách chuẩn bị và giao dữ liệu cũng rất quan trọng.

tf.function và graph — đóng gói công việc

TensorFlow có thể chạy ở chế độ eager, tức câu lệnh được thực hiện ngay, thuận tiện để thử và debug.

`@tf.function` cho phép TensorFlow quan sát các phép toán tensor rồi tạo graph tối ưu. Graph có thể:

  • Giảm overhead của Python;
  • Tối ưu một số phép toán;
  • Hỗ trợ export;
  • Chạy ở môi trường không cần chương trình Python ban đầu.

Nhưng nếu input thay đổi shape/dtype, TensorFlow có thể phải trace lại. Code Python có side effect cũng có thể cư xử khác bên trong graph. Vì vậy, graph nhanh và dễ triển khai hơn trong nhiều trường hợp, nhưng cần hiểu cách tracing hoạt động.

SavedModel và định dạng Keras — đóng gói model

Model sau huấn luyện cần lưu kiến trúc, weights và chữ ký hàm phục vụ inference.

Keras khuyến nghị định dạng `.keras` cho việc lưu object Keras. SavedModel phù hợp với nhiều luồng export và serving của TensorFlow.

Tên file không quyết định model chạy tốt; vẫn phải lưu cùng preprocessing, vocabulary, nhãn, phiên bản code và metadata.

TensorFlow Serving, TensorFlow.js và LiteRT

Tùy môi trường triển khai:

  • TensorFlow Serving: phục vụ model trên server;
  • TensorFlow.js: chạy model trong JavaScript/browser hoặc Node.js;
  • LiteRT — tên hiện dùng cho công nghệ từng được biết rộng rãi là TensorFlow Lite — hướng tới mobile và edge;
  • Các backend/accelerator khác có thể yêu cầu convert và kiểm tra operator.

“Train bằng TensorFlow” không có nghĩa cùng một file tự chạy tối ưu trên mọi thiết bị.

Minh họa vòng huấn luyện TensorFlow từ dữ liệu đến model, loss, gradient và cập nhật trọng số

Vòng màu cam là forward: batch dữ liệu đi qua mạng để tạo dự đoán rồi được so với đáp án để tính loss. Vòng màu xanh là backward: gradient đi ngược để optimizer chỉnh các trọng số. Khi huấn luyện xong, nhánh màu xanh lá đưa model sang server, máy tính hoặc điện thoại để inference.

TensorFlow dạy model học thế nào?

Quy trình lõi giống PyTorch:

1. Dữ liệu được chuyển thành tensor;

2. Model thực hiện forward pass;

3. Loss đo mức sai;

4. Automatic differentiation tính gradient;

5. Optimizer cập nhật weights;

6. Lặp lại qua nhiều batch và epoch;

7. Đánh giá trên dữ liệu chưa được học.

TensorFlow dùng `tf.GradientTape` để ghi lại phép toán cần cho việc tính gradient ở mức thấp.

PYTHON
with tf.GradientTape() as tape:
prediction = model(x, training=True)
loss = loss_fn(y, prediction)

gradients = tape.gradient(loss, model.trainable_variables)
optimizer.apply_gradients(zip(gradients, model.trainable_variables))

Keras có thể bọc quy trình này vào `model.fit()`:

PYTHON
model.compile(
optimizer="adam",
loss="sparse_categorical_crossentropy",
metrics=["accuracy"]
)

model.fit(train_data, epochs=10)

Hai cách không đối lập. `fit()` tiện cho phần lớn bài toán; custom loop phù hợp khi logic huấn luyện đặc biệt.

Ví dụ model TensorFlow cực nhỏ

PYTHON
import tensorflow as tf

model = tf.keras.Sequential([
tf.keras.layers.Input(shape=(2,)),
tf.keras.layers.Dense(8, activation="relu"),
tf.keras.layers.Dense(1)
])

model.compile(optimizer="adam", loss="mse")

Model nhận hai con số, đưa qua lớp tám nút rồi trả ra một số. Nó chưa biết gì cho tới khi được cung cấp dữ liệu và gọi `fit()`.

Điều này cho thấy TensorFlow không “tạo AI tự động”. Nó cung cấp cấu trúc và công cụ; chất lượng vẫn phụ thuộc dữ liệu, mục tiêu, cách đánh giá và vận hành.

Vì sao TensorFlow từng tạo ảnh hưởng lớn?

TensorFlow giúp các đội kỹ thuật có một hệ sinh thái tương đối liền mạch từ nghiên cứu tới production:

  • Xây và huấn luyện model;
  • Phân phối trên nhiều GPU/TPU;
  • Theo dõi bằng TensorBoard;
  • Lưu và phục vụ model;
  • Đưa model xuống web/mobile/edge.

Đặc biệt, Keras giúp người mới tạo model với ít code hơn, trong khi Core vẫn cho phép can thiệp sâu.

Tuy nhiên, “hệ sinh thái lớn” không có nghĩa mọi dự án nên dùng TensorFlow. Framework phù hợp phụ thuộc code hiện có, kỹ năng đội ngũ, model mã nguồn mở cần dùng và thiết bị đích.

TensorFlow khác PyTorch ở đâu?

Cả hai đều dùng tensor, automatic differentiation, GPU và neural network. Sự khác biệt ngày nay nhỏ hơn những tranh luận cũ.

Câu hỏiTensorFlow/KerasPyTorch
API bắt đầu nhanhKeras, model.fitnn.Module và training loop
Trải nghiệm mặc địnhEager, có tf.function/graphEager, có torch.compile
Auto differentiationGradientTapeautograd/backward
Dữ liệutf.dataDataset/DataLoader
Lưu/triển khai.keras, SavedModel, Serving, TensorFlow.js, LiteRTstate_dict, torch.export, ExecuTorch và runtime khác
Tăng tốc graphtf.function/XLAtorch.compile/Inductor
Nên chọnTheo hệ sinh thái và thiết bị đíchTheo hệ sinh thái và thiết bị đích

Không nên nói TensorFlow chỉ dùng cho production còn PyTorch chỉ dùng cho nghiên cứu. Cả hai đều có thể làm cả hai.

Bạn có thể đọc bài PyTorch là gì?  để đối chiếu cùng một vòng học qua hai cách viết.

TensorFlow, CUDA và GPU liên hệ thế nào?

Khi TensorFlow chạy phép toán được hỗ trợ trên GPU NVIDIA:

  • TensorFlow tổ chức graph và operator;
  • CUDA cùng các thư viện GPU cung cấp lớp phần mềm tăng tốc;
  • GPU thực hiện phép tính song song;
  • Tensor nằm trong bộ nhớ GPU trong lúc xử lý.

TensorFlow không thay thế CUDA và CUDA không thay thế TensorFlow.

Có GPU NVIDIA cũng chưa đủ. Phiên bản TensorFlow, driver, CUDA/cuDNN, hệ điều hành và package phải tương thích. Vì vậy nên dùng hướng dẫn cài chính thức hoặc container đã kiểm thử thay vì ghép phiên bản từ nhiều blog cũ.

TPU là gì trong TensorFlow?

TPU là bộ tăng tốc do Google thiết kế cho machine learning. TensorFlow có hỗ trợ mạnh cho TPU, đặc biệt với chiến lược phân tán.

Nhưng TPU không phải “GPU nhanh hơn trong mọi việc”. Hiệu quả phụ thuộc workload, batch, kiểu số, pipeline dữ liệu và mức độ tương thích của model. Chi phí chuyển hệ thống cũng phải được tính.

Tensor có thể chứa chữ không?

Máy học cuối cùng vẫn cần số. Văn bản thường được xử lý theo các bước:

1. Chuỗi chữ;

2. Tokenization;

3. Mỗi token thành ID số;

4. ID thành embedding;

5. Embedding tạo tensor để model xử lý.

TensorFlow có `tf.string` và các lớp preprocessing, nhưng phép học chính thường hoạt động trên biểu diễn số.

Tương tự, ảnh JPEG phải được giải mã thành pixel; âm thanh phải thành chuỗi mẫu hoặc đặc trưng; dữ liệu bảng phải được chuẩn hóa/mã hóa.

RaggedTensor và SparseTensor là gì?

Tensor thông thường có shape chữ nhật: mỗi hàng dài bằng nhau. Dữ liệu thực tế không luôn đẹp như vậy.

  • RaggedTensor: các hàng có độ dài khác nhau, như câu dài ngắn khác nhau;
  • SparseTensor: phần lớn giá trị bằng 0, chỉ lưu vị trí có dữ liệu.

Hai cấu trúc này tiết kiệm hoặc diễn đạt dữ liệu tốt hơn trong một số bài toán, nhưng không phải mọi layer và accelerator đều xử lý giống tensor dense. Trước khi chọn, phải kiểm tra đường chạy toàn model.

Broadcasting — phép toán “tự kéo giãn”

TensorFlow có thể thực hiện phép toán giữa tensor có shape khác nhau nếu chúng tương thích theo quy tắc broadcasting.

Ví dụ cộng một vector ba phần tử vào từng hàng của ma trận có ba cột.

Broadcasting giúp code ngắn, nhưng cũng dễ tạo lỗi âm thầm. Tensor vô tình có shape `[N, 1]` thay vì `[N]` có thể làm kết quả nở thành `[N, N]`, tốn bộ nhớ mà vẫn không báo lỗi ngay.

Khi debug, luôn in `shape`, `dtype` và một vài giá trị mẫu trước khi nghi ngờ thuật toán phức tạp.

Reshape không làm thay đổi dữ liệu

`reshape` chỉ đổi cách nhìn các phần tử, miễn tổng số phần tử giữ nguyên.

PYTHON
x = tf.constant([1, 2, 3, 4, 5, 6])
y = tf.reshape(x, [2, 3])

`x` có sáu số; `y` vẫn sáu số nhưng trình bày thành hai hàng, ba cột.

Reshape khác transpose. Transpose đổi trật tự axis; reshape chỉ sắp cách chia shape. Nhầm hai thao tác là lỗi rất phổ biến trong image, sequence và attention.

Doanh nghiệp cần hiểu tensor để làm gì?

Ngay cả CEO hoặc PM không code cũng nên hiểu tensor vì nó liên quan trực tiếp đến chi phí:

  • Ảnh độ phân giải gấp đôi có thể làm số pixel tăng khoảng bốn lần;
  • Batch lớn cần nhiều VRAM;
  • Video thêm trục thời gian nên dữ liệu tăng rất nhanh;
  • Float32 sang float16 có thể giảm bộ nhớ nhưng cần kiểm tra độ chính xác;
  • Chuyển tensor CPU–GPU liên tục làm tăng latency;
  • Shape động có thể khiến compiler/runtime khó tối ưu;
  • Model edge bị giới hạn bởi operator và bộ nhớ, không chỉ TOPS.

Một yêu cầu tưởng đơn giản như “camera phải nhìn rõ hơn” có thể kéo theo chi phí GPU, băng thông, lưu trữ và độ trễ lớn hơn đáng kể.

Khi nào nên chọn TensorFlow?

TensorFlow đáng đưa vào shortlist khi:

  • Đội đã có kinh nghiệm TensorFlow/Keras;
  • Dự án cần Keras để thử nghiệm nhanh;
  • Có hạ tầng TensorFlow Serving hoặc pipeline TensorFlow hiện hữu;
  • Cần TensorFlow.js/LiteRT hoặc luồng triển khai phù hợp;
  • Dùng TPU hoặc chiến lược phân tán mà đội đã kiểm chứng;
  • Model/thư viện cần dùng được hỗ trợ tốt.

Không nên chọn chỉ vì “Google làm ra” hoặc vì một khóa học dùng TensorFlow.

Khi nào chưa cần TensorFlow?

Bạn có thể chưa cần framework deep learning nếu:

  • Chỉ gọi API AI có sẵn;
  • Bài toán giải được bằng SQL, quy tắc hoặc thống kê đơn giản;
  • Không có dữ liệu đủ chất lượng;
  • Không có kế hoạch deployment/monitoring;
  • Model pretrained nhỏ chạy được bằng runtime khác;
  • Chi phí tự huấn luyện lớn hơn giá trị kinh doanh.

Framework là phương tiện, không phải chiến lược AI.

Lộ trình học TensorFlow trong bảy bước

1. Python và NumPy cơ bản;

2. Tensor: shape, rank, dtype, axis;

3. Các phép toán và broadcasting;

4. Keras Sequential và Functional API;

5. Loss, optimizer, metrics;

6. Dataset, validation và overfitting;

7. Lưu model và chạy inference.

Sau đó mới học custom training loop, `tf.function`, distributed training, XLA và deployment.

Checklist debug tensor

Tự kiểm tra trước khi thực hiện

0/10 hoàn thành

Dấu tích chỉ được lưu trên thiết bị này và không thay thế xác nhận của đơn vị tổ chức.

Kết luận

Hãy nhớ hai câu:

Hiểu shape, dtype, axis và device quan trọng hơn học thuộc API. Khi bốn thứ đó rõ ràng, TensorFlow, PyTorch hay một framework khác chỉ là những cách tổ chức cùng các nguyên lý nền tảng.

Nguồn chính thức

Thông tin được kiểm tra ngày 19/8/2026. API, tên sản phẩm triển khai và hướng dẫn cài đặt có thể thay đổi; hãy đối chiếu tài liệu chính thức theo phiên bản đang dùng.

Đọc xong rồi?

Lưu bài để đọc lại

Lưu bài vào mục Bài đã lưu để tìm lại nhanh khi bạn cần.

Kết nối doanh nghiệp Việt–Hàn

Hội Doanh nghiệp Việt Nam tại Hàn Quốc (BAViK)

Tìm hiểu mạng lưới hội viên, hoạt động kết nối và cơ hội hợp tác dành cho doanh nghiệp Việt Nam tại Hàn Quốc.

Khám phá bavik.kr ↗

Nhận bản tin KVBiz

Tin kinh tế – công nghệ – doanh nghiệp Hàn–Việt chọn lọc, gửi hằng tuần. Miễn phí, huỷ bất cứ lúc nào.

Đọc toàn văn tại TensorFlow Documentation →

Đây là bản tóm tắt. Bài gốc: Tensor và TensorFlow là gì? Hướng dẫn nhập môn — TensorFlow Documentation. Bản quyền nội dung thuộc về nguồn gốc.

Đừng dừng ở một bài

Tiếp tục đọc trên KVBiz

Xem tất cả tin →