ชุดข้อมูลดอกไม้จะให้เปอร์เซ็นต์ความแม่นยำเมื่อสร้างแบบจำลอง หากจำเป็นต้องกำหนดค่าโมเดลเพื่อประสิทธิภาพ ระบบจะใช้การดึงข้อมูลล่วงหน้าของบัฟเฟอร์ร่วมกับเลเยอร์การปรับขนาด เลเยอร์นี้ใช้โดยใช้โมเดล Keras บนชุดข้อมูล โดยทำให้เลเยอร์การปรับขนาดเป็นส่วนหนึ่งของโมเดล Keras
อ่านเพิ่มเติม: TensorFlow คืออะไรและ Keras ทำงานร่วมกับ TensorFlow เพื่อสร้าง Neural Networks อย่างไร
เราจะใช้ชุดข้อมูลดอกไม้ซึ่งมีรูปภาพดอกไม้หลายพันดอก ประกอบด้วยไดเร็กทอรีย่อย 5 ไดเร็กทอรี และมี 1 ไดเร็กทอรีย่อยสำหรับทุกคลาส
เรากำลังใช้ Google Colaboratory เพื่อเรียกใช้โค้ดด้านล่าง Google Colab หรือ Colaboratory ช่วยเรียกใช้โค้ด Python บนเบราว์เซอร์และไม่ต้องมีการกำหนดค่าใดๆ และเข้าถึง GPU ได้ฟรี (หน่วยประมวลผลกราฟิก) Colaboratory ถูกสร้างขึ้นบน Jupyter Notebook
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("A sequential model is built") 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) ])
เครดิตโค้ด:https://www.tensorflow.org/tutorials/load_data/images
ผลลัพธ์
A sequential model is built
คำอธิบาย
- ใช้การดึงข้อมูลล่วงหน้าแบบบัฟเฟอร์เพื่อให้สามารถรับข้อมูลจากดิสก์โดยไม่ต้องบล็อก I/O
- นี่เป็นขั้นตอนสำคัญในการโหลดข้อมูล
- เมธอด '.cache()' ช่วยเก็บภาพไว้ในหน่วยความจำหลังจากโหลดจากดิสก์ในยุคแรก
- เพื่อให้แน่ใจว่าชุดข้อมูลจะไม่กลายเป็นสิ่งกีดขวางขณะฝึกโมเดล
- หากชุดข้อมูลใหญ่เกินไปที่จะใส่ในหน่วยความจำ คุณสามารถใช้วิธีการเดียวกันนี้เพื่อสร้างแคชบนดิสก์ที่มีประสิทธิภาพ
- เมธอด '.prefetch()' จะทับซ้อนการประมวลผลข้อมูลล่วงหน้าและการดำเนินการโมเดลในขณะที่ข้อมูลกำลังได้รับการฝึกอบรม