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

เราจะใช้ Tensorflow เพื่อกำหนดค่าชุดข้อมูลเพื่อประสิทธิภาพได้อย่างไร


ชุดข้อมูลดอกไม้สามารถกำหนดค่าเพื่อประสิทธิภาพได้โดยใช้การดึงข้อมูลบัฟเฟอร์ล่วงหน้า วิธีสับเปลี่ยน และวิธีการแคช สามารถใช้การดึงข้อมูลล่วงหน้าแบบบัฟเฟอร์เพื่อให้แน่ใจว่าสามารถนำข้อมูลออกจากดิสก์ได้โดยไม่ต้องบล็อก I/O Dataset.cache() จะเก็บรูปภาพไว้ในหน่วยความจำหลังจากที่ได้โหลดออกจากดิสก์ในช่วงยุคแรก Dataset.prefetch() จะทับซ้อนการประมวลผลข้อมูลล่วงหน้าและการดำเนินการโมเดลขณะฝึก

อ่านเพิ่มเติม: TensorFlow คืออะไรและ Keras ทำงานร่วมกับ TensorFlow เพื่อสร้าง Neural Networks อย่างไร

ใช้ Keras Sequential API ซึ่งมีประโยชน์ในการสร้างแบบจำลองตามลำดับที่ใช้ในการทำงานกับสแต็กเลเยอร์ธรรมดา โดยที่ทุกเลเยอร์มีเทนเซอร์อินพุตหนึ่งตัวและเทนเซอร์เอาต์พุตหนึ่งตัว

เรากำลังใช้ Google Colaboratory เพื่อเรียกใช้โค้ดด้านล่าง Google Colab หรือ Colaboratory ช่วยเรียกใช้โค้ด Python บนเบราว์เซอร์และไม่ต้องมีการกำหนดค่าใดๆ และเข้าถึง GPU ได้ฟรี (หน่วยประมวลผลกราฟิก) Colaboratory สร้างขึ้นบน Jupyter Notebook

print("Configuring the dataset for better performance")
AUTOTUNE = tf.data.AUTOTUNE
train_ds = train_ds.cache().shuffle(1000).prefetch(buffer_size=AUTOTUNE)
val_ds = val_ds.cache().prefetch(buffer_size=AUTOTUNE)

เครดิตโค้ด:https://www.tensorflow.org/tutorials/images/classification

ผลลัพธ์

Configuring the dataset for better performance

คำอธิบาย

  • แนวคิดของการดึงข้อมูลล่วงหน้าแบบบัฟเฟอร์นั้นสามารถนำมาใช้เพื่อดึงข้อมูลออกจากดิสก์โดยไม่ต้องให้ I/O ถูกบล็อก
  • มีสองวิธีที่สำคัญที่สามารถใช้ได้เมื่อโหลดข้อมูล
    • cache() จะเก็บรูปภาพไว้ในหน่วยความจำหลังจากที่ได้โหลดออกจากดิสก์ในช่วงยุคแรก
    • วิธีนี้จะช่วยให้แน่ใจว่าชุดข้อมูลจะไม่กลายเป็นคอขวดเมื่อโมเดลได้รับการฝึกอบรม
    • หากชุดข้อมูลมีขนาดใหญ่เกินไปที่จะใส่ลงในหน่วยความจำ คุณสามารถใช้วิธีนี้เพื่อสร้างแคชบนดิสก์ที่มีประสิทธิภาพ
    • prefetch() จะทับซ้อนการประมวลผลข้อมูลล่วงหน้าและการดำเนินการโมเดลขณะฝึก