跳轉到

2.6 tf.data 基礎

範例程式:Open In Colab

tf.data 是 TensorFlow 建立資料管線的核心工具。它可以把 NumPy、Tensor、檔案路徑或產生器整理成可被 model.fit() 使用的 Dataset。

1. 學習目標

當資料量變大或資料來源變複雜時,直接把所有 NumPy array 傳給 model.fit() 不一定適合。tf.data.Dataset 可以讓資料讀取、轉換、shuffle、batch 與 prefetch 流程更清楚。

2. Dataset 常見操作

操作 用途
from_tensor_slices 從 Tensor 或 NumPy array 建立 dataset
shuffle 打亂資料順序
map 對每筆資料做轉換
batch 組成 batch
prefetch 預先準備下一批資料

3. 實作流程

Notebook 使用 synthetic binary classification 資料,示範如何從 NumPy 建立 Dataset,加入 map、shuffle、batch 與 prefetch,並直接餵給 Keras 模型。這個範例刻意保留在 NumPy 資料起點,方便看懂 tf.data 如何把既有資料轉成正式訓練管線。

4. 如何套用自己的資料?

若資料已經是 NumPy array,可用 from_tensor_slices((x, y))。若資料來自圖片或文字檔,通常會先建立檔案路徑 dataset,再用 map 讀取與解碼。訓練資料通常需要 shuffle,validation/test 則不需要打亂,最後都可以加上 batch 與 prefetch。

5. 小結

tf.data 是從小範例走向正式資料管線的關鍵。熟悉 map → shuffle → batch → prefetch 後,後續大型資料任務會更穩。