2.6 tf.data 基礎
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 後,後續大型資料任務會更穩。