您可以根据自己的地理区域、影像数据或感兴趣要素,对“Prithvi - 火灾后迹地细分”模型进行个性化微调。 与训练全新模型相比,微调现有模型所需的训练数据量更少,且节省计算资源和时间。
如 ArcGIS 提供的预训练深度学习模型未能达到预期效果,我们推荐您尝试对模型进行微调。 当您的感兴趣区域超出模型的适用地理范围,或者您的影像数据在分辨率、比例尺、季节性等属性上有所差异时,这一做法尤其适用。
您可以借助导出训练数据进行深度学习工具来准备训练数据。 然后,您可以利用 ArcGIS Pro 中的训练深度学习模型工具在数据集上对模型进行微调。 按照以下步骤微调模型。
准备训练数据
该模型的训练基础为协调后的 Landsat 8 (HLSL30) 或 Sentinel 2 (HLSS30) 的六波段合成数据,并使用了火灾后迹地标注。 利用“导出训练数据进行深度学习”工具,为模型微调准备训练数据。
- 浏览至分析选项卡下的工具。
- 单击地理处理窗格中的工具箱选项卡,选择 Image Analyst 工具,然后浏览至深度学习工具集下的导出训练数据进行深度学习工具。
- 按照以下说明设置参数选项卡下的变量:
- 输入栅格 - 选择一个六波段影像。 关于输入栅格的详细信息,请参阅建议的影像配置。
- 输出文件夹 - 在计算机上选择的任一目录。
- 输入要素类、分类栅格或表 - 选择代表火灾后迹地的标注要素类或分类栅格。 如果使用要素类,它应包含一个名为 ClassName 的文本字段和另一个名为 ClassValue 的字段。
- 类值字段 - 如果使用要素类,添加 ClassValue 字段引用所述要素类中分配给火灾后迹地的类值。
- 图像格式 - TIFF 格式
- 切片大小 X - 224
- 切片大小 Y - 224
- 步幅 X - 0
- 步幅 Y - 0
- 元数据格式 - 分类切片
- 设置环境选项卡下的变量。
- 处理范围 - 根据需要从下拉菜单中选择当前显示范围或任意其他选项。
- 像元大小 - 根据需要设置像元大小。
- 单击运行。 处理完成后,导出的训练数据将存储在指定目录中。
微调“Prithvi - 火灾后迹地细分”模型
使用 ArcGIS API for Python 的 learn 模块对模型进行微调:
- 打开配置有深度学习依赖环境的 Python 命令提示符,导航至指定目录,并输入 jupyter-notebook。
- 单击浏览器中的新建,选择 Python 3 (ipykernel),创建一个笔记本。
- 按照以下步骤使用函数对模型进行微调:
- 导入 arcgis.learn 模块。
- prepare_data - 利用导出训练数据进行深度学习工具导出的训练样本,或采用受支持数据集格式的训练样本来准备数据对象。
- path:指定之前步骤中导出的训练数据路径。
- batch_size:根据您的显卡内存,确定模型推断过程中每步处理的图像切片数量。
- 初始化一个 MMSegmentation 模型并将其实例化,例如,model
- data:使用 prepare_data 函数创建的数据对象。
- model:将模型名称指定为 prithivi100m_crop_classification。
- fit - 利用 fit 方法自动生成的最优学习率为模型训练指定的迭代次数。
- save - 使用 save 方法将训练完成的模型保存为深度学习包文件 (.dlpk) 格式。 深度学习包文件是 ArcGIS 平台部署深度学习模型的标准文件格式。 默认保存路径为训练数据文件夹内的 models 子文件夹。
- per_class_metrics - 使用 per_class_metrics 方法在验证集上计算每个类别的精度、召回率和 f1 分数。
- 现在,您可以将保存的模型应用于影像数据,进行推理分析。