获得 Image Analyst 许可后可用。
描述
使用导出训练数据进行深度学习工具的输出训练深度学习模型。
使用方法
该工具使用深度学习框架训练深度学习模型。
要设置计算机以在 ArcGIS Pro 中使用深度学习框架,请参阅安装 ArcGIS 的深度学习框架。
该工具还可用于对现有经过训练的模型进行微调。例如,可以对已针对汽车进行了训练的现有模型进行微调,以训练用于识别卡车的模型。
该工具的输入训练数据必须包括从导出训练数据进行深度学习工具生成的影像和标注文件夹。
有关运行此工具的要求以及您可能遇到的问题的信息,请参阅深度学习常见问题。
有关深度学习的详细信息,请参阅 ArcGIS Pro 中的深度学习。
语法
TrainDeepLearningModel(in_folder, out_folder, {max_epochs}, {model_type}, {batch_size}, {arguments}, {learning_rate}, {backbone_model}, {pretrained_model}, {validation_percentage}, {stop_training}, {freeze})
参数 | 说明 | 数据类型 |
in_folder | 包含训练模型所需的影像片、标注和统计数据的文件夹。此数据为导出训练数据进行深度学习工具的输出。 要训练模型,输入图像必须是具有三个波段的 8 位栅格。 | Folder |
out_folder | 将存储经训练模型的输出文件夹位置。 | Folder |
max_epochs (可选) | 应用于将训练模型的最大新纪元数。最大新纪元值为 1 意味着数据集将通过神经网络向前和向后传递一次。默认值为 20。 | Long |
model_type (可选) | 指定用于训练深度学习模型的模型类型。
| String |
batch_size (可选) | 一次需要处理以便用于训练的训练样本数。默认值为 2。 如果您具有功能强大的 GPU,则可将此数字增加到 8、16、32 或 64。 | Long |
arguments [arguments,...] (可选) | 函数参数在 Python 栅格函数类中定义。您可以在此列出其他深度学习参数和用于试验和优化的参数,例如用于调整灵敏度的置信度阈值。参数名称将通过读取 Python 模块进行填充。 当选择 SSD 作为 model_type 参数值时,arguments 参数将使用以下参数进行填充:
当您选择任意像素分类模型(例如,PSPNET、UNET 或 DEEPLAB)作为 model_type 参数值时,该 arguments 参数将使用以下参数进行填充:
当选择 RETINANET 作为 model_type 参数值时,arguments 参数将使用以下参数进行填充:
所有模型类型均支持 chip_size 参数,即训练样本中切片的片大小。将从 in_folder 参数中指定的文件夹中的 .emd 文件提取影像片大小。 | Value Table |
learning_rate (可选) | 在整个训练过程中,现有信息将被新获取的信息覆盖的比率。如果未指定任何值,则系统将在训练过程中从学习曲线中提取最佳学习率。 | Double |
backbone_model (可选) | 指定要用作训练新模型的架构的、预先配置的神经网络。这种方法称为迁移学习。
| String |
pretrained_model (可选) | 用于微调训练新模型的预训练模型。输入为 Esri 模型定义文件 (.emd) 或深度学习包文件 (.dlpk)。 可以对具有相似类的预训练模型进行微调以适应新模型。预训练模型必须已使用将用于训练新模型的相同模型类型和骨干模型进行了训练。 | File |
validation_percentage (可选) | 将用于验证模型的训练样本的百分比。默认值为 10。 | Double |
stop_training (可选) | 指定是否将实施提前停止。
| Boolean |
freeze (可选) | 指定是否冻结预训练模型中的骨干层,以使权重和偏差保持原始设计。
| Boolean |
派生输出
名称 | 说明 | 数据类型 |
out_model_file | 输出已训练模型文件。 | 文件 |
代码示例
本示例使用 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")
本示例使用 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)
许可信息
- Basic: 需要 Image Analyst
- Standard: 需要 Image Analyst
- Advanced: 需要 Image Analyst