Predicciones con TensorFlow y Cloud AI Platform

TensorFlow es una plataforma de AA de código abierto que admite métodos avanzados de AA, como el aprendizaje profundo. En esta página, se describen las funciones específicas de TensorFlow en Earth Engine. Aunque los modelos de TensorFlow se desarrollan y entrenan fuera de Earth Engine, la API de Earth Engine proporciona métodos para exportar datos de entrenamiento y pruebas en formato TFRecord, así como importar o exportar imágenes en formato TFRecord. Consulta la página de ejemplos de TensorFlow para obtener más información sobre cómo desarrollar canalizaciones para usar TensorFlow con datos de Earth Engine. Consulta la página de TFRecord para obtener más información sobre cómo Earth Engine escribe datos en archivos TFRecord.

ee.Model

El paquete ee.Model controla la interacción con modelos de aprendizaje automático respaldados por TensorFlow.

Interactuar con modelos alojados en AI Platform

Se puede crear una nueva instancia de ee.Model con ee.Model.fromAiPlatformPredictor(). Este es un objeto ee.Model que empaqueta los datos de Earth Engine en tensores, los reenvía como solicitudes de predicción a Google AI Platform y, luego, vuelve a ensamblar automáticamente las respuestas en tipos de datos de Earth Engine. Ten en cuenta que, según el tamaño y la complejidad de tu modelo y sus entradas, es posible que desees ajustar el tamaño mínimo del nodo de tu modelo de AI Platform para admitir un gran volumen de predicciones.

Earth Engine requiere que los modelos de AI Platform usen el formato SavedModel de TensorFlow. Para que un modelo alojado pueda interactuar con Earth Engine, sus entradas y salidas deben ser compatibles con el formato de intercambio de TensorProto, específicamente los TensorProtos serializados en base64. Para facilitar esto, la CLI de Earth Engine tiene el comando model prepare que une un modelo guardado existente en las operaciones requeridas para convertir formatos de entrada y salida.

Para usar un modelo con ee.Model.fromAiPlatformPredictor(), debes tener permisos suficientes para usarlo. Específicamente, tú (o cualquier persona que use el modelo) necesita al menos el rol de usuario del modelo de ML Engine. Puedes inspeccionar y configurar los permisos de los modelos en la página de modelos de la consola de Cloud.

Regiones

Debes usar extremos regionales para tus modelos y especificar la región en la creación del modelo, la creación de la versión y en ee.Model.fromAiPlatformPredictor(). Cualquier región funcionará (no uses global), pero se prefiere us-central1. No especifiques el parámetro REGIONS. Si creas un modelo desde la consola de Cloud, asegúrate de que la casilla regional esté marcada.

Costos

Predicciones de imágenes

Usa model.predictImage() para hacer predicciones en un ee.Image con un modelo alojado. El tipo de valor que se muestra de predictImage() es un ee.Image que se puede agregar al mapa, usar en otros cálculos, exportar, etcétera. Earth Engine dividirá automáticamente las bandas de entrada y ajustará la proyección de salida para los cambios de escala y la superposición según sea necesario. (consulta el documento de TFRecord para obtener más información sobre cómo funciona el mosaico). Ten en cuenta que Earth Engine siempre reenviará tensores 3D a tu modelo, incluso cuando las bandas sean escalares (la última dimensión será 1).

Casi todos los modelos de convolución tendrán una proyección de entrada fija (la de los datos con los que se entrenó el modelo). En este caso, establece el parámetro fixInputProj en true en tu llamada a ee.Model.fromAiPlatformPredictor(). Cuando visualices las predicciones, ten cuidado cuando reduzcas la escala de un modelo que tenga una proyección de entrada fija. Esto se debe al mismo motivo que se describe aquí. Específicamente, acercar un gran alcance espacial puede generar solicitudes de demasiados datos y puede manifestarse como ralentizaciones o rechazos por parte de AI Platform.