TensorFlow 範例工作流程

本頁面提供範例工作流程,說明如何在 Earth Engine 中使用 TensorFlow。詳情請參閱 TensorFlow 頁面。這些範例是使用 Earth Engine Python API 編寫,並在 Colab 筆記本中執行 TensorFlow。

費用

使用 DNN 進行多類預測

「深層」類神經網路 (DNN) 只是人工類神經網路 (ANN),其中含有一或多個隱藏層。本範例示範單一隱藏層的簡單 DNN。DNN 會將光譜向量做為輸入 (也就是一次一個像素),並輸出單一類別標籤和每個像素的類別機率。下方的 Colab 筆記本示範如何建立 DNN、使用 Earth Engine 的資料進行訓練、針對匯出的圖像進行預測,以及將預測結果匯入 Earth Engine。

可代管的 DNN,用於在 Earth Engine 中進行預測

如要在 Earth Engine 中 (例如在程式碼編輯器中) 直接取得訓練完成模型的預測結果,您必須在 Google AI Platform 上代管模型。本指南將示範如何以 SavedModel 格式儲存已訓練的模型、使用 earthengine model prepare 指令準備模型以供代管,以及使用 ee.Model.fromAiPlatformPredictor 在 Earth Engine 中以互動方式取得預測結果。

使用 TensorFlow 進行邏輯迴歸

邏輯迴歸等傳統機器學習方法,自然適合在 TensorFlow 中實作。本筆記本示範以邏輯迴歸為基礎的森林砍伐偵測器,並說明在年度組合圖之前和之後的情況。請注意,這個非常簡單的模型只是用於示範;您可以新增幾個隱藏層以提高準確度。

使用 FCNN 執行迴歸

「卷積」類神經網路 (CNN) 包含一或多個卷積層,其中的輸入內容是像素的鄰域,因此產生的網路並非完全連線,但適合用於識別空間模式。全卷積神經網路 (FCNN) 的輸出內容不含全連接層。也就是說,它不會學習全域輸出內容 (即每張圖片一個輸出內容),而是學習局部輸出內容 (即每個像素一個輸出內容)。

這個 Colab 筆記本示範如何使用 UNET 模型 (一種專為醫學圖像區隔而開發的 FCNN),從 256x256 像素鄰域中,預測每個像素的連續 [0,1] 輸出值。具體來說,這個範例會說明如何匯出資料片段來訓練網路,以及如何重疊圖片片段進行推論,以消除資訊方塊邊界瑕疵。

在 AI Platform 上訓練

對於相對較大的模型 (例如 FCNN 範例),Colab 筆記本執行的免費虛擬機器可能無法長時間執行訓練工作。具體來說,如果評估資料集的預期預測誤差並未降至最低,建議您增加訓練迭代次數。如要在雲端執行大型訓練工作,請參閱這份 Colab 記事本,瞭解如何封裝訓練程式碼啟動訓練工作、使用 earthengine model prepare 指令準備 SavedModel,以及透過 ee.Model.fromAiPlatformPredictor 在 Earth Engine 中以互動方式取得預測結果。