Previsões usando o TensorFlow e a Cloud AI Platform

O TensorFlow é uma plataforma de ML de código aberto que oferece suporte a métodos avançados de ML, como o aprendizado profundo. Esta página descreve recursos específicos do TensorFlow no Earth Engine. Embora os modelos do TensorFlow sejam desenvolvidos e treinados fora do Earth Engine, a API do Earth Engine oferece métodos para exportar dados de treinamento e teste no formato TFRecord e importar/exportar imagens no formato TFRecord. Consulte a página de exemplos do TensorFlow para mais informações sobre como desenvolver pipelines para usar o TensorFlow com dados do Earth Engine. Consulte a página do TFRecord para saber mais sobre como o Earth Engine grava dados em arquivos TFRecord.

ee.Model

O pacote ee.Model processa a interação com modelos de aprendizado de máquina com suporte do TensorFlow.

Como interagir com modelos hospedados no AI Platform

Uma nova instância de ee.Model pode ser criada com ee.Model.fromAiPlatformPredictor(). Esse é um objeto ee.Model que empacota os dados do Earth Engine em tensores, os encaminha como solicitações de previsão para o Google AI Platform e, em seguida, remonta automaticamente as respostas em tipos de dados do Earth Engine. Dependendo do tamanho e da complexidade do modelo e das entradas dele, talvez seja necessário ajustar o tamanho mínimo do nó do modelo do AI Platform para acomodar um grande volume de previsões.

O Earth Engine exige que os modelos do AI Platform usem o formato SavedModel do TensorFlow. Antes que um modelo hospedado possa interagir com o Earth Engine, as entradas/saídas dele precisam ser compatíveis com o formato de troca TensorProto, especificamente TensorProtos serializados em base64. Para facilitar, a CLI do Earth Engine tem o comando model prepare, que envolve um SavedModel existente nas operações necessárias para converter formatos de entrada/saída.

Para usar um modelo com ee.Model.fromAiPlatformPredictor(), você precisa ter permissões suficientes para usá-lo. Especificamente, você (ou qualquer pessoa que use o modelo) precisa ter pelo menos a função de usuário do modelo do ML Engine. É possível inspecionar e definir as permissões de modelos na página de modelos do Console do Cloud.

Regiões

Use endpoints regionais para seus modelos, especificando a região na criação do modelo, na criação da versão e em ee.Model.fromAiPlatformPredictor(). Qualquer região vai funcionar (não use global), mas us-central1 é a melhor opção. Não especifique o parâmetro REGIONS. Se você estiver criando um modelo no Console do Cloud, verifique se a caixa regional está marcada.

Custos

Previsões de imagem

Use model.predictImage() para fazer previsões em um ee.Image usando um modelo hospedado. O tipo de retorno de predictImage() é um ee.Image que pode ser adicionado ao mapa, usado em outras computações, exportado etc. O Earth Engine vai tesselizar automaticamente as bandas de entrada e ajustar a projeção de saída para mudanças de escala e sobreposição conforme necessário. Consulte o documento do TFRecord para mais informações sobre como o tessellation funciona. O Earth Engine sempre vai encaminhar os tensores 3D para seu modelo, mesmo quando as bandas forem escalares (a última dimensão será 1).

Quase todos os modelos convolucionais têm uma projeção de entrada fixa (a dos dados em que o modelo foi treinado). Nesse caso, defina o parâmetro fixInputProj como true na chamada para ee.Model.fromAiPlatformPredictor(). Ao visualizar previsões, tenha cuidado ao diminuir o zoom em um modelo que tem uma projeção de entrada fixa. Isso acontece pelo mesmo motivo descrito aqui. Especificamente, o zoom em um grande escopo espacial pode resultar em solicitações de muitos dados e pode se manifestar como desacelerações ou rejeições pelo AI Platform.