Skip To Content

微调模型

您可以根据自己的地理区域、影像数据或感兴趣要素,对“Prithvi - 火灾后迹地细分”模型进行个性化微调。 与训练全新模型相比,微调现有模型所需的训练数据量更少,且节省计算资源和时间。

如 ArcGIS 提供的预训练深度学习模型未能达到预期效果,我们推荐您尝试对模型进行微调。 当您的感兴趣区域超出模型的适用地理范围,或者您的影像数据在分辨率、比例尺、季节性等属性上有所差异时,这一做法尤其适用。

您可以借助导出训练数据进行深度学习工具来准备训练数据。 然后,您可以利用 ArcGIS Pro 中的训练深度学习模型工具在数据集上对模型进行微调。 按照以下步骤微调模型。

准备训练数据

该模型的训练基础为协调后的 Landsat 8 (HLSL30)Sentinel 2 (HLSS30) 的六波段合成数据,并使用了火灾后迹地标注。 利用“导出训练数据进行深度学习”工具,为模型微调准备训练数据。

  1. 浏览至分析选项卡下的工具
    工具图标
  2. 单击地理处理窗格中的工具箱选项卡,选择 Image Analyst 工具,然后浏览至深度学习工具集下的导出训练数据进行深度学习工具。
    导出训练数据进行深度学习工具
  3. 按照以下说明设置参数选项卡下的变量:
    1. 输入栅格 - 选择一个六波段影像。 关于输入栅格的详细信息,请参阅建议的影像配置
    2. 输出文件夹 - 在计算机上选择的任一目录。
    3. 输入要素类、分类栅格或表 - 选择代表火灾后迹地的标注要素类或分类栅格。 如果使用要素类,它应包含一个名为 ClassName 的文本字段和另一个名为 ClassValue 的字段。
    4. 类值字段 - 如果使用要素类,添加 ClassValue 字段引用所述要素类中分配给火灾后迹地的类值。
    5. 图像格式 - TIFF 格式
    6. 切片大小 X - 224
    7. 切片大小 Y - 224
    8. 步幅 X - 0
    9. 步幅 Y - 0
    10. 元数据格式 - 分类切片
      导出训练数据进行深度学习工具参数
  4. 设置环境选项卡下的变量。
    1. 处理范围 - 根据需要从下拉菜单中选择当前显示范围或任意其他选项。
    2. 像元大小 - 根据需要设置像元大小。
      导出训练数据进行深度学习工具参数
  5. 单击运行。 处理完成后,导出的训练数据将存储在指定目录中。

微调“Prithvi - 火灾后迹地细分”模型

使用 ArcGIS API for Python 的 learn 模块对模型进行微调:

  1. 打开配置有深度学习依赖环境的 Python 命令提示符,导航至指定目录,并输入 jupyter-notebook
    Python 命令提示符
  2. 单击浏览器中的新建,选择 Python 3 (ipykernel),创建一个笔记本。
    jupyter notebook
  3. 按照以下步骤使用函数对模型进行微调:
    1. 导入 arcgis.learn 模块。
    2. prepare_data - 利用导出训练数据进行深度学习工具导出的训练样本,或采用受支持数据集格式的训练样本来准备数据对象。

      1. path:指定之前步骤中导出的训练数据路径。
      2. batch_size:根据您的显卡内存,确定模型推断过程中每步处理的图像切片数量。

    3. 初始化一个 MMSegmentation 模型并将其实例化,例如,model

      1. data:使用 prepare_data 函数创建的数据对象。
      2. model:将模型名称指定为 prithivi100m_crop_classification

    4. fit - 利用 fit 方法自动生成的最优学习率为模型训练指定的迭代次数。
    5. save - 使用 save 方法将训练完成的模型保存为深度学习包文件 (.dlpk) 格式。 深度学习包文件是 ArcGIS 平台部署深度学习模型的标准文件格式。 默认保存路径为训练数据文件夹内的 models 子文件夹。
    6. per_class_metrics - 使用 per_class_metrics 方法在验证集上计算每个类别的精度、召回率和 f1 分数。
      利用 ArcGIS API for Python 训练模型
  4. 现在,您可以将保存的模型应用于影像数据,进行推理分析。