Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

TensorFlow: กำหนดค่าความสามารถ Dataset (Performance) ด้วย cache, shuffle, prefetch

เพิ่มประสิทธิภาพการโหลดข้อมูลด้วย cache, shuffle, และ prefetch

โค้ดตัวอย่าง

print("กำหนดค่า Dataset สำหรับประสิทธิภาพ...")
AUTOTUNE = tf.data.AUTOTUNE

train_ds = train_ds.cache().shuffle(1000).prefetch(buffer_size=AUTOTUNE)
val_ds = val_ds.cache().prefetch(buffer_size=AUTOTUNE)

ผลลัพธ์

กำหนดค่า Dataset สำหรับประสิทธิภาพ...

คำอธิบาย

  • cache(): เก็บข้อมูลใน RAM หลังโหลดครั้งแรก (epoch แรก) ลด I/O disk ใน epoch ต่อไป
  • shuffle(1000): สลับข้อมูลใน buffer size 1000 ป้องกัน overfitting ให้ batch หลากหลาย
  • prefetch(AUTOTUNE): เตรียม batch ถัดไปขณะที่ GPU กำลังฝึก batch ปัจจุบัน (overlap CPU/GPU)
  • AUTOTUNE: ให้ TensorFlow ตั้งค่า buffer size อัตโนมัติตาม hardware
  • ลำดับสำคัญ: cache() -> shuffle() -> prefetch()
  • ถ้าข้อมูลใหญ่เกิน RAM ใช้ cache('filename') บันทึกลงดิสก์แทน