Vorhersagen mit TensorFlow und Cloud AI Platform

TensorFlow ist eine Open-Source-ML-Plattform, die fortgeschrittene ML-Methoden wie Deep Learning unterstützt. Auf dieser Seite werden TensorFlow-spezifische Funktionen in Earth Engine beschrieben. Obwohl TensorFlow-Modelle außerhalb von Earth Engine entwickelt und trainiert werden, bietet die Earth Engine API Methoden zum Exportieren von Trainings- und Testdaten im TFRecord-Format und zum Importieren/Exportieren von Bildern im TFRecord-Format. Weitere Informationen zum Entwickeln von Pipelines für die Verwendung von TensorFlow mit Daten aus der Earth Engine finden Sie auf der Beispielseite für TensorFlow. Auf der TFRecord-Seite finden Sie weitere Informationen dazu, wie Earth Engine Daten in TFRecord-Dateien schreibt.

ee.Model

Das Paket ee.Model verarbeitet die Interaktion mit TensorFlow-gestützten Modellen für maschinelles Lernen.

Mit in AI Platform gehosteten Modellen interagieren

Mit ee.Model.fromAiPlatformPredictor() kann eine neue ee.Model-Instanz erstellt werden. Dies ist ein ee.Model-Objekt, das Earth Engine-Daten in Tensoren verpackt, sie als Vorhersageanfragen an die Google AI Platform weiterleitet und die Antworten dann automatisch in Earth Engine-Datentypen zusammensetzt. Je nach Größe und Komplexität Ihres Modells und seiner Eingaben können Sie die Mindestknotengröße Ihres AI Platform-Modells anpassen, um eine große Anzahl von Vorhersagen zu ermöglichen.

In Earth Engine müssen AI Platform-Modelle das SavedModel von TensorFlow verwenden. Bevor ein gehostetes Modell mit Earth Engine interagieren kann, müssen seine Eingaben/Ausgaben mit dem TensorProto-Austauschformat kompatibel sein, insbesondere serialisierte TensorProtos in Base64. Um dies zu vereinfachen, gibt es in der Earth Engine-Befehlszeile den Befehl model prepare, mit dem ein vorhandenes SavedModel in die erforderlichen Vorgänge zur Konvertierung von Eingabe-/Ausgabeformaten eingewickelt wird.

Wenn Sie ein Modell mit ee.Model.fromAiPlatformPredictor() verwenden möchten, benötigen Sie ausreichende Berechtigungen. Sie (oder alle Nutzer des Modells) benötigen mindestens die Rolle ML Engine-Modellnutzer. Sie können Modellberechtigungen auf der Seite „Modelle“ in der Cloud Console prüfen und festlegen.

Regionen

Sie sollten regionale Endpunkte für Ihre Modelle verwenden und die Region beim Erstellen des Modells, der Version und in ee.Model.fromAiPlatformPredictor() angeben. Jede Region ist zulässig (verwenden Sie nicht „global“), aber us-central1 wird bevorzugt. Geben Sie den Parameter REGIONS nicht an. Wenn Sie ein Modell in der Cloud Console erstellen, muss das Kästchen für die regionale Version angeklickt sein.

Kosten

Bildvorhersagen

Mit model.predictImage() können Sie mit einem gehosteten Modell Vorhersagen für eine ee.Image treffen. Der Rückgabetyp von predictImage() ist ein ee.Image, der der Karte hinzugefügt, in anderen Berechnungen verwendet oder exportiert werden kann. Earth Engine fügt die Eingabebänder automatisch zu Kacheln zusammen und passt die Ausgabeprojektion bei Bedarf an Skalierungsänderungen und Überkachelungen an. Weitere Informationen zur Funktionsweise der Kachelung finden Sie in der TFRecord-Dokumentation. Hinweis: Earth Engine leitet immer 3D-Tensoren an Ihr Modell weiter, auch wenn die Bänder skalar sind (die letzte Dimension ist dann 1).

Fast alle Convolutional-Modelle haben eine feste Eingabeprojektion (die der Daten, mit denen das Modell trainiert wurde). Legen Sie in diesem Fall den Parameter fixInputProj in Ihrem Aufruf von ee.Model.fromAiPlatformPredictor() auf true fest. Achten Sie beim Visualisieren von Vorhersagen darauf, bei einem Modell mit fester Eingabeprojektion nicht zu weit herauszuzoomen. Das liegt daran, wie hier beschrieben. Insbesondere kann das Heranzoomen auf einen großen räumlichen Bereich zu Anfragen nach zu vielen Daten führen und sich in Form von Verzögerungen oder Ablehnungen durch AI Platform äußern.