深度学习是一种快速发展的机器学习数据分析方法,它使用神经网络来模拟人脑的过程。 当与 GIS 集成时,它可以提供更好的数据处理和更准确的数据分析。
机器学习算法通常面临三大挑战:分析大量数据、计算资源不足以及算法的效率和准确性。 通过集成 ArcGIS Notebook Server 和深度学习算法,可以更好地应对这些挑战。
ArcGIS Notebook Server 深度学习
ArcGIS Notebook Server 中可用的影像数据深度学习模型分为四个主要类别:
- 对象分类 - 用于确定要素的类别。 例如,它可用于确定建筑物在自然灾害后是否受损。
- 对象检测 - 在边界框内的图像中查找对象的定位过程。 例如,对象检测可用于检测图像中的游泳池。
- 像素分类 - 用于将类别分配给图像中的像素。 例如,像素分类可用于土地覆被分类。
- 实例分类 - 用于集成对象检测和像素分类。 实例分类可用于检测对象并进一步对其进行分类。 例如,像素分类可用于损失检测,不仅可以识别损失,还可以进一步对损失严重程度进行分类。
注:
ArcGIS Notebook Server 还支持专用于表格、点云和其他结构化数据集的模型。
预训练模型与训练模型
您可以在 ArcGIS 中使用两种深度学习模型方法:
- 预训练模型 - 用于从数据中推断出初步见解,而无需大量训练数据或较长的模型训练时间。 虽然速度更快,但使用预训练模型时准确性会有所降低。 可以重新训练这些模型以提高其准确性。
- 示例:通过 UNet 分类器使用稀疏训练数据进行土地覆被分类,并将其用作预训练模型
unet = UnetClassifier(data, backbone='resnet34', ignore_classes=[0]) unet.show_results() unet.per_class_metrics()
- 示例:通过 UNet 分类器使用稀疏训练数据进行土地覆被分类,并将其用作预训练模型
- 训练深度学习模型 - 通过在具有足够资源和训练时间的大型数据集上训练深度学习模型,可以开发出更准确的模型。
- 示例:通过 UNet 分类器使用稀疏训练数据进行土地覆被分类,并重新训练模型
unet = UnetClassifier(data, backbone='resnet34', ignore_classes=[0]) unet.lr_find() unet.fit(10, lr) #10 iterations of model fitting unet.show_results() unet.per_class_metrics()
- 示例:通过 UNet 分类器使用稀疏训练数据进行土地覆被分类,并重新训练模型
在 ArcGIS Notebooks 中运行深度学习模型
要在 ArcGIS Notebooks 中使用深度学习模型,请按照以下步骤操作:
注:
深度学习的运算量非常大,建议您使用强大的 GPU 来处理大型数据集。
- 在可下载数据存档文件的 04_gis_analysts_data_scientists 组中选择一个深度学习模型。
- 下载您将使用的模型的 .ipynb 文件。
- 单击门户的内容页面。
- 单击新建项目并上传您下载的模型的 .ipynb 文件。
- 打开由 .ipynb 模型文件创建的笔记本。
- 添加要进行分析的数据。
- 运行笔记本的以下部分:
- 准备输入数据
- 可视化训练数据
- 加载模型架构
- 训练模型
注:
如果您只希望使用预训练模型,则可以跳过此部分。
- 保存模型
- 推断