本页面提供了工作流示例,展示了如何将 TensorFlow 与 Earth Engine 搭配使用。如需了解详情,请参阅 TensorFlow 页面。这些示例使用 Earth Engine Python API 和在 Colab 笔记本中运行的 TensorFlow 编写而成。
费用
使用 DNN 进行多类别预测
“深度”神经网络 (DNN) 只是具有一个或多个隐藏层的人工神经网络 (ANN)。此示例演示了一个只有一个隐藏层的非常简单的 DNN。DNN 将光谱矢量作为输入(即一次一个像素),并输出每个像素的单个类标签和类概率。以下 Colab 笔记本演示了如何创建 DNN、使用 Earth Engine 中的数据对其进行训练、对导出的图像进行预测,以及将预测结果导入 Earth Engine。
可在 Earth Engine 中进行预测的托管式 DNN
如需直接在 Earth Engine 中(例如在代码编辑器中)获取经过训练的模型的预测结果,您需要将模型托管在 Google AI Platform 上。本指南演示了如何将训练好的模型保存为 SavedModel
格式,使用 earthengine model prepare
命令准备模型以供托管,以及使用 ee.Model.fromAiPlatformPredictor
在 Earth Engine 中以交互方式获取预测结果。
使用 TensorFlow 进行逻辑回归
逻辑回归等传统机器学习方法很容易在 TensorFlow 中实现。此 Notebook 演示了基于逻辑回归的森林砍伐检测器,并展示了年级复合图之前和之后的结果。请注意,这个非常简单的模型只是为了演示目的;添加一些隐藏层可以提高准确性。
使用 FCNN 进行回归
“卷积”神经网络 (CNN) 包含一个或多个卷积层,其中输入是像素的邻域,因此网络不是全连接的,但适合识别空间模式。全卷积神经网络 (FCNN) 不包含作为输出的全连接层。这意味着,它不会学习全局输出(即每个图片一个输出),而是学习局部输出(即每个像素一个输出)。
此 Colab 笔记本演示了如何使用 UNET 模型(一种专为医学图像分割而开发的 FCNN)根据 256x256 像素邻域中的每个像素预测连续的 [0,1] 输出。具体而言,此示例展示了如何导出数据补丁以训练网络,以及如何重叠图片补丁以进行推理,以消除图块边界伪影。
在 AI Platform 上训练
对于相对较大的模型(例如 FCNN 示例),运行 Colab 笔记本的免费虚拟机的生命周期可能不足以支持长时间运行的训练作业。具体而言,如果在评估数据集上未最小化预期预测误差,则不妨进行更多训练迭代。如需在云端执行大型训练作业,此 Colab 笔记本演示了如何打包训练代码、启动训练作业、使用 earthengine model prepare
命令准备 SavedModel
,以及使用 ee.Model.fromAiPlatformPredictor
在 Earth Engine 中以互动方式获取预测结果。