TensorFlow to platforma systemów uczących się w wersji open source, która obsługuje zaawansowane metody uczenia maszynowego, takie jak uczenie głębokie. Na tej stronie opisujemy funkcje TensorFlow w Earth Engine. Chociaż modele TensorFlow są opracowywane i trenowane poza Earth Engine, interfejs API Earth Engine udostępnia metody eksportowania danych treningowych i testowych w formacie TFRecord oraz importowania i eksportowania obrazów w tym formacie. Więcej informacji o tworzeniu przepływów danych do korzystania z TensorFlow z danymi z Earth Engine znajdziesz na stronie przykładów TensorFlow. Aby dowiedzieć się więcej o tym, jak Earth Engine zapisuje dane w plikach TFRecord, otwórz tę stronę.
ee.Model
Pakiet ee.Model
obsługuje interakcje z modelami uczenia maszynowego opartymi na TensorFlow.
Interakcja z modelami hostowanymi w AI Platform
Nową instancję ee.Model
można utworzyć za pomocą polecenia ee.Model.fromAiPlatformPredictor()
. Jest to obiekt ee.Model
, który pakuje dane Earth Engine w tensory, przekazuje je jako żądania przewidywania do Google AI Platform, a następnie automatycznie składa odpowiedzi w typy danych Earth Engine. Pamiętaj, że w zależności od rozmiaru i złożoności modelu oraz jego danych wejściowych możesz zmienić minimalny rozmiar węzła modelu AI Platform, aby uwzględnić dużą liczbę prognoz.
Earth Engine wymaga, aby modele AI Platform były w formacie SavedModel TensorFlow. Zanim hostowany model będzie mógł wchodzić w interakcję z Earth Engine, jego dane wejściowe/wyjściowe muszą być zgodne z formatem wymiany TensorProto, a precyzyjniej z serializowanymi obiektami TensorProto w formacie base64. Aby ułatwić to zadanie, interfejs wiersza poleceń Earth Engine zawiera polecenie model prepare
, które otacza istniejący model zapisany w wymaganych operacjach, aby konwertować formaty wejścia i wyjścia.
Aby używać modelu z ee.Model.fromAiPlatformPredictor()
, musisz mieć wystarczające uprawnienia do korzystania z tego modelu. W szczególności Ty (lub każda osoba, która używa modelu) musisz mieć co najmniej
rolę użytkownika modelu ML Engine. Uprawnienia modelu możesz sprawdzić i ustawić na stronie modeli w Cloud Console.
Regiony
W przypadku modeli należy używać punktów końcowych regionalnych, podając region podczas tworzenia modelu, tworzenia wersji i ee.Model.fromAiPlatformPredictor()
. Dobrze sprawdzi się dowolny region (nie używaj opcji global), ale preferowana jest opcja us-central1
. Nie podawaj parametru REGIONS
. Jeśli tworzysz model w konsoli Cloud, sprawdź, czy zaznaczone jest pole „Regionalny”.
Koszty
Prognozy dotyczące obrazu
Użyj model.predictImage()
do prognozowania na potrzeby ee.Image
przy użyciu hostowanego modelu. Typ zwracany przez funkcję predictImage()
to ee.Image
, który można dodać do mapy, użyć w innych obliczeniach, wyeksportować itp. Earth Engine automatycznie ułoży pasma wejściowe w kafelki i w razie potrzeby dostosuje projekcję wyjściową do zmian skali i przeskalowania. (więcej informacji o tym, jak działa kafelkowanie, znajdziesz w dokumencie TFRecord). Pamiętaj, że Earth Engine zawsze prześle do Twojego modelu tensory 3D, nawet jeśli pasma są skalarne (ostatnia wymiar będzie miał wartość 1).
Prawie wszystkie modele konwolucyjne mają stałą projekcję danych wejściowych (taką jak dane, na których model był trenowany). W takim przypadku ustaw parametr fixInputProj
na true w wywołaniu metody ee.Model.fromAiPlatformPredictor()
.
Podczas wizualizacji prognoz zachowaj ostrożność podczas oddalania modelu, który ma stałą projekcję danych wejściowych. Dzieje się tak z tego samego powodu, który opisaliśmy tutaj. W szczególności powiększenie zakresu przestrzennego może spowodować wysłanie zbyt dużej ilości danych i może skutkować spowolnieniem lub odrzuceniem przez AI Platform.