使用 AutoDL 进行训练 (GeoAI)

获得 Image Analyst 许可后可用。

摘要

通过构建训练管道和自动执行大部分训练过程来训练深度学习模型。 这包括数据增强、模型选择、超参数调整和批量大小扣除。 其输出包括训练数据上最佳模型的性能指标,以及可用作使用 AI 模型提取要素工具在新影像上进行预测的经过训练的深度学习模型包(.dlpk 文件)的输入。

了解有关 AutoDL 工作原理的详细信息

使用情况

  • 您必须在 AllSource 中为 Python 安装适当的深度学习框架。

    了解如何安装 ArcGIS 的深度学习框架

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

  • 该工具生成经训练模型所需的时间取决于以下因素:

    • 训练期间提供的数据量
    • AutoDL 模式参数值
    • 总时间限制(小时)参数值

    默认情况下,所有模式的计时器设置为 2 小时。 基本模式将在给定时间内在默认骨干上训练所选网络。 高级模式将总时间分为两半,在前半部分执行模型评估,最后选择性能最佳的两个模型在其他骨干上进行评估。 如果正在训练的数据量很大,则可能无法在 2 小时内评估所有所选模型。 在这种情况下,在 2 小时内确定的最佳模型将被视为最佳模型。 然后,您可以使用此模型或使用更高的总时间限制(小时)参数值重新运行该工具。

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

  • 要运行此工具,需要配备 GPU 的计算机。 如果您具有多个 GPU,请使用 GPU ID 环境。

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

  • 该工具的潜在用例包括训练对象检测和像素分类模型,用于提取诸如建筑物覆盖区、水池、太阳能电池板、土地覆被分类等要素。

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

参数

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

包含训练模型所需的影像片、标注和统计数据的文件夹。 此数据为导出训练数据进行深度学习工具的输出。 已导出数据的元数据格式必须为 Classified_Tiles、PASCAL_VOC_rectangles 或 KITTI_rectangles。

Folder
输出模型

将另存为深度学习包(.dlpk 文件)的输出训练模型。

File
预训练模型
(可选)

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

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

File
总时间限制(小时)
(可选)

AutoDL 模型训练所需的总时间限制(以小时为单位)。 默认值为 2 小时。

Double
AutoDL 模式
(可选)

指定将使用的 AutoDL 模式以及 AutoDL 搜索的强度。

  • 基本将使用基本模式。 此模式用于在不进行超参数调整的情况下训练所有所选网络。
  • 高级将使用高级模式。 此模式用于对性能最佳的两个模型执行超参数调整。
String
神经网络
(可选)

指定将用于训练模型的架构。

默认情况下,将使用所有网络。

  • SingleShotDetectorSingleShotDetector 架构将用于训练模型。 SingleShotDetector 将用于对象检测。
  • RetinaNetRetinaNet 架构将用于训练模型。 RetinaNet 将用于对象检测。
  • FasterRCNNFasterRCNN 架构将用于训练模型。 FasterRCNN 将用于对象检测。
  • YOLOv3YOLOv3 架构将用于训练模型。 YOLOv3 将用于对象检测。
  • HRNetHRNet 架构将用于训练模型。 HRNet 用于像素分类。
  • ATSSATSS 架构将用于训练模型。 ATSS 将用于对象检测。
  • CARAFECARAFE 架构将用于训练模型。 CARAFE 将用于对象检测。
  • CascadeRCNNCascadeRCNN 架构将用于训练模型。 CascadeRCNN 将用于对象检测。
  • CascadeRPNCascadeRPN 架构将用于训练模型。 CascadeRPN 将用于对象检测。
  • DCNDCN 架构将用于训练模型。 DCN 将用于对象检测。
  • DeepLabDeepLab 架构将用于训练模型。 DeepLab 将用于像素分类。
  • UnetClassifierUnetClassifier 架构将用于训练模型。 UnetClassifier 将用于像素分类。
  • PSPNetClassifierPSPNetClassifier 架构将用于训练模型。 PSPNetClassifier 将用于像素分类。
  • ANNANN 架构将用于训练模型。 ANN 将用于像素分类。
  • APCNetAPCNet 架构将用于训练模型。 APCNet 将用于像素分类。
  • CCNetCCNet 架构将用于训练模型。 CCNet 将用于像素分类。
  • CGNetCGNet 架构将用于训练模型。 CGNet 将用于像素分类。
String
保存已评估模型
(可选)

指定是否将保存所有已评估模型。

  • 选中 - 将保存所有已评估模型。
  • 未选中 -将仅保存性能最佳的模型。 这是默认设置。
Boolean

派生输出

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

输出模型文件。

File

arcpy.geoai.TrainUsingAutoDL(in_data, out_model, {pretrained_model}, {total_time_limit}, {autodl_mode}, {networks}, {save_evaluated_models})
名称说明数据类型
in_data

包含训练模型所需的影像片、标注和统计数据的文件夹。 此数据为导出训练数据进行深度学习工具的输出。 已导出数据的元数据格式必须为 Classified_Tiles、PASCAL_VOC_rectangles 或 KITTI_rectangles。

Folder
out_model

将另存为深度学习包(.dlpk 文件)的输出训练模型。

File
pretrained_model
(可选)

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

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

File
total_time_limit
(可选)

AutoDL 模型训练所需的总时间限制(以小时为单位)。 默认值为 2 小时。

Double
autodl_mode
(可选)

指定将使用的 AutoDL 模式以及 AutoDL 搜索的强度。

  • BASIC将使用基本模式。 此模式用于在不进行超参数调整的情况下训练所有所选网络。
  • ADVANCED将使用高级模式。 此模式用于对性能最佳的两个模型执行超参数调整。
String
networks
[networks,...]
(可选)

指定将用于训练模型的架构。

  • SingleShotDetectorSingleShotDetector 架构将用于训练模型。 SingleShotDetector 将用于对象检测。
  • RetinaNetRetinaNet 架构将用于训练模型。 RetinaNet 将用于对象检测。
  • FasterRCNNFasterRCNN 架构将用于训练模型。 FasterRCNN 将用于对象检测。
  • YOLOv3YOLOv3 架构将用于训练模型。 YOLOv3 将用于对象检测。
  • HRNetHRNet 架构将用于训练模型。 HRNet 用于像素分类。
  • ATSSATSS 架构将用于训练模型。 ATSS 将用于对象检测。
  • CARAFECARAFE 架构将用于训练模型。 CARAFE 将用于对象检测。
  • CascadeRCNNCascadeRCNN 架构将用于训练模型。 CascadeRCNN 将用于对象检测。
  • CascadeRPNCascadeRPN 架构将用于训练模型。 CascadeRPN 将用于对象检测。
  • DCNDCN 架构将用于训练模型。 DCN 将用于对象检测。
  • DeepLabDeepLab 架构将用于训练模型。 DeepLab 将用于像素分类。
  • UnetClassifierUnetClassifier 架构将用于训练模型。 UnetClassifier 将用于像素分类。
  • PSPNetClassifierPSPNetClassifier 架构将用于训练模型。 PSPNetClassifier 将用于像素分类。
  • ANNANN 架构将用于训练模型。 ANN 将用于像素分类。
  • APCNetAPCNet 架构将用于训练模型。 APCNet 将用于像素分类。
  • CCNetCCNet 架构将用于训练模型。 CCNet 将用于像素分类。
  • CGNetCGNet 架构将用于训练模型。 CGNet 将用于像素分类。

默认情况下,将使用所有网络。

String
save_evaluated_models
(可选)

指定是否将保存所有已评估模型。

  • SAVE_ALL_MODELS将保存所有已评估模型。
  • SAVE_BEST_MODEL将仅保存性能最佳的模型。 这是默认设置。
Boolean

派生输出

名称说明数据类型
output_model_file

输出模型文件。

File

代码示例

TrainUsingAutoDL(Python 窗口)

本示例介绍了如何使用 TrainUsingAutoDL 函数。


# Name: TrainUsingAutoDL.py
# Description: Train a deep learning model on imagery data with
# automatic hyperparameter selection.
  
# Import system modules
import arcpy
import os

# Set local variables

datapath = "path_to_training_data" 
out_path = "path_to_trained_model"

out_model = os.path.join(out_path, "mymodel")

# Run Train Using AutoML Model
arcpy.geoai.TrainUsingAutoDL(
    datapath, out_model, None, 2, "BASIC", 
    ["ATSS", "DCN", "FasterRCNN", "RetinaNet", "SingleShotDetector", "YOLOv3"], 
    "SAVE_BEST_MODEL")

环境