TensorFlow est une plate-forme de ML Open Source compatible avec les méthodes de ML avancées telles que le deep learning. Cette page décrit les fonctionnalités spécifiques à TensorFlow dans Earth Engine. Bien que les modèles TensorFlow soient développés et entraînés en dehors d'Earth Engine, l'API Earth Engine fournit des méthodes permettant d'exporter des données d'entraînement et de test au format TFRecord, et d'importer/exporter des images au format TFRecord. Pour en savoir plus sur le développement de pipelines pour utiliser TensorFlow avec des données d'Earth Engine, consultez la page des exemples TensorFlow. Consultez la page TFRecord pour en savoir plus sur la façon dont Earth Engine écrit des données dans des fichiers TFRecord.
ee.Model
Le package ee.Model
gère l'interaction avec les modèles de machine learning compatibles avec TensorFlow.
Interagir avec des modèles hébergés sur AI Platform
Une instance ee.Model
peut être créée avec ee.Model.fromAiPlatformPredictor()
. Il s'agit d'un objet ee.Model
qui empaquette les données Earth Engine dans des tenseurs, les transfère en tant que requêtes de prédiction à Google AI Platform, puis assemble automatiquement les réponses en types de données Earth Engine. Notez que selon la taille et la complexité de votre modèle et de ses entrées, vous pouvez ajuster la taille minimale des nœuds de votre modèle AI Platform pour accueillir un volume élevé de prédictions.
Earth Engine exige que les modèles AI Platform utilisent le format SavedModel de TensorFlow. Avant qu'un modèle hébergé puisse interagir avec Earth Engine, ses entrées/sorties doivent être compatibles avec le format d'échange TensorProto, en particulier les TensorProto sérialisés en base64. Pour faciliter cette tâche, la CLI Earth Engine dispose de la commande model prepare
qui encapsule un SavedModel existant dans les opérations requises pour convertir les formats d'entrée/sortie.
Pour utiliser un modèle avec ee.Model.fromAiPlatformPredictor()
, vous devez disposer d'autorisations suffisantes. Plus précisément, vous (ou toute personne qui utilise le modèle) devez au moins disposer du
Rôle Utilisateur de modèle ML Engine. Vous pouvez inspecter et définir les autorisations des modèles sur la page des modèles de Cloud Console.
Régions
Vous devez utiliser des points de terminaison régionaux pour vos modèles, en spécifiant la région lors de la création du modèle, de la création de la version et dans ee.Model.fromAiPlatformPredictor()
. N'importe quelle région fonctionne (n'utilisez pas "global"), mais us-central1
est préférable. Ne spécifiez pas le paramètre REGIONS
. Si vous créez un modèle à partir de la console Cloud, assurez-vous que la case régionale est cochée.
Coûts
Prédictions d'images
Utilisez model.predictImage()
pour effectuer des prédictions sur un ee.Image
à l'aide d'un modèle hébergé. Le type de retour de predictImage()
est un ee.Image
qui peut être ajouté à la carte, utilisé dans d'autres calculs, exporté, etc. Earth Engine mosaïque automatiquement les bandes d'entrée et ajuste la projection de sortie pour les changements d'échelle et la superposition si nécessaire. (Pour en savoir plus sur le fonctionnement du mosaïquage, consultez la documentation TFRecord.) Notez qu'Earth Engine transmettra toujours des tenseurs 3D à votre modèle, même lorsque les bandes sont scalaires (la dernière dimension sera de 1).
Presque tous les modèles convolutifs auront une projection d'entrée fixe (celle des données sur lesquelles le modèle a été entraîné). Dans ce cas, définissez le paramètre fixInputProj
sur true dans votre appel à ee.Model.fromAiPlatformPredictor()
.
Lorsque vous visualisez des prédictions, faites preuve de prudence lorsque vous faites un zoom arrière sur un modèle dont la projection d'entrée est fixe. C'est pour la même raison que celle décrite ici. Plus précisément, le zoom sur une grande étendue spatiale peut entraîner des requêtes de données excessives et se manifester par des ralentissements ou des refus de la part d'AI Platform.