跳轉到

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,加入 mapshufflebatchprefetch,並直接餵給 Keras 模型。這個範例刻意保留在 NumPy 資料起點,方便看懂 tf.data 如何把既有資料轉成正式訓練管線。

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

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

5. 小結

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