Cette page présente des exemples de workflows illustrant l'utilisation de TensorFlow avec Earth Engine. Pour en savoir plus, consultez la page TensorFlow. Ces exemples sont écrits à l'aide de l'API Python Earth Engine et de TensorFlow exécuté dans des notebooks Colab.
Coûts
Prédiction multiclasse avec un DNN
Un réseau de neurones profond (DNN) est simplement un réseau de neurones artificiels (ANN) avec une ou plusieurs couches cachées. Cet exemple présente un RNN très simple avec une seule couche cachée. Le DNN prend des vecteurs spectraux en entrée (c'est-à-dire un pixel à la fois) et génère une seule étiquette de classe et des probabilités de classe par pixel. Le notebook Colab ci-dessous montre comment créer le RNN, l'entraîner avec des données d'Earth Engine, effectuer des prédictions sur les images exportées et importer les prédictions dans Earth Engine.
DNN hébergeable pour la prédiction dans Earth Engine
Pour obtenir des prédictions à partir de votre modèle entraîné directement dans Earth Engine (par exemple, dans l'éditeur de code), vous devez héberger le modèle sur Google AI Platform. Ce guide explique comment enregistrer un modèle entraîné au format SavedModel
, préparer le modèle à l'hébergement avec la commande earthengine model prepare
et obtenir des prédictions interactivement dans Earth Engine avec ee.Model.fromAiPlatformPredictor
.
Régression logistique avec TensorFlow
Les méthodes classiques de machine learning, telles que la régression logistique, sont faciles à implémenter dans TensorFlow. Ce notebook présente un détecteur de déforestation basé sur une régression logistique avant et après les composites annuels. Notez que ce modèle très simpliste n'est qu'à des fins de démonstration. Ajoutez quelques couches cachées pour une précision accrue.
Régression avec un FCNN
Un réseau de neurones "convolutif" (CNN) contient une ou plusieurs couches convolutives, dans lesquelles les entrées sont des voisinages de pixels, ce qui donne un réseau qui n'est pas entièrement connecté, mais qui est adapté à l'identification des tendances spatiales. Un réseau de neurones entièrement convolutif (FCNN) ne contient pas de couche entièrement connectée en sortie. Cela signifie qu'il n'apprend pas une sortie globale (une seule sortie par image), mais plutôt des sorties localisées (par pixel).
Ce notebook Colab montre comment utiliser le modèle UNET, un CNN fonctionnel développé pour la segmentation d'images médicales, pour prédire une sortie continue [0,1] dans chaque pixel à partir de voisinages de pixels de 256 x 256. Plus précisément, cet exemple montre comment exporter des extraits de données pour entraîner le réseau et comment superposer des extraits d'image pour l'inférence, afin d'éliminer les artefacts de la limite des tuiles.
Entraînement sur AI Platform
Pour les modèles relativement volumineux (comme l'exemple de FCNN), la longévité de la machine virtuelle sans frais sur laquelle les notebooks Colab s'exécutent peut ne pas être suffisante pour une tâche d'entraînement de longue durée. Plus précisément, si l'erreur de prédiction attendue n'est pas minimisée sur l'ensemble de données d'évaluation, il peut être prudent d'effectuer davantage d'itérations d'entraînement. Pour effectuer de grandes tâches d'entraînement dans le cloud, ce notebook Colab montre comment empaqueter votre code d'entraînement, démarrer une tâche d'entraînement, préparer un SavedModel
avec la commande earthengine model prepare
et obtenir des prédictions dans Earth Engine de manière interactive avec ee.Model.fromAiPlatformPredictor
.