Để cấu hình hiệu năng, dùng buffered prefetch kết hợp layer Rescaling. Layer này áp dụng qua Keras model, đưa rescaling layer vào định nghĩa model.
Mã ví dụ
AUTOTUNE = tf.data.AUTOTUNE
train_ds = train_ds.cache().prefetch(buffer_size=AUTOTUNE)
val_ds = val_ds.cache().prefetch(buffer_size=AUTOTUNE)
num_classes = 5
print("Xây dựng mô hình Sequential")
model = tf.keras.Sequential([
layers.experimental.preprocessing.Rescaling(1./255),
layers.Conv2D(32, 3, activation='relu'),
layers.MaxPooling2D(),
layers.Conv2D(32, 3, activation='relu'),
layers.MaxPooling2D(),
layers.Conv2D(32, 3, activation='relu'),
layers.MaxPooling2D(),
layers.Flatten(),
layers.Dense(128, activation='relu'),
layers.Dense(num_classes)
])
Nguồn mã: TensorFlow Images Tutorial
Đầu ra
Xây dựng mô hình Sequential
Giải thích
- Buffered prefetch cho phép yield data từ disk mà không bị block I/O.
- Bước quan trọng khi load data.
.cache()giữ ảnh trong RAM sau epoch đầu → dataset không thành bottleneck.- Nếu dataset quá lớn,
.cache()tạo on-disk cache hiệu năng cao. .prefetch()chồng chéo preprocessing và model execution khi training.