标注 | 说明 | 数据类型 |
输入文件夹 | 包含 NER 任务标准数据集形式的训练数据的文件夹。 训练数据必须为 .json 或 .csv 文件。 文件格式将决定输入的数据集类型。 受支持的数据集类型如下:
| Folder |
输出模型 | 将存储经训练模型的输出文件夹位置。 | Folder |
预训练模型文件 (可选) | 将用于微调新模型的预训练模型。 输入可以是 Esri 模型定义文件 (.emd) 或深度学习包文件 (.dlpk)。 可以对具有相似实体的预训练模型进行微调以适应新模型。 预训练模型必须已使用将用于训练新模型的相同模型类型和骨干模型进行了训练。 | File |
地址实体 (可选) | 地址实体将被视为一个位置。 在推断过程中,将使用指定的定位器对此类实体进行地理编码,并且将生成实体提取过程的结果要素类。 如果未提供定位器或训练模型未提取地址实体,则会生成包含提取实体的表。 | String |
最大轮数 (可选) | 将用于训练模型的最大轮数。 最大轮数值为 1 意味着数据集将通过神经网络向前和向后传递一次。 默认值为 5。 | Long |
模型骨干 (可选) | 指定要用作训练新模型的架构的、预先配置的神经网络。
| String |
批处理大小 (可选) | 一次需要处理的训练样本数。 默认值为 2。 增加批处理大小可以提高工具性能;但是,随着批处理大小的增加,会占用更多内存。 如果发生内存不足错误,请使用较小的批处理大小。 | Double |
模型参数 (可选) | 用于初始化模型的其他参数(例如,用于训练数据的最大序列长度的 seq_len)将被考虑用于训练模型。 有关可以使用的受支持模型参数列表,请参阅 EntityRecognizer 文档中的关键字参数。 | Value Table |
学习率 (可选) | 指示在训练过程中将调整多少模型权重的步长。 如果未指定值,将自动推断出最佳学习率。 | Double |
验证百分比 (可选) | 将用于验证模型的训练样本的百分比。 默认值为 10。 | Double |
当模型停止改进时停止 (可选) | 指定模型训练是在模型不再改进时停止还是直至达到最大轮数参数值时才停止。
| Boolean |
将模型骨干设置为可训练 (可选) | 指定是否冻结预训练模型中的骨干层,以使权重和偏差保持原始设计。
| Boolean |
使用情况
该工具要求安装深度学习框架。 要设置计算机以在 ArcGIS AllSource 中使用深度学习框架,请参阅安装 ArcGIS 的深度学习框架。
该工具还可用于对现有经过训练的模型进行微调。
要使用 GPU 运行此工具,请将处理器类型环境设置为 GPU。 如果您具有多个 GPU,还可以指定 GPU ID 环境。
该工具的输入为包含 .json 或 .csv 文件的文件夹。
有关运行此工具的要求以及您可能遇到的问题的信息,请参阅深度学习常见问题。
参数
arcpy.geoai.TrainEntityRecognitionModel(in_folder, out_model, {pretrained_model_file}, {address_entity}, {max_epochs}, {model_backbone}, {batch_size}, {model_arguments}, {learning_rate}, {validation_percentage}, {stop_training}, {make_trainable})
名称 | 说明 | 数据类型 |
in_folder | 包含 NER 任务标准数据集形式的训练数据的文件夹。 训练数据必须为 .json 或 .csv 文件。 文件格式将决定输入的数据集类型。 受支持的数据集类型如下:
| Folder |
out_model | 将存储经训练模型的输出文件夹位置。 | Folder |
pretrained_model_file (可选) | 将用于微调新模型的预训练模型。 输入可以是 Esri 模型定义文件 (.emd) 或深度学习包文件 (.dlpk)。 可以对具有相似实体的预训练模型进行微调以适应新模型。 预训练模型必须已使用将用于训练新模型的相同模型类型和骨干模型进行了训练。 | File |
address_entity (可选) | 地址实体将被视为一个位置。 在推断过程中,将使用指定的定位器对此类实体进行地理编码,并且将生成实体提取过程的结果要素类。 如果未提供定位器或训练模型未提取地址实体,则会生成包含提取实体的表。 | String |
max_epochs (可选) | 将用于训练模型的最大轮数。 最大轮数值为 1 意味着数据集将通过神经网络向前和向后传递一次。 默认值为 5。 | Long |
model_backbone (可选) | 指定要用作训练新模型的架构的、预先配置的神经网络。
| String |
batch_size (可选) | 一次需要处理的训练样本数。 默认值为 2。 增加批处理大小可以提高工具性能;但是,随着批处理大小的增加,会占用更多内存。 如果发生内存不足错误,请使用较小的批处理大小。 | Double |
model_arguments [model_arguments,...] (可选) | 用于初始化模型的其他参数(例如,用于训练数据的最大序列长度的 seq_len)将被考虑用于训练模型。 有关可以使用的受支持模型参数列表,请参阅 EntityRecognizer 文档中的关键字参数。 | Value Table |
learning_rate (可选) | 指示在训练过程中将调整多少模型权重的步长。 如果未指定值,将自动推断出最佳学习率。 | Double |
validation_percentage (可选) | 将用于验证模型的训练样本的百分比。 默认值为 10。 | Double |
stop_training (可选) | 指定模型训练是在模型不再改进时停止还是直至达到 max_epochs 参数值时才停止。
| Boolean |
make_trainable (可选) | 指定是否冻结预训练模型中的骨干层,以使权重和偏差保持原始设计。
| Boolean |
代码示例
以下 Python 窗口脚本演示了如何使用 TrainEntityRecognitionModel 函数。
# Name: TrainEntityRecognizer.py
# Description: Train an Entity Recognition model to extract useful entities like "Address", "Date" from text.
#
# Requirements: ArcGIS Pro Advanced license
# Import system modules
import arcpy
import os
arcpy.env.workspace = "C:/textanalysisexamples/data"
dbpath = "C:/textanalysisexamples/Text_analysis_tools.gdb"
# Set local variables
in_folder = 'train_data'
out_folder = "test_bio_format"
# Run Train Entity Recognition Model
arcpy.geoai.TrainEntityRecognitionModel(in_folder, out_folder)