Chuẩn hóa pixel ảnh từ [0, 255] về [0, 1] bằng layer Rescaling trong TensorFlow/Keras.
Mã ví dụ
print("Tạo layer chuẩn hóa...")
normalization_layer = layers.experimental.preprocessing.Rescaling(1./255)
print("Áp dụng lên dataset bằng map...")
normalized_ds = train_ds.map(lambda x, y: (normalization_layer(x), y))
image_batch, labels_batch = next(iter(normalized_ds))
first_image = image_batch[0]
print("Min/Max sau chuẩn hóa:", np.min(first_image), np.max(first_image))
Kết quả
Tạo layer chuẩn hóa... Áp dụng lên dataset bằng map... Min/Max sau chuẩn hóa: 0.0 1.0
Giải thích
- RGB gốc: [0, 255] → không lý tưởng cho neural network (gradient lớn, hội tụ chậm).
- Rescaling(1./255): Nhân với 1/255 → đưa về [0, 1].
- Cách 1: Áp dụng layer lên dataset qua
.map()(tiền xử lý offline). - Cách 2: Nhúng layer vào mô hình (như bài 1003103413) → đơn giản hóa deployment, tự động áp dụng khi inference.
- Kết quả min=0.0, max=1.0 xác nhận chuẩn hóa đúng.