TensorFlow 2.0 ซึ่งเป็นเวอร์ชันล่าสุดของ TensorFlow รวมคุณสมบัติของ Keras และ Eager Execution เพื่อให้กรอบการเรียนรู้เชิงลึกที่เป็นมิตรต่อผู้ใช้และมีประสิทธิภาพมากขึ้น Keras เป็น API เครือข่ายประสาทระดับสูง ในขณะที่ Eager Execution ช่วยให้สามารถประเมินการดำเนินการได้ทันที ทำให้ TensorFlow โต้ตอบและใช้งานง่ายยิ่งขึ้น การรวมกันนี้ก่อให้เกิดประโยชน์มากมายแก่นักพัฒนาและนักวิจัย ซึ่งช่วยยกระดับประสบการณ์ TensorFlow โดยรวม
หนึ่งในคุณสมบัติหลักของ TensorFlow 2.0 คือการรวม Keras เป็น API ระดับสูงอย่างเป็นทางการ Keras เดิมพัฒนาเป็นห้องสมุดแยกต่างหาก ได้รับความนิยมเนื่องจากความเรียบง่ายและใช้งานง่าย ด้วย TensorFlow 2.0 ทำให้ Keras ผสานรวมเข้ากับระบบนิเวศของ TensorFlow อย่างแน่นหนา ทำให้เป็น API ที่แนะนำสำหรับกรณีการใช้งานส่วนใหญ่ การผสานรวมนี้ช่วยให้ผู้ใช้สามารถใช้ประโยชน์จากความเรียบง่ายและความยืดหยุ่นของ Keras ในขณะที่ได้รับประโยชน์จากความสามารถที่กว้างขวางของ TensorFlow
สิ่งสำคัญอีกประการของ TensorFlow 2.0 คือการนำ Eager Execution มาใช้เป็นโหมดการทำงานเริ่มต้น Eager Execution ช่วยให้ผู้ใช้สามารถประเมินการดำเนินการทันทีที่เรียก แทนที่จะกำหนดกราฟการคำนวณแล้วเรียกใช้งานในภายหลัง โหมดดำเนินการแบบไดนามิกนี้มอบประสบการณ์การเขียนโปรแกรมที่เป็นธรรมชาติมากขึ้น ทำให้แก้ไขจุดบกพร่องได้ง่ายขึ้นและสร้างต้นแบบได้รวดเร็วขึ้น นอกจากนี้ Eager Execution ยังอำนวยความสะดวกในการใช้คำสั่งโฟลว์ควบคุม เช่น การวนซ้ำและเงื่อนไข ซึ่งก่อนหน้านี้นำไปใช้ใน TensorFlow ได้ยาก
ด้วยการรวม Keras และ Eager Execution ทำให้ TensorFlow 2.0 ลดความซับซ้อนของกระบวนการสร้าง ฝึกอบรม และปรับใช้โมเดลการเรียนรู้เชิงลึก นักพัฒนาสามารถใช้ Keras API ระดับสูงเพื่อกำหนดโมเดลของตน โดยใช้ประโยชน์จากไวยากรณ์ที่ใช้งานง่ายและชุดเลเยอร์และโมเดลที่สร้างไว้ล่วงหน้ามากมาย จากนั้นพวกเขาสามารถรวมโมเดลเหล่านี้เข้ากับการทำงานและฟังก์ชันระดับล่างของ TensorFlow ได้อย่างราบรื่น การผสานรวมนี้ช่วยให้มีความยืดหยุ่นและปรับแต่งได้มากขึ้น ทำให้ผู้ใช้สามารถปรับแต่งโมเดลของตนอย่างละเอียดและรวมคุณสมบัติขั้นสูงเข้ากับเวิร์กโฟลว์ของตน
นอกจากนี้ TensorFlow 2.0 ยังแนะนำแนวคิดที่เรียกว่า "tf.function" ซึ่งช่วยให้ผู้ใช้สามารถปรับแต่งโค้ดของตนให้เหมาะสมโดยการแปลงฟังก์ชัน Python เป็นกราฟ TensorFlow ที่มีประสิทธิภาพสูงโดยอัตโนมัติ ฟีเจอร์นี้ใช้ประโยชน์จากทั้ง Keras และ Eager Execution เนื่องจากผู้ใช้สามารถเขียนโค้ดในรูปแบบ Pythonic และจำเป็นมากขึ้น ในขณะที่ยังคงได้รับประโยชน์จากการเพิ่มประสิทธิภาพที่ได้รับจากการประมวลผลกราฟแบบคงที่ของ TensorFlow
เพื่อแสดงให้เห็นว่า TensorFlow 2.0 รวมคุณสมบัติของ Keras และ Eager Execution เข้าด้วยกันอย่างไร ให้พิจารณาตัวอย่างต่อไปนี้:
python import tensorflow as tf from tensorflow import keras # Define a simple model using the Keras API model = keras.Sequential([ keras.layers.Dense(64, activation='relu', input_shape=(784,)), keras.layers.Dense(64, activation='relu'), keras.layers.Dense(10, activation='softmax') ]) # Enable Eager Execution tf.compat.v1.enable_eager_execution() # Create a sample input input_data = tf.random.normal((1, 784)) # Use the model to make predictions output = model(input_data) print(output)
ในตัวอย่างนี้ เรานำเข้าโมดูล TensorFlow และ Keras ก่อน เรากำหนดโมเดลเครือข่ายประสาทอย่างง่ายโดยใช้ Keras Sequential API ซึ่งประกอบด้วยเลเยอร์ที่ซ่อนอยู่ 1 เลเยอร์ที่มีการเปิดใช้งาน ReLU และเลเยอร์เอาต์พุตที่มีการเปิดใช้งาน softmax จากนั้นเราเปิดใช้งาน Eager Execution โดยใช้ฟังก์ชัน `tf.compat.vXNUMX.enable_eager_execution()`
ต่อไป เราจะสร้างตัวอย่างอินพุตเทนเซอร์โดยใช้ฟังก์ชันสุ่มปกติของ TensorFlow สุดท้าย เราส่งข้อมูลเข้าผ่านโมเดลเพื่อรับการคาดการณ์ผลลัพธ์ เนื่องจากเราใช้ Eager Execution การดำเนินการจึงดำเนินการทันที และเราสามารถพิมพ์ผลลัพธ์ได้โดยตรง
ด้วยการรันโค้ดนี้ใน TensorFlow 2.0 เราสามารถใช้ประโยชน์จากความเรียบง่ายและการแสดงออกของ Keras เพื่อกำหนดโมเดลของเรา ในขณะที่ได้รับประโยชน์จากการดำเนินการทันทีและลักษณะการโต้ตอบของ Eager Execution
TensorFlow 2.0 รวมคุณสมบัติของ Keras และ Eager Execution เพื่อให้กรอบการเรียนรู้เชิงลึกที่ทรงพลังและเป็นมิตรกับผู้ใช้ การรวม Keras เป็น API ระดับสูงอย่างเป็นทางการทำให้กระบวนการสร้างและฝึกอบรมโมเดลง่ายขึ้น ในขณะที่ Eager Execution ช่วยเพิ่มความสามารถในการโต้ตอบและความยืดหยุ่น การรวมกันนี้ช่วยให้นักพัฒนาและนักวิจัยสามารถอัปเกรดโค้ดที่มีอยู่เป็น TensorFlow 2.0 ได้อย่างมีประสิทธิภาพ และใช้ประโยชน์จากความสามารถขั้นสูง
คำถามและคำตอบล่าสุดอื่น ๆ เกี่ยวกับ EITC/AI/TFF TensorFlow Fundamentals:
- เราจะใช้เลเยอร์การฝังเพื่อกำหนดแกนที่เหมาะสมสำหรับการแสดงคำเป็นเวกเตอร์ได้อย่างไร
- จุดประสงค์ของการรวมสูงสุดใน CNN คืออะไร?
- กระบวนการแยกคุณสมบัติในเครือข่ายประสาทเทียม (CNN) นำไปใช้กับการจดจำภาพอย่างไร
- จำเป็นต้องใช้ฟังก์ชันการเรียนรู้แบบอะซิงโครนัสสำหรับโมเดลการเรียนรู้ของเครื่องที่ทำงานใน TensorFlow.js หรือไม่
- พารามิเตอร์จำนวนคำสูงสุด TensorFlow Keras Tokenizer API คืออะไร
- TensorFlow Keras Tokenizer API สามารถใช้ค้นหาคำที่ใช้บ่อยที่สุดได้หรือไม่
- โทโค่คืออะไร?
- อะไรคือความสัมพันธ์ระหว่างยุคต่างๆ ในโมเดล Machine Learning และความแม่นยำของการคาดการณ์จากการรันโมเดล
- Pack Neighbors API ใน Neural Structured Learning ของ TensorFlow สร้างชุดข้อมูลการฝึกอบรมแบบเสริมตามข้อมูลกราฟธรรมชาติหรือไม่
- Pack Neighbors API ใน Neural Structured Learning ของ TensorFlow คืออะไร
ดูคำถามและคำตอบเพิ่มเติมใน EITC/AI/TFF TensorFlow Fundamentals