การคาดการณ์โดยใช้ TensorFlow และ Cloud AI Platform

TensorFlow เป็นแพลตฟอร์ม ML แบบโอเพนซอร์สที่รองรับวิธีการ ML ขั้นสูง เช่น การเรียนรู้เชิงลึก หน้านี้จะอธิบายฟีเจอร์เฉพาะของ TensorFlow ใน Earth Engine แม้ว่าโมเดล TensorFlow จะพัฒนาและฝึกฝนนอก Earth Engine แต่ Earth Engine API ก็มีวิธีการส่งออกข้อมูลการฝึกและทดสอบในรูปแบบ TFRecord รวมถึงการนําเข้า/ส่งออกภาพในรูปแบบ TFRecord ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีพัฒนาไปป์ไลน์สําหรับการใช้ TensorFlow กับข้อมูลจาก Earth Engine ได้ที่หน้าตัวอย่าง TensorFlow ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ Earth Engine เขียนข้อมูลลงในไฟล์ TFRecord ได้ที่หน้า TFRecord

ee.Model

แพ็กเกจ ee.Model จะจัดการการโต้ตอบกับโมเดลแมชชีนเลิร์นนิงที่รองรับ TensorFlow

การโต้ตอบกับโมเดลที่โฮสต์ใน AI Platform

คุณสร้างอินสแตนซ์ ee.Model ใหม่ได้โดยใช้ ee.Model.fromAiPlatformPredictor() นี่เป็นee.Modelออบเจ็กต์ที่แพ็กข้อมูล Earth Engine ลงใน Tensor แล้วส่งต่อเป็นคำขอการคาดการณ์ไปยัง Google AI Platform จากนั้นจะประกอบคำตอบกลับเป็นประเภทข้อมูล Earth Engine โดยอัตโนมัติ โปรดทราบว่าคุณอาจต้องปรับขนาดโหนดขั้นต่ำของโมเดลแพลตฟอร์ม AI เพื่อรองรับการคาดการณ์จำนวนมาก ทั้งนี้ขึ้นอยู่กับขนาดและความซับซ้อนของโมเดลและอินพุตของโมเดล

Earth Engine กําหนดให้โมเดล AI Platform ใช้รูปแบบ SavedModel ของ TensorFlow อินพุต/เอาต์พุตของโมเดลที่โฮสต์ต้องเข้ากันได้กับรูปแบบการแลกเปลี่ยน TensorProto โดยเฉพาะ TensorProto ที่แปลงเป็นซีเรียลฐาน 64 ก่อนจึงจะโต้ตอบกับ Earth Engine ได้ ในการทำให้การดำเนินการนี้ง่ายขึ้น Earth Engine CLI มีคำสั่ง model prepare ที่รวม SavedModel ที่มีอยู่ไว้ในการดำเนินการที่จำเป็นเพื่อแปลงรูปแบบอินพุต/เอาต์พุต

หากต้องการใช้โมเดลที่มี ee.Model.fromAiPlatformPredictor() คุณต้องมีสิทธิ์เพียงพอในการใช้โมเดล กล่าวโดยละเอียดคือ คุณ (หรือทุกคนที่ใช้โมเดล) ต้องมี บทบาทผู้ใช้โมเดลของเครื่องมือ ML เป็นอย่างน้อย คุณสามารถตรวจสอบและตั้งค่าสิทธิ์ของโมเดลได้จากหน้าโมเดลของ Cloud Console

ภูมิภาค

คุณควรใช้ปลายทางระดับภูมิภาคสําหรับโมเดล โดยระบุภูมิภาคเมื่อสร้างโมเดล สร้างเวอร์ชัน และใน ee.Model.fromAiPlatformPredictor() ภูมิภาคใดก็ได้ (อย่าใช้ global) แต่เราขอแนะนำให้ใช้ us-central1 อย่าระบุพารามิเตอร์ REGIONS หากคุณสร้างโมเดลจากคอนโซล Cloud ให้ตรวจสอบว่าได้เลือกช่องระดับภูมิภาคแล้ว

ค่าใช้จ่าย

การคาดการณ์รูปภาพ

ใช้ model.predictImage() เพื่อทำนาย ee.Image โดยใช้โมเดลที่โฮสต์ ประเภทผลลัพธ์ของ predictImage() คือ ee.Image ซึ่งสามารถเพิ่มลงในแผนที่ ใช้ในงานคำนวณอื่นๆ ส่งออก ฯลฯ Earth Engine จะแบ่งแถบอินพุตเป็นไทล์โดยอัตโนมัติและปรับการฉายภาพเอาต์พุตสำหรับการเปลี่ยนแปลงขนาดและการวางไทล์ซ้อนกันตามความจำเป็น (ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการแบ่งบล็อกได้ที่เอกสาร TFRecord) โปรดทราบว่า Earth Engine จะส่งต่อเทนเซอร์ 3 มิติไปยังโมเดลของคุณเสมอ แม้ว่าย่านความถี่จะเป็นสเกลาร์ (มิติข้อมูลสุดท้ายจะเป็น 1)

โมเดล ConvNet เกือบทั้งหมดจะมีการฉายภาพข้อมูลขาเข้าแบบคงที่ (ของข้อมูลที่ใช้ในการฝึกโมเดล) ในกรณีนี้ ให้ตั้งค่าพารามิเตอร์ fixInputProj เป็น true เมื่อเรียกใช้ ee.Model.fromAiPlatformPredictor() เมื่อแสดงภาพการคาดการณ์ ให้ใช้ความระมัดระวังเมื่อซูมออกในโมเดลที่มีการฉายภาพอินพุตแบบคงที่ เนื่องด้วยเหตุผลเดียวกับที่อธิบายไว้ที่นี่ กล่าวโดยละเอียดคือ การซูมไปยังขอบเขตเชิงพื้นที่ขนาดใหญ่อาจส่งผลให้มีการขอข้อมูลมากเกินไป และอาจส่งผลให้ AI Platform ทำงานช้าลงหรือปฏิเสธคำขอ