TensorFlow tf.data pipeline tối ưu hiệu năng bằng cache() (giữ dữ liệu trong RAM sau lần đọc đầu) và prefetch() (tiền nạp batch tiếp theo song song với training).
Ví dụ: Hàm configure_dataset
AUTOTUNE = tf.data.experimental.AUTOTUNE
def configure_dataset(dataset):
return dataset.cache().prefetch(buffer_size=AUTOTUNE)
# Áp dụng cho train/val/test, cả binary và int mode
binary_train_ds = configure_dataset(binary_train_ds)
binary_val_ds = configure_dataset(binary_val_ds)
binary_test_ds = configure_dataset(binary_test_ds)
int_train_ds = configure_dataset(int_train_ds)
int_val_ds = configure_dataset(int_val_ds)
int_test_ds = configure_dataset(int_test_ds)
Kết quả
The configure_dataset method is defined
The function is called on training dataset
The function is called on validation dataset
The function is called on test dataset
Giải thích
cache(): lưu dataset vào bộ nhớ sau epoch đầu, tránh đọc disk lại.prefetch(AUTOTUNE): tự động điều chỉnh buffer size, overlap tiền xử lý và train.- Quan trọng để tránh bottleneck I/O khi huấn luyện mô hình lớn.