บทนำ
Flower dataset (TensorFlow datasets) มีรูปดอกไม้หลายพันรูป 5 คลาส (daisy, dandelion, roses, sunflowers, tulips) โครงสร้างโฟลเดอร์ต่อคลาส
โค้ดตัวอย่าง
print("Loading parameters for the loader")
batch_size = 32
img_height = 180
img_width = 180
print("Preprocessing the image dataset using Keras")
print("Splitting dataset into training and validation set")
train_ds = tf.keras.preprocessing.image_dataset_from_directory(
data_dir,
validation_split=0.2,
subset="training",
seed=123,
image_size=(img_height, img_width),
batch_size=batch_size)
print("Splitting dataset into training and validation set")
val_ds = tf.keras.preprocessing.image_dataset_from_directory(
data_dir,
validation_split=0.2,
subset="validation",
seed=123,
image_size=(img_height, img_width),
batch_size=batch_size)
print("Printing the class names present in sub-directories")
class_names = train_ds.class_names
print(class_names)ผลลัพธ์
Loading parameters for the loader Preprocessing the image dataset using Keras Splitting dataset into training and validation set Found 3670 files belonging to 5 classes. Using 2936 files for training. Splitting dataset into training and validation set Found 3670 files belonging to 5 classes. Using 734 files for validation. Printing the class names present in sub-directories ['daisy', 'dandelion', 'roses', 'sunflowers', 'tulips']
คำอธิบาย
image_dataset_from_directory: โหลดรูปจากโฟลเดอร์ย่อย (แต่ละโฟลเดอร์ = 1 คลาส) อัตโนมัติvalidation_split=0.2: แยก 20% เป็น validation (seed=123 ให้ reproducible)image_size: resize ทุกภาพให้เท่ากัน (180×180)batch_size=32: จัดเป็น batch 32 รูป- คืนค่า
tf.data.Datasetที่ yield (images, labels) batches
ข้อดี
- ไม่ต้องเขียนโค้ดโหลดเอง
- รองรับ shuffle, prefetch, cache ผ่าน tf.data
- แยก train/val อัตโนมัติ