TensorFlow היא פלטפורמת קוד פתוח ללמידת מכונה שתומכת בשיטות מתקדמות של למידת מכונה, כמו למידת עומק (deep learning). בדף הזה מתוארות תכונות ספציפיות של TensorFlow ב-Earth Engine. מודלים של TensorFlow מפותחים ומאומנים מחוץ ל-Earth Engine, אבל Earth Engine API מספק שיטות לייצוא נתוני אימון ובדיקה בפורמט TFRecord ולייבוא/ייצוא תמונות בפורמט TFRecord. בדף הדוגמאות של TensorFlow מוסבר איך לפתח צינורות עיבוד נתונים לשימוש ב-TensorFlow עם נתונים מ-Earth Engine. בדף TFRecord מוסבר איך Earth Engine כותב נתונים לקובצי TFRecord.
ee.Model
החבילה ee.Model
מטפלת באינטראקציה עם מודלים של למידת מכונה שמבוססים על TensorFlow.
אינטראקציה עם מודלים שמתארחים ב-AI Platform
אפשר ליצור מכונה חדשה של ee.Model
באמצעות ee.Model.fromAiPlatformPredictor()
. זהו אובייקט ee.Model
שמארז נתונים מ-Earth Engine בטנסורים, מעביר אותם כבקשות חיזוי אל Google AI Platform ולאחר מכן מרכיב מחדש את התשובות לסוגים של נתוני Earth Engine. חשוב לזכור: בהתאם לגודל ולמורכבות של המודל והקלטים שלו, מומלץ לשנות את גודל הצומת המינימלי של המודל ב-AI Platform כדי להתאים אותו לנפח גבוה של תחזיות.
ב-Earth Engine, מודלים של AI Platform חייבים להשתמש בפורמט SavedModel של TensorFlow. כדי שמודל מתארח יוכל לקיים אינטראקציה עם Earth Engine, הקלט/הפלט שלו צריכים להיות תואמים לפורמט החלפה של TensorProto, ובמיוחד ל-TensorProtos בסריאליזציה ב-base64. כדי להקל על כך, ב-CLI של Earth Engine יש את הפקודה model prepare
שמאריכה את ה-SavedModel הקיים בפעולות הנדרשות כדי להמיר את הפורמטים של הקלט/הפלט.
כדי להשתמש במודל עם ee.Model.fromAiPlatformPredictor()
, צריכות להיות לכם הרשאות מספיקות לשימוש במודל. באופן ספציפי, אתם (או כל מי שמשתמש במודל) צריכים לפחות את
התפקיד 'משתמש במודל של ML Engine'. אפשר לבדוק את ההרשאות של המודלים ולהגדיר אותן דרך דף המודלים במסוף Cloud.
אזורים
מומלץ להשתמש בנקודות קצה אזוריות למודלים, ולציין את האזור בזמן יצירת המודל, יצירת הגרסה וב-ee.Model.fromAiPlatformPredictor()
. כל אזור יתאים (לא משתמשים ב-global), אבל עדיף להשתמש ב-us-central1
. לא מציינים את הפרמטר REGIONS
. אם אתם יוצרים מודל ממסוף Cloud, חשוב לוודא שהתיבה 'אזורי' מסומנת.
עלויות
תחזיות לתמונות
משתמשים ב-model.predictImage()
כדי לבצע תחזיות על ee.Image
באמצעות מודל מתארח. סוג ההחזרה של predictImage()
הוא ee.Image
, שאפשר להוסיף למפה, להשתמש בו בחישובים אחרים, לייצא אותו וכו'. Earth Engine יצייר באופן אוטומטי את רצועות הקלט כמשבצות וישנה את הקרנת הפלט בהתאם לשינויי קנה מידה וליצירת משבצות נוספות לפי הצורך. (במאמר בנושא TFRecord מוסבר איך עובדת היצירה של משבצות). חשוב לזכור שמערכת Earth Engine תמיד תעביר לטנזורים תלת-ממדיים למודל שלכם, גם אם הערוצים הם סקלריים (המאפיין האחרון יהיה 1).
כמעט לכל המודלים הקוונטיים תהיה הקרנה קבועה של קלט (של הנתונים שעליהם המודל הוכשר). במקרה כזה, צריך להגדיר את הפרמטר fixInputProj
לערך true בקריאה ל-ee.Model.fromAiPlatformPredictor()
.
כשמציגים תחזיות באופן חזותי, חשוב להיזהר כשמרחיבים את התצוגה של מודל עם הקרנה קבועה של קלט. הסיבה לכך היא כפי שמתואר כאן. באופן ספציפי, הגדלת התצוגה להיקף גיאוגרפי גדול מדי עלולה לגרום לבקשות לנתונים רבים מדי, ולגרום להאטה או לדחייה על ידי AI Platform.