TensorFlow 是一个开源机器学习平台,支持深度学习等高级机器学习方法。本页介绍了 Earth Engine 中的 TensorFlow 专用功能。虽然 TensorFlow 模型是在 Earth Engine 之外开发和训练的,但 Earth Engine API 提供了用于以 TFRecord 格式导出训练和测试数据以及以 TFRecord 格式导入/导出图像的方法。如需详细了解如何开发流水线,以便将 TensorFlow 与 Earth Engine 中的数据搭配使用,请参阅 TensorFlow 示例页面。如需详细了解 Earth Engine 如何将数据写入 TFRecord 文件,请参阅 TFRecord 页面。
ee.Model
ee.Model
软件包用于处理与 TensorFlow 支持的机器学习模型的交互。
与 AI Platform 上托管的模型互动
您可以使用 ee.Model.fromAiPlatformPredictor()
创建新的 ee.Model
实例。这是一个 ee.Model
对象,用于将 Earth Engine 数据打包为张量,将其作为预测请求转发到 Google AI Platform,然后自动将响应重新组合为 Earth Engine 数据类型。请注意,根据模型及其输入的大小和复杂性,您可能需要调整 AI Platform 模型的最小节点大小,以适应大量的预测。
Earth Engine 要求 AI Platform 模型使用 TensorFlow 的 SavedModel 格式。托管的模型需要先与 TensorProto 交换格式(特别是以 base64 格式序列化的 TensorProto)兼容,然后才能与 Earth Engine 交互。为简化此过程,Earth Engine CLI 提供了 model prepare
命令,用于将现有 SavedModel 封装在所需的操作中,以转换输入/输出格式。
如需将模型与 ee.Model.fromAiPlatformPredictor()
搭配使用,您必须拥有足够的权限才能使用该模型。具体而言,您(或使用该模型的任何人)至少需要拥有
ML Engine Model User 角色。您可以从 Cloud 控制台的“模型”页面检查和设置模型权限。
地区
您应为模型使用区域端点,并在创建模型、创建版本和 ee.Model.fromAiPlatformPredictor()
时指定区域。任何区域均可(请勿使用全球区域),但首选 us-central1
。请勿指定 REGIONS
参数。如果您是在 Cloud 控制台中创建模型,请确保选中“区域性”复选框。
费用
图片预测
使用 model.predictImage()
通过托管的模型对 ee.Image
进行预测。predictImage()
的返回类型为 ee.Image
,可添加到地图中、用于其他计算、导出等。Earth Engine 会自动平铺输入波段,并根据需要调整输出投影以进行缩放更改和过度平铺。(如需详细了解平铺功能的运作方式,请参阅 TFRecord 文档。)请注意,即使波段是标量(最后一个维度为 1),Earth Engine 也始终会将 3D 张量转发到您的模型。
几乎所有卷积模型都具有固定的输入投影(即模型训练时所用数据的投影)。在这种情况下,请在对 ee.Model.fromAiPlatformPredictor()
的调用中将 fixInputProj
参数设置为 true。
可视化预测时,请谨慎缩小具有固定输入投影的模型。原因与此处所述相同。具体而言,如果您缩放到较大的空间范围,可能会导致请求的数据量过多,并可能导致 AI 平台速度变慢或遭到拒绝。