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.