训练深度学习模型 (Image Analyst)

获得 Image Analyst 许可后可用。

摘要

使用导出训练数据进行深度学习工具的输出训练深度学习模型。

使用情况

  • 该工具使用深度学习框架训练深度学习模型。

  • 要设置计算机以在 ArcGIS AllSource 中使用深度学习框架,请参阅安装 ArcGIS 的深度学习框架

  • 如果要在离线环境中训练模型,请参阅离线环境的其他安装以获取详细信息。

  • 该工具还可用于对现有经过训练的模型进行微调。 例如,可以对已针对汽车进行了训练的现有模型进行微调,以训练用于识别卡车的模型。

  • 要使用 GPU 运行此工具,将处理器类型环境设置为 GPU。 如果您具有多个 GPU,还可以指定 GPU ID 环境。

  • 默认情况下,当模型类型参数设置为以下选项之一时,该工具将使用所有可用 GPU:

    • ConnectNet
    • 要素分类器
    • MaskRCNN
    • 多任务道路提取器
    • 单帧检测器
    • U-Net

    要使用特定的 GPU,使用 GPU ID 环境。

  • 该工具的输入训练数据必须包括从导出训练数据进行深度学习工具生成的影像和标注文件夹。

  • 使用 transforms.json 文件为训练和验证数据集的数据增强指定 fastai 转换,该文件位于训练数据所在的文件夹中。 下面是 transforms.json 文件的示例:

    自定义增强参数

    
    {
        "Training": {
            "rotate": {
                "degrees": 30,
                "p": 0.5
            },
            "crop": {
                "size": 224,
                "p": 1,
                "row_pct": "0, 1",
                "col_pct": "0, 1"
            },
            "brightness": {
                "change": "0.4, 0.6"
            },
            "contrast": {
                "scale": "1.0, 1.5"
            },
            "rand_zoom": {
                "scale": "1, 1.2"
            }
        },
        "Validation": {
            "crop": {
                "size": 224,
                "p": 1.0,
                "row_pct": 0.5,
                "col_pct": 0.5
            }
        }
    }

  • 有关运行此工具的要求以及您可能遇到的问题的信息,请参阅深度学习常见问题

  • 有关深度学习的详细信息,请参阅 ArcGIS AllSource 中的深度学习

参数

标注说明数据类型
输入训练数据

包含训练模型所需的影像片、标注和统计数据的文件夹。 此数据为导出训练数据进行深度学习工具的输出。

当满足以下条件时,支持多个输入文件夹:

  • 元数据格式必须是以下格式之一:分类切片、标注切片、多标注切片、Pascal 视觉对象类或 RCNN 掩码。
  • 所有训练数据必须具有相同的元数据格式。
  • 所有训练数据必须具有相同的波段数。
  • 所有训练数据必须具有相同的切片大小。

Folder
输出文件夹

将存储训练模型的输出文件夹位置。

Folder
最大轮数
(可选)

将用于训练模型的最大轮数。 最大轮数值为 1 意味着数据集将通过神经网络向前和向后传递一次。 默认值为 20。

Long
模型类型
(可选)

指定将用于训练深度学习模型的模型类型。

  • BDCN 边缘检测器(像素分类)双向级联网络 (BDCN) 架构将用于训练模型。 BDCN 边缘检测器 用于像素分类。 此方法对于改进不同比例对象的边缘检测非常有用。
  • 变化检测器(像素分类)变化检测器架构将用于训练模型。 变化检测器用于像素分类。 这种方法将创建一个模型对象,该模型对象将使用两个时空影像来创建变化的分类栅格。 该模型类型的输入训练数据使用“分类切片”元数据格式。
  • ConnectNet(像素分类)ConnectNet 架构将用于训练模型。 ConnectNet 用于像素分类。 此方法对于从卫星影像提取道路网络非常有用。
  • CycleGAN(影像转换)CycleGAN 架构将用于训练模型。 CycleGAN 可用于影像之间的转换。 此方法将创建一个模型对象,该模型对象会将一种类型的影像生成为另一种类型影像。 这种方法的独特之处在于,要训练的影像不需要重叠。 该模型类型的输入训练数据使用 CycleGAN 元数据格式。
  • DeepLabV3(像素分类)DeepLabV3 架构将用于训练模型。 DeepLab 将用于像素分类。
  • 深度排序(对象追踪器)深度排序架构将用于训练模型。 深度排序将用于在视频中进行对象检测。 该模型使用视频帧进行训练,并检测每一帧中对象的类别和边界框。 该模型类型的输入训练数据使用 Imagenet 元数据格式。 Siam Mask 可用于跟踪对象,而 Deep Sort 可用于将模型训练为跟踪多个对象。
  • DETReg(对象检测)DETReg 架构将用于训练模型。 DETReg 将用于对象检测。 该模型类型的输入训练数据使用 Pascal 可视化对象类。 此模型类型为 GPU 密集型;需要具有至少 16 GB 内存的专用 GPU 才能正常运行。
  • FasterRCNN(对象检测)FasterRCNN 架构将用于训练模型。 FasterRCNN 将用于对象检测。
  • 要素分类器(对象分类)将使用要素分类器架构训练模型。 要素分类器用于对象或影像分类。
  • HED 边缘检测器(像素分类)整体嵌套边缘检测 (HED) 架构将用于训练模型。 HED 边缘检测器用于像素分类。 这种方法可用于检测边缘和对象边界。
  • 图像标题生成器(影像转换)图像标题生成器架构将用于训练模型。 图像标题生成器可用于图像到文本的转换。 此方法将创建一个用于为图像生成文本标题的模型。
  • MaskRCNN(对象检测)MaskRCNN 架构将用于训练模型。 MaskRCNN 将用于对象检测。 可将此方法用于实例分割,即对影像中对象的精确划分。 此模型类型可用于检测建筑物覆盖区。 该类型将 MaskRCNN 元数据格式作为输入用于训练数据。 输入训练数据的类值必须从 1 开始。 只能使用支持 CUDA 的 GPU 来训练此模型类型。
  • MaX-DeepLab(全景分割)MaX-DeepLab 架构将用于训练模型。 用于全景分割的 MaX-DeepLab。 此方法将创建一个模型对象,该模型对象会将生成影像和要素。 此模型类型的输入训练数据使用全景分割元数据格式。
  • MMDetection(目标检测)MMDetection 架构将用于训练模型。 MMDetection 将用于对象检测。 受支持的元数据格式包括 Pascal 视觉对象类矩形和 KITTI 矩形。
  • MMSegmentation(像素分类)MMSegmentation 架构将用于训练模型。 MMSegmentation 用于像素分类。 受支持的元数据格式为分类切片。
  • 多任务道路提取器(像素分类)多任务道路提取器架构将用于训练模型。 多任务道路提取器用于像素分类。 此方法对于从卫星影像提取道路网络非常有用。
  • Pix2Pix(影像转换)Pix2Pix 架构将用于训练模型。 Pix2Pix 可用于影像之间的转换。 此方法将创建一个模型对象,该模型对象会将一种类型的影像生成为另一种类型影像。 该模型类型的输入训练数据使用“导出切片”元数据格式。
  • Pix2PixHD(影像转换)Pix2PixHD 架构将用于训练模型。 Pix2PixHD 可用于影像之间的转换。 此方法将创建一个模型对象,该模型对象会将一种类型的影像生成为另一种类型影像。 该模型类型的输入训练数据使用“导出切片”元数据格式。
  • PSETAE(像素分类)将使用像素集编码器和时间注意力 (PSETAE) 架构针对时间序列分类训练模型。 PSETAE 用于像素分类。 该方法使用的初始数据是多维数据。
  • 金字塔场景解析网络(像素分类)金字塔场景解析网络 (PSPNET) 架构将用于训练模型。 PSPNET 用于像素分类。
  • RetinaNet(对象检测)RetinaNet 架构将用于训练模型。 RetinaNet 将用于对象检测。 该模型类型的输入训练数据使用 Pascal 可视化对象类元数据格式。
  • SAMLoRA(像素分类)具有低秩适应 (LoRA) 的 Segment Anything Model (SAM) 将用于训练模型。 此模型类型使用 Segment anything model (SAM) 作为基础模型并使用针对计算要求相对较低且数据集较小的特定任务进行微调。
  • Siam Mask(对象追踪器)Siam Mask 架构将用于训练模型。 Siam Mask 将用于在视频中进行对象检测。 该模型使用视频帧进行训练,并检测每一帧中对象的类别和边界框。 此模型类型的输入训练数据使用 MaskRCNN 元数据格式。
  • 单帧检测器(对象检测)单帧检测器 (SSD) 架构将用于训练模型。 SSD 将用于对象检测。 该模型类型的输入训练数据使用 Pascal 可视化对象类元数据格式。
  • 超分辨率(影像转换)超分辨率架构将用于训练模型。 超分辨率可用于影像之间的转换。 这种方法将创建一个模型对象,该模型对象可以提高分辨率并改善影像质量。 该模型类型的输入训练数据使用“导出切片”元数据格式。
  • U-Net(像素分类)U-Net 架构将用于训练模型。 U-Net 用于像素分类。
  • YOLOv3(对象检测)YOLOv3 架构将用于训练模型。 YOLOv3 将用于对象检测。
String
批处理大小
(可选)

一次需要处理以便用于训练的训练样本数。

增加批处理大小可以提高工具性能;但是,随着批处理大小的增加,会占用更多内存。

如果可用于批量大小集的 GPU 内存不足,则该工具将尝试估计并使用最佳批量大小。 如果发生内存不足错误,请使用较小的批处理大小。

Long
模型参数
(可选)

将使用模型类型参数中的信息填充此参数。 这些参数将有所不同,具体取决于模型架构。 下面介绍了在 ArcGIS 中训练的模型支持的模型参数。 ArcGIS 预训练模型和自定义深度学习模型可能具有该工具支持的其他参数。

有关适用于每种模型类型的自变量的详细信息,请参阅深度学习自变量

  • attention_type - 指定模块类型。 模块选项为 PAM(金字塔注意力模块)或 BAM(基础注意力模块)。 默认值为 PAM
  • attn_res - 残差块中的注意力数。 这是一个可选整数值。 默认值为 16。 仅当骨干模型参数值为 SR3 时,才支持此参数。
  • channel_mults - U-Net 中适用于后续解析的可选深度乘数。 默认值为 1, 2, 4, 4, 8, 8。 仅当骨干模型参数值为 SR3 时,才支持此参数。
  • class_balancing - 指定是否平衡与每类像素的频率成反比的交叉熵损失。 默认值为 False
  • decode_params - 一种用于控制图像标题生成器运行方式的字典。 默认值为 {'embed_size':100, 'hidden_size':100, 'attention_size':100, 'teacher_forcing':1, 'dropout':0.1, 'pretrained_emb':False}decode_params 参数由以下参数组成:
    • embed_size - 嵌入大小。 神经网络中的默认设置为 100 个图层。
    • hidden_size - 隐藏图层大小。 神经网络中的默认设置为 100 个图层。
    • attention_size - 中间注意力图层大小。 神经网络中的默认设置为 100 个图层。
    • teacher_forcing - 教师强制的概率。 教师强制是一种用于训练递归神经网络的策略。 该策略可在反向传播过程中将先前时间步长的模型输出用作输入而非先前的输出。 有效范围是 0.0 至 1.0。 默认值为 1。
    • dropout - dropout 概率。 有效范围是 0.0 至 1.0。 默认值为 0.1。
    • pretrained_emb - 指定预训练嵌入标志。 如果为 True,则它将使用快速文本嵌入。 如果为 False,则它将不使用预训练文本嵌入。 默认值为 False
  • dropout - dropout 的可选浮点值。 默认值为 0。 仅当骨干模型参数值为 SR3 时,才支持此参数。
  • focus_loss - 指定是否使用焦点损失。 默认值为 False
  • gaussian_thresh - 高斯阈值,用于设置所需的道路宽度。 有效范围是 0.0 至 1.0。 默认值为 0.76。
  • 格网 - 为进行处理将图像分割成的格网数。 例如,将此参数设置为 4 意味着影像将划分为 4 x 4 或 16 个格网像元。 如果未指定任何值,则将根据输入影像计算最佳格网值。
  • ignore_classes - 包模型不会导致损失的类值列表。
  • inner_channel - inner_channel 值指第一个 U-net 图层的维度。 这是一个可选整数值。 默认值为 64。 仅当骨干模型参数值为 SR3 时,才支持此参数。
  • linear_start - 用于计划开始的可选整数。 默认值为 1e-02。 仅当骨干模型参数值为 SR3 时,才支持此参数。
  • linear_end - 用于计划结束的可选整数。 默认值为 1e-06。 仅当骨干模型参数值为 SR3 时,才支持此参数。
  • model - 用于训练模型的骨干模型。 可用骨干取决于模型类型参数值。 MMDetection 的默认值为 cascade_rcnn。 MMSegmentation 的默认值为 deeplabv3
  • model_weight - 指定将使用的预训练模型权重。 默认值为 False。 该值也可以是 MMDetection 资料档案库或 MMSegmentation 资料档案库中包含模型权重的配置文件的路径。
  • monitor - 指定在检查点和提前停止时要监控的指标。 可用指标取决于模型类型参数值。 默认值为 valid_loss
  • mtl_model - 指定要用于创建模型的架构类型。 对于基于 linknet 或基于 hourglass 的神经架构,对应的选项分别为 linknethourglass。 默认值为 hourglass
  • n_timestep - 扩散时间步数的可选值。 默认值为 1000。 仅当骨干模型参数值为 SR3 时,才支持此参数。
  • norm_groups - 用于群组归一化的群组数。 这是一个可选整数值。 默认值为 32。 仅当骨干模型参数值为 SR3 时,才支持此参数。
  • orient_bin_size - 方向角的立方图格大小。 默认值为 20。
  • orient_theta - 方向掩膜的宽度。 默认值为 8。
  • pyramid_sizes - 要应用于不同子区域的卷积层的数量和大小。 默认值为 [1,2,3,6]。 此参数特定于金字塔场景解析网络模型。
  • 比率 - 用于锚点框的纵横比列表。 在对象检测中,锚点框表示要预测的对象的理想位置、形状和大小。 例如,将此参数设置为 [1.0,1.0], [1.0, 0.5] 表示锚点框是正方形 (1:1) 或水平边大小为垂直边一半 (1:0.5) 的矩形。 RetinaNet 的默认值为 [0.5,1,2]。 单帧检测器的默认值为 [1.0, 1.0]。
  • res_blocks - 残差块数。 这是一个可选整数值。 默认值为 3。 仅当骨干模型参数值为 SR3 时,才支持此参数。
  • 比例 - 每个像元将按比例进行扩大或缩小的比例级数。 默认值为 [1, 0.8, 0.63]。
  • schedule -(可选)设置要使用的计划类型。 可用选项包括 linearwarmup10warmup50constjsdcosine。 默认值为 linear。 仅当骨干模型参数值为 SR3 时,才支持此参数。
  • use_net - 在金字塔池化完成后,指定是否使用 U-Net 解码器来恢复数据。 默认值为 True。 此参数特定于金字塔场景解析网络模型。
  • 缩放 - 每个格网像元将按比例进行扩大或缩小的缩放级别数。 将此参数设置为 1 意味着所有格网像元都将保持相同的大小或缩放级别。 缩放级别为 2 表示所有格网像元都将变成两倍大(放大 100%)。 提供缩放级别列表意味着将使用列表中的所有数字来缩放所有格网像元。 默认值为 1。
Value Table
学习率
(可选)

在整个训练过程中,现有信息将被新获取的信息覆盖的比率。 如果未指定任何值,则系统将在训练过程中从学习曲线中提取最佳学习率。

Double
骨干模型
(可选)

指定要用作训练新模型的架构的、预先配置的神经网络。 这种方法称为迁移学习。

此外,从 PyTorch Image Models (timm) 指定受支持卷积神经网络时还可以使用 timm 作为前缀,例如 timm:resnet31、timm:inception_v4、timm:efficientnet_b3 等。

  • DenseNet-121预先配置的模型将是在 Imagenet 数据集上训练的密集网络,其中包含一百万个以上的影像,且深度为 121 个图层。 与使用求和来合并图层的 ResNET 不同,DenseNet 使用串联来合并图层。
  • DenseNet-161预先配置的模型将是在 Imagenet 数据集上训练的密集网络,其中包含一百万个以上的影像,且深度为 161 个图层。 与使用求和来合并图层的 ResNET 不同,DenseNet 使用串联来合并图层。
  • DenseNet-169预先配置的模型将是在 Imagenet 数据集上训练的密集网络,其中包含一百万个以上的影像,且深度为 169 个图层。 与使用求和来合并图层的 ResNET 不同,DenseNet 使用串联来合并图层。
  • DenseNet-201预先配置的模型将是在 Imagenet 数据集上训练的密集网络,其中包含一百万个以上的影像,且深度为 201 个图层。 与使用求和来合并图层的 ResNET 不同,DenseNet 使用串联来合并图层。
  • MobileNet 2 版由于预配置模型将基于 Imagenet 数据库进行训练,且深度为 54 个图层,适用于边缘设备计算,因为其所用的内存更少。
  • ResNet-18预先配置的模型将是在 Imagenet 数据集上训练的残差网络,其中包含一百万个以上的影像,且深度为 18 个图层。
  • ResNet-34预先配置的模型将是在 Imagenet 数据集上训练的残差网络,其中包含一百万个以上的影像,且深度为 34 个图层。 这是默认设置。
  • ResNet-50预先配置的模型将是在 Imagenet 数据集上训练的残差网络,其中包含一百万个以上的影像,且深度为 50 个图层。
  • ResNet-101预先配置的模型将是在 Imagenet 数据集上训练的残差网络,其中包含一百万个以上的影像,且深度为 101 个图层。
  • ResNet-152预先配置的模型将是在 Imagenet 数据集上训练的残差网络,其中包含一百万个以上的影像,且深度为 152 个图层。
  • VGG-11预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,其中包含一百万个以上的影像以将影像分类为 1000 个对象类别,且深度为 11 个图层。
  • 使用批量归一化的 VGG-11预配置模型将基于 VGG 网络,但具有批量归一化功能,这意味着网络中的每个图层都已归一化。 它在 Imagenet 数据集上进行了训练,具有 11 个图层。
  • VGG-13预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,其中包含一百万个以上的影像以将影像分类为 1000 个对象类别,且深度为 13 个图层。
  • 使用批量归一化的 VGG-13预配置模型将基于 VGG 网络,但具有批量归一化功能,这意味着网络中的每个图层都已归一化。 它在 Imagenet 数据集上进行了训练,具有 13 个图层。
  • VGG-16预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,其中包含一百万个以上的影像以将影像分类为 1000 个对象类别,且深度为 16 个图层。
  • 使用批量归一化的 VGG-16预配置模型将基于 VGG 网络,但具有批量归一化功能,这意味着网络中的每个图层都已归一化。 它在 Imagenet 数据集上进行了训练,具有 16 个图层。
  • VGG-19预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,其中包含一百万个以上的影像以将影像分类为 1000 个对象类别,且深度为 19 个图层。
  • 使用批量归一化的 VGG-19预配置模型将基于 VGG 网络,但具有批量归一化功能,这意味着网络中的每个图层都已归一化。 它在 Imagenet 数据集上进行了训练,具有 19 个图层。
  • DarkNet-53预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,其中包含一百万个以上的影像,且深度为 53 个图层。
  • Reid_v1预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,用于对象追踪。
  • Reid_v2预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,用于对象追踪。
  • ResNeXt-50预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,深度为 50 个图层。 它是同质神经网络,可减少常规 ResNet 所需的超参数的数量。
  • Wide ResNet-50预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,深度为 50 个图层。 其架构与 ResNET 相同,但是通道更多。
  • SR3预配置模型将使用通过重复细化的超分辨率 (SR3) 模型。 SR3 将根据条件图像生成调整去噪扩散概率模型并通过随机去噪过程实现超分辨率。 有关详细信息,请参阅通过迭代细化实现图像超分辨率
  • ViT-B预配置的 Segment Anything Model (SAM) 将与基础神经网络大小搭配使用。 这是最小大小。 有关详细信息,请参阅 Segment Anything
  • ViT-L预配置的 Segment Anything Model (SAM) 将与较大的神经网络大小搭配使用。 有关详细信息,请参阅 Segment Anything
  • ViT-H预配置的 Segment Anything Model (SAM) 将与巨大的神经网络大小搭配使用。 这是最大大小。 有关详细信息,请参阅 Segment Anything
String
预训练模型
(可选)

将用于微调新模型的预训练模型。 输入为 Esri 模型定义文件 (.emd) 或深度学习包文件 (.dlpk)。

可以对具有相似类的预训练模型进行微调以适应新模型。 预训练模型必须已使用将用于训练新模型的相同模型类型和骨干模型进行了训练。

File
验证百分比
(可选)

将用于验证模型的训练样本的百分比。 默认值为 10。

Double
当模型停止改进时停止
(可选)

指定是否将实施提前停止。

  • 选中 - 将实施提前停止,当模型不再改进时,无论所指定的最大轮数参数值是什么,模型训练都将停止。 这是默认设置。
  • 未选中 - 不会实施提前停止,模型训练将一直持续,直至达到最大轮数参数值为止。
Boolean
冻结模型
(可选)

指定是否冻结预训练模型中的骨干层,以使权重和偏差保持原始设计。

  • 选中 - 将冻结骨干图层,预定义的权重和偏差不会在骨干模型参数中进行更改。 这是默认设置。
  • 未选中 - 不会冻结骨干图层,骨干模型参数的权重和偏差可能会进行更改以更好地适合您的训练样本。 这将需要花费更多的时间来处理,但通常会产生更好的结果。

Boolean
数据增强
(可选)

指定要使用的数据增强类型。

数据增强方法使用现有数据创建经过修改的数据集副本,实现人为增加训练集合。

  • 默认值将使用默认数据增强方法和值。包含的默认数据增强方法包括 cropdihedral_affinebrightnesscontrastzoom。 这些默认值通常适用于卫星影像。
  • 将不会使用数据增强。
  • 自定义数据增强值将使用增强参数参数进行指定。
  • 文件将使用 transforms.json 文件为训练和验证数据集的数据增强指定 fastai 转换,该文件位于训练数据所在的文件夹中。有关不同转换的详细信息,请参阅 fastai 网站中的 vision transforms
String
增强参数
(可选)

在增强参数中指定每个转换对应的值。

  • rotate - 影像将按概率 (p) 随机旋转(以度为单位)。 如果度数是一个范围 (a,b),将在 ab 之间均匀赋值。 默认值为 30.0; 0.5。
  • brightness - 影像亮度将根据变化值随机调整,概率为 (p)。 变化为 0 时会将影像转换为最暗,变化为 1 时会将影像转换为最亮。 变化为 0.5 时不会调整亮度。 如果变化是一个范围 (a,b),将在 ab 之间对增强进行均匀赋值。 默认值为 (0.4,0.6); 1.0。
  • contrast - 影像对比度将根据比例值随机调整,概率为 (p)。 比例为 0 时会将影像转换为灰度,比例大于 1 时会将影像转换为超级对比度。 比例为 1 时不会调整对比度。 如果比例是一个范围 (a,b),将在 ab 之间对增强进行均匀赋值。 默认值为 (0.75, 1.5); 1.0。
  • zoom - 影像将根据比例值随机放大。 缩放值采用 scale(a,b); p 形式。 默认值为 (1.0, 1.2); 1.0,其中 p 为概率。 仅当比例大于 1.0 时,才会在影像上进行放大。 如果比例是一个范围 (a,b),将在 ab 之间进行均匀赋值。
  • crop - 将随机裁剪影像。 裁剪值采用 size;p;row_pct;col_pct 形式,其中 p 为概率。 位置根据 (col_pct, row_pct), 确定,其中 col_pctrow_pct 在 0 和 1 之间进行归一化。 如果 col_pctrow_pct 是一个范围 (a,b),将在 ab 之间进行均匀赋值。 默认值为 chip_size;1.0; (0, 1); (0, 1),其中 224 为默认影像片大小。

Value Table
影像片大小
(可选)

将用于训练模型的影像大小。 影像将裁剪为指定的影像片大小。 如果影像大小小于参数值,则将使用影像大小。

默认影像片大小将为训练数据的切片大小。 如果 x 和 y 切片大小不同,则将使用较大值。

Long
将大小调整为
(可选)

调整影像片大小。 在调整影像片大小后,将裁剪影像片大小的像素块,以用于训练。 该参数将仅应用于对象检测 (PASCAL VOC)、对象分类(已标注切片)和超分辨率数据。

大小调整值通常为影像片大小值的一半。 如果此大小调整值小于影像片大小值,则将使用大小调整值创建像素块进行训练。

String
权重初始化方案
(可选)

指定要用于为图层初始化权重的方案。

要使用多光谱数据训练模型,模型必须容纳不同类型的可用波段。 为此,需要重新初始化模型中的第一个图层。

仅当在模型中使用多光谱影像时,此参数才适用。

  • 随机随机权重将针对非 RGB 波段进行初始化,而预培训权重将为 RGB 波段保留。 这是默认设置。
  • 红色波段与预训练模型图层中的红色波段对应的权重将针对非 RGB 波段进行克隆,而预训练权重将为 RGB 波段保留。
  • 全部随机随机权重将针对 RGB 波段以及非 RGB 波段进行初始化。 此选项仅适用于多光谱影像。
String
监控指标
(可选)

指定在检查点设置和提前停止时要监控的指标。

  • 验证损失将监控验证损失。 如果验证损失不再发生明显变化,则模型将停止。 这是默认设置。
  • 平均精确率将监控每个阈值处的加权精度均值。 如果此值不再发生明显变化,则模型将停止。
  • 精度将监控正确预测数与预测总数之比。 如果此值不再发生明显变化,则模型将停止。
  • F1 得分将监控模型的精确率和召回率得分组合。 如果此值不再发生明显变化,则模型将停止。
  • MIoU将监控测试数据集的所有影像中已分割对象的交并比平均值。 如果此值不再发生明显变化,则模型将停止。
  • 切分将使用切分指标监控模型性能。 如果此值不再发生明显变化,则模型将停止。该值范围可以介于 0 到 1 之间。 值 1 表示验证数据与训练数据之间像素完全匹配。
  • 精度将监控衡量模型在将样本分类为正样本时的准确性的精确率。 如果此值不再发生明显变化,则模型将停止。精确率为正确分类的正样本数与已分类样本总数(正确或错误)之比。
  • 召回率将监控衡量模型检测正样本的能力的召回率。 如果此值不再发生明显变化,则模型将停止。召回率越高,检测到的正样本越多。 召回率值为正确分类的正样本数与正样本总数之比。
  • Corpus bleu将监控 Corpus blue 分数。 如果此值不再发生明显变化,则模型将停止。此分数用于计算多个句子的准确性,例如段落或文档。
  • 多标注 F-beta将监控精确率和召回率的加权调和均值。 如果此值不再发生明显变化,则模型将停止。这通常称为 F-beta 分数。
String

派生输出

标注说明数据类型
输出模型

输出已训练模型文件。

File

TrainDeepLearningModel(in_folder, out_folder, {max_epochs}, {model_type}, {batch_size}, {arguments}, {learning_rate}, {backbone_model}, {pretrained_model}, {validation_percentage}, {stop_training}, {freeze}, {augmentation}, {augmentation_parameters}, {chip_size}, {resize_to}, {weight_init_scheme}, {monitor})
名称说明数据类型
in_folder
[in_folder,...]

包含训练模型所需的影像片、标注和统计数据的文件夹。 此数据为导出训练数据进行深度学习工具的输出。

当满足以下条件时,支持多个输入文件夹:

  • 元数据格式必须是以下格式之一:分类切片、标注切片、多标注切片、Pascal 视觉对象类或 RCNN 掩码。
  • 所有训练数据必须具有相同的元数据格式。
  • 所有训练数据必须具有相同的波段数。
  • 所有训练数据必须具有相同的切片大小。

Folder
out_folder

将存储训练模型的输出文件夹位置。

Folder
max_epochs
(可选)

将用于训练模型的最大轮数。 最大轮数值为 1 意味着数据集将通过神经网络向前和向后传递一次。 默认值为 20。

Long
model_type
(可选)

指定将用于训练深度学习模型的模型类型。

  • BDCN_EDGEDETECTOR双向级联网络 (BDCN) 架构将用于训练模型。 BDCN 边缘检测器 用于像素分类。 此方法对于改进不同比例对象的边缘检测非常有用。
  • CHANGEDETECTOR变化检测器架构将用于训练模型。 变化检测器用于像素分类。 这种方法将创建一个模型对象,该模型对象将使用两个时空影像来创建变化的分类栅格。 该模型类型的输入训练数据使用“分类切片”元数据格式。
  • CONNECTNETConnectNet 架构将用于训练模型。 ConnectNet 用于像素分类。 此方法对于从卫星影像提取道路网络非常有用。
  • CYCLEGANCycleGAN 架构将用于训练模型。 CycleGAN 可用于影像之间的转换。 此方法将创建一个模型对象,该模型对象会将一种类型的影像生成为另一种类型影像。 这种方法的独特之处在于,要训练的影像不需要重叠。 该模型类型的输入训练数据使用 CycleGAN 元数据格式。
  • DEEPLABDeepLabV3 架构将用于训练模型。 DeepLab 将用于像素分类。
  • DEEPSORT深度排序架构将用于训练模型。 深度排序将用于在视频中进行对象检测。 该模型使用视频帧进行训练,并检测每一帧中对象的类别和边界框。 该模型类型的输入训练数据使用 Imagenet 元数据格式。 Siam Mask 可用于跟踪对象,而 Deep Sort 可用于将模型训练为跟踪多个对象。
  • DETREGDETReg 架构将用于训练模型。 DETReg 将用于对象检测。 该模型类型的输入训练数据使用 Pascal 可视化对象类。 此模型类型为 GPU 密集型;需要具有至少 16 GB 内存的专用 GPU 才能正常运行。
  • FASTERRCNNFasterRCNN 架构将用于训练模型。 FasterRCNN 将用于对象检测。
  • FEATURE_CLASSIFIER将使用要素分类器架构训练模型。 要素分类器用于对象或影像分类。
  • HED_EDGEDETECTOR整体嵌套边缘检测 (HED) 架构将用于训练模型。 HED 边缘检测器用于像素分类。 这种方法可用于检测边缘和对象边界。
  • IMAGECAPTIONER图像标题生成器架构将用于训练模型。 图像标题生成器可用于图像到文本的转换。 此方法将创建一个用于为图像生成文本标题的模型。
  • MASKRCNNMaskRCNN 架构将用于训练模型。 MaskRCNN 将用于对象检测。 可将此方法用于实例分割,即对影像中对象的精确划分。 此模型类型可用于检测建筑物覆盖区。 该类型将 MaskRCNN 元数据格式作为输入用于训练数据。 输入训练数据的类值必须从 1 开始。 只能使用支持 CUDA 的 GPU 来训练此模型类型。
  • MAXDEEPLABMaX-DeepLab 架构将用于训练模型。 用于全景分割的 MaX-DeepLab。 此方法将创建一个模型对象,该模型对象会将生成影像和要素。 此模型类型的输入训练数据使用全景分割元数据格式。
  • MMDETECTIONMMDetection 架构将用于训练模型。 MMDetection 将用于对象检测。 受支持的元数据格式包括 Pascal 视觉对象类矩形和 KITTI 矩形。
  • MMSEGMENTATIONMMSegmentation 架构将用于训练模型。 MMSegmentation 用于像素分类。 受支持的元数据格式为分类切片。
  • MULTITASK_ROADEXTRACTOR多任务道路提取器架构将用于训练模型。 多任务道路提取器用于像素分类。 此方法对于从卫星影像提取道路网络非常有用。
  • PIX2PIXPix2Pix 架构将用于训练模型。 Pix2Pix 可用于影像之间的转换。 此方法将创建一个模型对象,该模型对象会将一种类型的影像生成为另一种类型影像。 该模型类型的输入训练数据使用“导出切片”元数据格式。
  • PIX2PIXHDPix2PixHD 架构将用于训练模型。 Pix2PixHD 可用于影像之间的转换。 此方法将创建一个模型对象,该模型对象会将一种类型的影像生成为另一种类型影像。 该模型类型的输入训练数据使用“导出切片”元数据格式。
  • PSETAE将使用像素集编码器和时间注意力 (PSETAE) 架构针对时间序列分类训练模型。 PSETAE 用于像素分类。 该方法使用的初始数据是多维数据。
  • PSPNET金字塔场景解析网络 (PSPNET) 架构将用于训练模型。 PSPNET 用于像素分类。
  • RETINANETRetinaNet 架构将用于训练模型。 RetinaNet 将用于对象检测。 该模型类型的输入训练数据使用 Pascal 可视化对象类元数据格式。
  • SAMLORA具有低秩适应 (LoRA) 的 Segment Anything Model (SAM) 将用于训练模型。 此模型类型使用 Segment anything model (SAM) 作为基础模型并使用针对计算要求相对较低且数据集较小的特定任务进行微调。
  • SIAMMASKSiam Mask 架构将用于训练模型。 Siam Mask 将用于在视频中进行对象检测。 该模型使用视频帧进行训练,并检测每一帧中对象的类别和边界框。 此模型类型的输入训练数据使用 MaskRCNN 元数据格式。
  • SSD单帧检测器 (SSD) 架构将用于训练模型。 SSD 将用于对象检测。 该模型类型的输入训练数据使用 Pascal 可视化对象类元数据格式。
  • SUPERRESOLUTION超分辨率架构将用于训练模型。 超分辨率可用于影像之间的转换。 这种方法将创建一个模型对象,该模型对象可以提高分辨率并改善影像质量。 该模型类型的输入训练数据使用“导出切片”元数据格式。
  • UNETU-Net 架构将用于训练模型。 U-Net 用于像素分类。
  • YOLOV3YOLOv3 架构将用于训练模型。 YOLOv3 将用于对象检测。
String
batch_size
(可选)

一次需要处理以便用于训练的训练样本数。

增加批处理大小可以提高工具性能;但是,随着批处理大小的增加,会占用更多内存。

如果可用于批量大小集的 GPU 内存不足,则该工具将尝试估计并使用最佳批量大小。 如果发生内存不足错误,请使用较小的批处理大小。

Long
arguments
[arguments,...]
(可选)

model_type 参数中的信息将用于设置此参数的默认值。 这些参数将有所不同,具体取决于模型架构。 下面介绍了在 ArcGIS 中训练的模型支持的模型参数。 ArcGIS 预训练模型和自定义深度学习模型可能具有该工具支持的其他参数。

有关适用于每种模型类型的自变量的详细信息,请参阅深度学习自变量

  • attention_type - 指定模块类型。 模块选项为 PAM(金字塔注意力模块)或 BAM(基础注意力模块)。 默认为 PAM
  • attn_res - 残差块中的注意力数。 这是一个可选整数值。 默认值为 16。 仅当 backbone_model 参数值为 SR3 时,才支持此参数。
  • channel_mults - U-Net 中适用于后续解析的可选深度乘数。 默认值为 1, 2, 4, 4, 8, 8。 仅当 backbone_model 参数值为 SR3 时,才支持此参数。
  • CLASS_BALANCING - 指定是否平衡与每类像素的频率成反比的交叉熵损失。 默认为 False
  • decode_params - 一种用于控制图像标题生成器运行方式的字典。 默认值为 {'embed_size':100, 'hidden_size':100, 'attention_size':100, 'teacher_forcing':1, 'dropout':0.1, 'pretrained_emb':False}. decode_params 参数由以下参数组成:
    • embed_size - 嵌入大小。 神经网络中的默认设置为 100 个图层。
    • hidden_size - 隐藏图层大小。 神经网络中的默认设置为 100 个图层。
    • attention_size - 中间注意力图层大小。 神经网络中的默认设置为 100 个图层。
    • teacher_forcing - 教师强制的概率。 教师强制是一种用于训练递归神经网络的策略。 该策略可在反向传播过程中将先前时间步长的模型输出用作输入而非先前的输出。 有效范围是 0.0 至 1.0。 默认值为 1。
    • dropout - dropout 概率。 有效范围是 0.0 至 1.0。 默认值为 0.1。
    • pretrained_emb - 指定是否将使用预训练文本嵌入。 如果为 True,则它将使用快速文本嵌入。 如果为 False,则不会使用预训练文本嵌入。 默认为 False
  • dropout - dropout 的可选浮点值。 默认值为 0。 仅当 backbone_model 参数值为 SR3 时,才支持此参数。
  • FOCAL_LOSS - 指定是否使用焦点损失。 默认为 False
  • gaussian_thresh - 高斯阈值,用于设置所需的道路宽度。 有效范围是 0.0 至 1.0。 默认值为 0.76。
  • grids - 为进行处理将图像分割成的格网数。 例如,将此参数设置为 4 意味着影像将划分为 4 x 4 或 16 个格网像元。 如果未指定任何值,则将根据输入影像计算最佳格网值。
  • IGNORE_CLASSES - 模型不会导致损失的类值列表。
  • inner_channel - inner_channel 指第一个 U-net 图层的维度。 这是一个可选整数值。 默认值为 64。 仅当 backbone_model 参数值为 SR3 时,才支持此参数。
  • linear_start - 用于计划开始的可选整数。 默认值为 1e-02。 仅当 backbone_model 参数值为 SR3 时,才支持此参数。
  • linear_end - 用于计划结束的可选整数。 默认值为 1e-06。 仅当 backbone_model 参数值为 SR3 时,才支持此参数。
  • MIXUP - 指定是否使用 mixup 增强和 mixup 损失。 默认为 False
  • model - 用于训练模型的骨干模型。 可用选项取决于 model_type 参数值。 MMDETECTION 的默认值为 cascade_rcnn。 MMSegmentation 的默认值为 deeplabv3
  • model_weight - 指定将使用的预训练模型权重。 默认为 False。 该值也可以是 MMDetection 资料档案库或 MMSegmentation 资料档案库中包含模型权重的配置文件的路径。
  • monitor - 指定在检查点和提前停止时要监控的指标。 可用指标取决于 model_type 参数值。 默认为 valid_loss
  • mtl_model - 指定要用于创建模型的架构类型。 对于基于 linknet 或基于 hourglass 的神经架构,对应的选项分别为 linknethourglass。 默认为 hourglass
  • n_timestep - 扩散时间步数的可选值。 默认值为 1000。 仅当 backbone_model 参数值为 SR3 时,才支持此参数。
  • norm_groups - 用于群组归一化的群组数。 这是一个可选整数值。 默认值为 32。 仅当 backbone_model 参数值为 SR3 时,才支持此参数。
  • orient_bin_size - 方向角的立方图格大小。 默认值为 20。
  • orient_theta - 方向掩膜的宽度。 默认值为 8。
  • PYRAMID_SIZES - 要应用于不同子区域的卷积层的数量和大小。 默认值为 [1,2,3,6]。 此参数特定于 PSPNET 模型。
  • ratios - 用于锚点框的纵横比列表。 在对象检测中,锚点框表示要预测的对象的理想位置、形状和大小。 例如,将此参数设置为 [1.0,1.0], [1.0, 0.5] 表示锚点框是正方形 (1:1) 或水平边大小为垂直边一半 (1:0.5) 的矩形。 RETINANET 的默认值为 [0.5,1,2]。 SSD 的默认值为 [1.0, 1.0]。
  • res_blocks - 残差块数。 这是一个可选整数值。 默认值为 3。 仅当 backbone_model 参数值为 SR3 时,才支持此参数。
  • SCALES - 每个像元将按比例进行扩大或缩小的比例级数。 默认值为 [1, 0.8, 0.63]。
  • schedule -(可选)设置要使用的计划类型。 可用选项包括 linearwarmup10warmup50constjsdcosine。 默认为 linear。 仅当 backbone_model 参数值为 SR3 时,才支持此参数。
  • USE_UNET - 指定在金字塔池化完成后是否使用 U-Net 解码器来恢复数据。 默认为 True。 此参数特定于 PSPNET 模型。
  • zooms - 每个格网像元将按比例进行扩大或缩小的缩放级别数。 将此参数设置为 1 意味着所有格网像元都将保持相同的大小或缩放级别。 缩放级别为 2 表示所有格网像元都将变成两倍大(放大 100%)。 提供缩放级别列表意味着将使用列表中的所有数字来缩放所有格网像元。 默认值为 1。
Value Table
learning_rate
(可选)

在整个训练过程中,现有信息将被新获取的信息覆盖的比率。 如果未指定任何值,则系统将在训练过程中从学习曲线中提取最佳学习率。

Double
backbone_model
(可选)

指定要用作训练新模型的架构的、预先配置的神经网络。 这种方法称为迁移学习。

  • DENSENET121预先配置的模型将是在 Imagenet 数据集上训练的密集网络,其中包含一百万个以上的影像,且深度为 121 个图层。 与使用求和来合并图层的 ResNET 不同,DenseNet 使用串联来合并图层。
  • DENSENET161预先配置的模型将是在 Imagenet 数据集上训练的密集网络,其中包含一百万个以上的影像,且深度为 161 个图层。 与使用求和来合并图层的 ResNET 不同,DenseNet 使用串联来合并图层。
  • DENSENET169预先配置的模型将是在 Imagenet 数据集上训练的密集网络,其中包含一百万个以上的影像,且深度为 169 个图层。 与使用求和来合并图层的 ResNET 不同,DenseNet 使用串联来合并图层。
  • DENSENET201预先配置的模型将是在 Imagenet 数据集上训练的密集网络,其中包含一百万个以上的影像,且深度为 201 个图层。 与使用求和来合并图层的 ResNET 不同,DenseNet 使用串联来合并图层。
  • MOBILENET_V2由于预配置模型将基于 Imagenet 数据库进行训练,且深度为 54 个图层,适用于边缘设备计算,因为其所用的内存更少。
  • RESNET18预先配置的模型将是在 Imagenet 数据集上训练的残差网络,其中包含一百万个以上的影像,且深度为 18 个图层。
  • RESNET34预先配置的模型将是在 Imagenet 数据集上训练的残差网络,其中包含一百万个以上的影像,且深度为 34 个图层。 这是默认设置。
  • RESNET50预先配置的模型将是在 Imagenet 数据集上训练的残差网络,其中包含一百万个以上的影像,且深度为 50 个图层。
  • RESNET101预先配置的模型将是在 Imagenet 数据集上训练的残差网络,其中包含一百万个以上的影像,且深度为 101 个图层。
  • RESNET152预先配置的模型将是在 Imagenet 数据集上训练的残差网络,其中包含一百万个以上的影像,且深度为 152 个图层。
  • VGG11预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,其中包含一百万个以上的影像以将影像分类为 1000 个对象类别,且深度为 11 个图层。
  • VGG11_BN预配置模型将基于 VGG 网络,但具有批量归一化功能,这意味着网络中的每个图层都已归一化。 它在 Imagenet 数据集上进行了训练,具有 11 个图层。
  • VGG13预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,其中包含一百万个以上的影像以将影像分类为 1000 个对象类别,且深度为 13 个图层。
  • VGG13_BN预配置模型将基于 VGG 网络,但具有批量归一化功能,这意味着网络中的每个图层都已归一化。 它在 Imagenet 数据集上进行了训练,具有 13 个图层。
  • VGG16预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,其中包含一百万个以上的影像以将影像分类为 1000 个对象类别,且深度为 16 个图层。
  • VGG16_BN预配置模型将基于 VGG 网络,但具有批量归一化功能,这意味着网络中的每个图层都已归一化。 它在 Imagenet 数据集上进行了训练,具有 16 个图层。
  • VGG19预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,其中包含一百万个以上的影像以将影像分类为 1000 个对象类别,且深度为 19 个图层。
  • VGG19_BN预配置模型将基于 VGG 网络,但具有批量归一化功能,这意味着网络中的每个图层都已归一化。 它在 Imagenet 数据集上进行了训练,具有 19 个图层。
  • DARKNET53预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,其中包含一百万个以上的影像,且深度为 53 个图层。
  • REID_V1预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,用于对象追踪。
  • REID_V2预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,用于对象追踪。
  • RESNEXT50预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,深度为 50 个图层。 它是同质神经网络,可减少常规 ResNet 所需的超参数的数量。
  • WIDE_RESNET50预先配置的模型将是在 Imagenet 数据集上训练的卷积神经网络,深度为 50 个图层。 其架构与 ResNET 相同,但是通道更多。
  • SR3预配置模型将使用通过重复细化的超分辨率 (SR3) 模型。 SR3 将根据条件图像生成调整去噪扩散概率模型并通过随机去噪过程实现超分辨率。 有关详细信息,请参阅通过迭代细化实现图像超分辨率
  • VIT_B预配置的 Segment Anything Model (SAM) 将与基础神经网络大小搭配使用。 这是最小大小。 有关详细信息,请参阅 Segment Anything
  • VIT_L预配置的 Segment Anything Model (SAM) 将与较大的神经网络大小搭配使用。 有关详细信息,请参阅 Segment Anything
  • VIT_H预配置的 Segment Anything Model (SAM) 将与巨大的神经网络大小搭配使用。 这是最大大小。 有关详细信息,请参阅 Segment Anything

此外,从 PyTorch Image Models (timm) 指定受支持卷积神经网络时还可以使用 timm 作为前缀,例如 timm:resnet31、timm:inception_v4、timm:efficientnet_b3 等。

String
pretrained_model
(可选)

将用于微调新模型的预训练模型。 输入为 Esri 模型定义文件 (.emd) 或深度学习包文件 (.dlpk)。

可以对具有相似类的预训练模型进行微调以适应新模型。 预训练模型必须已使用将用于训练新模型的相同模型类型和骨干模型进行了训练。

File
validation_percentage
(可选)

将用于验证模型的训练样本的百分比。 默认值为 10。

Double
stop_training
(可选)

指定是否将实施提前停止。

  • STOP_TRAINING将实施提前停止,当模型不再改进时,无论所指定的 max_epochs 参数值是什么,模型训练都将停止。 这是默认设置。
  • CONTINUE_TRAINING不会实施提前停止,模型训练将一直持续,直至达到 max_epochs 参数值为止。
Boolean
freeze
(可选)

指定是否冻结预训练模型中的骨干层,以使权重和偏差保持原始设计。

  • FREEZE_MODEL将冻结骨干图层,预定义的权重和偏差不会在 backbone_model 参数中进行更改。 这是默认设置。
  • UNFREEZE_MODEL不会冻结骨干图层,backbone_model 参数的权重和偏差可能会进行更改以更好地适合您的训练样本。 这将需要花费更多的时间来处理,但通常会产生更好的结果。
Boolean
augmentation
(可选)

指定要使用的数据增强类型。

数据增强方法使用现有数据创建经过修改的数据集副本,实现人为增加训练集合。

  • DEFAULT将使用默认数据增强方法和值。包含的默认数据增强方法包括 cropdihedral_affinebrightnesscontrastzoom。 这些默认值通常适用于卫星影像。
  • NONE将不会使用数据增强。
  • CUSTOM数据增强值将使用 augmentation_parameters 参数进行指定。
  • FILE将使用 transforms.json 文件为训练和验证数据集的数据增强指定 fastai 转换,该文件位于训练数据所在的文件夹中。有关不同转换的详细信息,请参阅 fastai 网站中的 vision transforms
String
augmentation_parameters
[augmentation_parameters,...]
(可选)

在增强参数中指定每个转换对应的值。

  • rotate - 影像将按概率 (p) 随机旋转(以度为单位)。 如果度数是一个范围 (a,b),将在 ab 之间均匀赋值。 默认值为 30.0; 0.5。
  • brightness - 影像亮度将根据变化值随机调整,概率为 (p)。 变化为 0 时会将影像转换为最暗,变化为 1 时会将影像转换为最亮。 变化为 0.5 时不会调整亮度。 如果变化是一个范围 (a,b),将在 ab 之间对增强进行均匀赋值。 默认值为 (0.4,0.6); 1.0。
  • contrast - 影像对比度将根据比例值随机调整,概率为 (p)。 比例为 0 时会将影像转换为灰度,比例大于 1 时会将影像转换为超级对比度。 比例为 1 时不会调整对比度。 如果比例是一个范围 (a,b),将在 ab 之间对增强进行均匀赋值。 默认值为 (0.75, 1.5); 1.0。
  • zoom - 影像将根据比例值随机放大。 缩放值采用 scale(a,b); p 形式。 默认值为 (1.0, 1.2); 1.0,其中 p 为概率。 仅当比例大于 1.0 时,才会在影像上进行放大。 如果比例是一个范围 (a,b),将在 ab 之间进行均匀赋值。
  • crop - 将随机裁剪影像。 裁剪值采用 size;p;row_pct;col_pct 形式,其中 p 为概率。 位置根据 (col_pct, row_pct), 确定,其中 col_pctrow_pct 在 0 和 1 之间进行归一化。 如果 col_pctrow_pct 是一个范围 (a,b),将在 ab 之间进行均匀赋值。 默认值为 chip_size;1.0; (0, 1); (0, 1),其中 224 为默认影像片大小。

Value Table
chip_size
(可选)

将用于训练模型的影像大小。 影像将裁剪为指定的影像片大小。 如果影像大小小于参数值,则将使用影像大小。

默认影像片大小将为训练数据的切片大小。 如果 x 和 y 切片大小不同,则将使用较大值。

Long
resize_to
(可选)

调整影像片大小。 在调整影像片大小后,将裁剪影像片大小的像素块,以用于训练。 该参数将仅应用于对象检测 (PASCAL VOC)、对象分类(已标注切片)和超分辨率数据。

大小调整值通常为影像片大小值的一半。 如果此大小调整值小于影像片大小值,则将使用大小调整值创建像素块进行训练。

String
weight_init_scheme
(可选)

指定要用于为图层初始化权重的方案。

要使用多光谱数据训练模型,模型必须容纳不同类型的可用波段。 为此,需要重新初始化模型中的第一个图层。

  • RANDOM随机权重将针对非 RGB 波段进行初始化,而预培训权重将为 RGB 波段保留。 这是默认设置。
  • RED_BAND与预训练模型图层中的红色波段对应的权重将针对非 RGB 波段进行克隆,而预训练权重将为 RGB 波段保留。
  • ALL_RANDOM随机权重将针对 RGB 波段以及非 RGB 波段进行初始化。 此选项仅适用于多光谱影像。

仅当在模型中使用多光谱影像时,此参数才适用。

String
monitor
(可选)

指定在检查点设置和提前停止时要监控的指标。

  • VALID_LOSS将监控验证损失。 如果验证损失不再发生明显变化,则模型将停止。 这是默认设置。
  • AVERAGE_PRECISION将监控每个阈值处的加权精度均值。 如果此值不再发生明显变化,则模型将停止。
  • ACCURACY将监控正确预测数与预测总数之比。 如果此值不再发生明显变化,则模型将停止。
  • F1_SCORE将监控模型的精确率和召回率得分组合。 如果此值不再发生明显变化,则模型将停止。
  • MIOU将监控测试数据集的所有影像中已分割对象的交并比平均值。 如果此值不再发生明显变化,则模型将停止。
  • DICE将使用切分指标监控模型性能。 如果此值不再发生明显变化,则模型将停止。该值范围可以介于 0 到 1 之间。 值 1 表示验证数据与训练数据之间像素完全匹配。
  • PRECISION将监控衡量模型在将样本分类为正样本时的准确性的精确率。 如果此值不再发生明显变化,则模型将停止。精确率为正确分类的正样本数与已分类样本总数(正确或错误)之比。
  • RECALL将监控衡量模型检测正样本的能力的召回率。 如果此值不再发生明显变化,则模型将停止。召回率越高,检测到的正样本越多。 召回率值为正确分类的正样本数与正样本总数之比。
  • CORPUS_BLEU将监控 Corpus blue 分数。 如果此值不再发生明显变化,则模型将停止。此分数用于计算多个句子的准确性,例如段落或文档。
  • MULTI_LABEL_FBETA将监控精确率和召回率的加权调和均值。 如果此值不再发生明显变化,则模型将停止。这通常称为 F-beta 分数。
String

派生输出

名称说明数据类型
out_model_file

输出已训练模型文件。

File

代码示例

TrainDeepLearningModel 示例 1(Python 窗口)

本示例使用 U-Net 方法来训练树分类模型。

# Import system modules  
import arcpy  
from arcpy.ia import *  
 
# Check out the ArcGIS Image Analyst extension license 
arcpy.CheckOutExtension("ImageAnalyst") 
 
# Execute 
TrainDeepLearningModel(r"C:\DeepLearning\TrainingData\Roads_FC", 
     r"C:\DeepLearning\Models\Fire", 40, "UNET", 16, "# #", None, 
     "RESNET34", None, 10, "STOP_TRAINING", "FREEZE_MODEL")
TrainDeepLearningModel 示例 2(独立脚本)

本示例使用 SSD 方法来训练对象检测模型。

# Import system modules  
import arcpy  
from arcpy.ia import *  
 
# Check out the ArcGIS Image Analyst extension license 
arcpy.CheckOutExtension("ImageAnalyst") 
 
#Define input parameters
in_folder = "C:\\DeepLearning\\TrainingData\\Cars" 
out_folder = "C:\\Models\\Cars"
max_epochs = 100
model_type = "SSD"
batch_size = 2
arg = "grids '[4, 2, 1]';zooms '[0.7, 1.0, 1.3]';ratios '[[1, 1], [1, 0.5], [0.5, 1]]'"
learning_rate = 0.003
backbone_model = "RESNET34" 
pretrained_model = "C:\\Models\\Pretrained\\vehicles.emd"
validation_percent = 10
stop_training = "STOP_TRAINING"
freeze = "FREEZE_MODEL"


# Execute
TrainDeepLearningModel(in_folder, out_folder, max_epochs, model_type, 
     batch_size, arg, learning_rate, backbone_model, pretrained_model, 
     validation_percent, stop_training, freeze)

相关主题