Skip To Content

微调模型

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

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

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

准备训练数据

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

  1. 浏览至分析选项卡下的工具
    工具图标
  2. 单击地理处理窗格中的工具箱选项卡,选择 Image Analyst 工具,然后浏览至深度学习工具集下的导出训练数据进行深度学习工具。
    导出训练数据进行深度学习
  3. 按照以下说明设置参数选项卡下的变量:
    1. 输入栅格 - 选择六波段影像。 关于输入栅格的详细信息,请参阅建议的影像配置
    2. 输出文件夹 - 在计算机上选择的任一目录。
    3. 输入要素类、分类栅格或表(可选)- 表示水的标注要素类或分类栅格。

      要素类还应该有一个名为 ClassName 的文本字段,其值设置为

    4. 类值字段 - 此为 ClassValue 字段,将值设置为 1。
    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 - 指定模型推断过程中每步处理的图像切片数量。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 微调

    现在,您可以将保存的模型应用于影像数据,进行推理分析。