使用 TensorFlow 和 Cloud AI Platform 進行預測

TensorFlow 是開放原始碼機器學習平台,支援深度學習等進階機器學習方法。本頁面說明 Earth Engine 中的 TensorFlow 專屬功能。雖然 TensorFlow 模型是在 Earth Engine 外部開發及訓練,但 Earth Engine API 提供方法,可用於以 TFRecord 格式匯出訓練和測試資料,以及以 TFRecord 格式匯入/匯出影像。如要進一步瞭解如何開發管道,以便使用 TensorFlow 搭配 Earth Engine 的資料,請參閱 TensorFlow 範例頁面。請參閱 TFRecord 頁面,進一步瞭解 Earth Engine 如何將資料寫入 TFRecord 檔案。

ee.Model

ee.Model 套件會處理與 TensorFlow 支援機器學習模型的互動。

與 AI Platform 託管的模型互動

您可以使用 ee.Model.fromAiPlatformPredictor() 建立新的 ee.Model 例項。這是一個 ee.Model 物件,可將 Earth Engine 資料封裝成張量,並將其轉送為預測要求,傳送至 Google AI Platform,然後自動將回應重新組合為 Earth Engine 資料類型。請注意,視模型及其輸入內容的大小和複雜度而定,您可能需要調整 AI Platform 模型的最低節點大小,以便處理大量預測。

Earth Engine 要求 AI Platform 模型使用 TensorFlow 的 SavedModel 格式。託管模型必須先與 TensorProto 交換格式相容,才能與 Earth Engine 互動,特別是將 TensorProto 序列化為 base64。為簡化這項作業,Earth Engine CLI 提供 model prepare 指令,可在必要作業中包裝現有的 SavedModel,以便轉換輸入/輸出格式。

如要使用 ee.Model.fromAiPlatformPredictor() 中的模型,您必須具備足夠的權限才能使用模型。具體來說,您 (或任何使用模型的使用者) 至少需要具備 ML Engine 模型使用者角色。您可以前往 Cloud 控制台的「模型」頁面,查看及設定模型權限。

區域

您應為模型使用地區端點,在建立模型、建立版本和 ee.Model.fromAiPlatformPredictor() 時指定地區。任何區域都適用 (請勿使用 global),但建議使用 us-central1。請勿指定 REGIONS 參數。如果您是透過 Cloud 控制台建立模型,請務必勾選「regional」(區域) 核取方塊。

費用

圖片預測

使用 model.predictImage() 搭配託管模型,針對 ee.Image 進行預測。predictImage() 的傳回類型是 ee.Image,可新增至地圖、用於其他運算、匯出等。Earth Engine 會自動分割輸入頻帶,並視需要調整輸出投影方式,以便變更比例和分割過多。(如要進一步瞭解平鋪作業的運作方式,請參閱 TFRecord 文件)。請注意,即使頻帶為標量 (最後一個維度為 1),Earth Engine 仍會一律將 3D 張量轉寄至模型。

幾乎所有卷積模型都會採用固定的輸入投影 (也就是模型訓練時使用的資料)。在這種情況下,請在對 ee.Model.fromAiPlatformPredictor() 的呼叫中將 fixInputProj 參數設為 true。在視覺化預測結果時,請小心縮小具有固定輸入投影的模型。原因與這裡所述相同。具體來說,放大至較大的空間範圍可能會導致要求過多資料,並可能導致 AI 平台速度變慢或拒絕要求。