标注 | 说明 | 数据类型 |
输入表 | 要素类或表,其中包含带有模型输入文本的文本字段和包含目标类标注的标注字段。 | Feature Layer; Table View |
文本字段 | 输入要素类或表中的文本字段,其中包含将按模型分类的文本。 | Field |
标注字段 | 输入要素类或表中的文本字段,其中包含用于训练模型的目标类标注。 对于多标注文本分类,指定一个以上的文本字段。 | Field |
输出模型 | 将存储经训练模型的输出文件夹位置。 | Folder |
预训练模型文件 (可选) | 将用于微调新模型的预训练模型。 输入可以是 Esri 模型定义文件 (.emd) 或深度学习包文件 (.dlpk)。 可以对具有相似类的预训练模型进行微调以适应新模型。 预训练模型必须已使用将用于训练新模型的相同模型类型和骨干模型进行了训练。 | File |
最大轮数 (可选) | 将用于训练模型的最大轮数。 最大轮数值为 1 意味着数据集将通过神经网络向前和向后传递一次。 默认值为 5。 | Long |
模型骨干 (可选) | 指定将用作模型编码器的预配置神经网络,并以固定长度矢量的形式提取输入文本的要素表示。 然后将这些矢量作为输入传递给模型的分类中心词。
| String |
批处理大小 (可选) | 一次需要处理的训练样本数。 默认值为 2。 增加批处理大小可以提高工具性能;但是,随着批处理大小的增加,会占用更多内存。 如果发生内存不足错误,请使用较小的批处理大小。 | Double |
模型参数 (可选) | 用于初始化模型的其他参数(例如,用于训练数据的最大序列长度的 seq_len)将被考虑用于训练模型。 有关可以使用的受支持模型参数列表,请参阅 TextClassifier 文档中的关键字参数。 | Value Table |
学习率 (可选) | 指示在训练过程中将调整多少模型权重的步长。 如果未指定值,将自动确定最佳学习率。 | Double |
验证百分比 (可选) | 将用于验证模型的训练样本的百分比。 默认值为 10。 | Double |
当模型停止改进时停止 (可选) | 指定模型训练是在模型不再改进时停止还是直至达到最大轮数参数值时才停止。
| Boolean |
将模型骨干设置为可训练 (可选) | 指定是否冻结预训练模型中的骨干层,以使权重和偏差保持原始设计。
| Boolean |
移除 HTML 标签 (可选) | 指定是否将从输入文本中移除 HTML 标签。
| Boolean |
移除 URL (可选) | 指定是否将从输入文本中移除 URL。
| Boolean |
使用情况
该工具要求安装深度学习框架。 要设置计算机以在 ArcGIS AllSource 中使用深度学习框架,请参阅安装 ArcGIS 的深度学习框架。
该工具还可用于对现有经过训练的模型进行微调。
要使用 GPU 运行此工具,请将处理器类型环境设置为 GPU。 如果您具有多个 GPU,还可以指定 GPU ID 环境。
该工具的输入是包含训练数据的表或要素类,其中文本字段包含输入文本,标注字段包含目标类标注。
有关运行此工具的要求以及您可能遇到的问题的信息,请参阅深度学习常见问题。
参数
arcpy.geoai.TrainTextClassificationModel(in_table, text_field, label_field, out_model, {pretrained_model_file}, {max_epochs}, {model_backbone}, {batch_size}, {model_arguments}, {learning_rate}, {validation_percentage}, {stop_training}, {make_trainable}, {remove_html_tags}, {remove_urls})
名称 | 说明 | 数据类型 |
in_table | 要素类或表,其中包含带有模型输入文本的文本字段和包含目标类标注的标注字段。 | Feature Layer; Table View |
text_field | 输入要素类或表中的文本字段,其中包含将按模型分类的文本。 | Field |
label_field [label_field,...] | 输入要素类或表中的文本字段,其中包含用于训练模型的目标类标注。 对于多标注文本分类,指定一个以上的文本字段。 | Field |
out_model | 将存储经训练模型的输出文件夹位置。 | Folder |
pretrained_model_file (可选) | 将用于微调新模型的预训练模型。 输入可以是 Esri 模型定义文件 (.emd) 或深度学习包文件 (.dlpk)。 可以对具有相似类的预训练模型进行微调以适应新模型。 预训练模型必须已使用将用于训练新模型的相同模型类型和骨干模型进行了训练。 | File |
max_epochs (可选) | 将用于训练模型的最大轮数。 最大轮数值为 1 意味着数据集将通过神经网络向前和向后传递一次。 默认值为 5。 | Long |
model_backbone (可选) | 指定将用作模型编码器的预配置神经网络,并以固定长度矢量的形式提取输入文本的要素表示。 然后将这些矢量作为输入传递给模型的分类中心词。
| String |
batch_size (可选) | 一次需要处理的训练样本数。 默认值为 2。 增加批处理大小可以提高工具性能;但是,随着批处理大小的增加,会占用更多内存。 如果发生内存不足错误,请使用较小的批处理大小。 | Double |
model_arguments [model_arguments,...] (可选) | 用于初始化模型的其他参数(例如,用于训练数据的最大序列长度的 seq_len)将被考虑用于训练模型。 有关可以使用的受支持模型参数列表,请参阅 TextClassifier 文档中的关键字参数。 | Value Table |
learning_rate (可选) | 指示在训练过程中将调整多少模型权重的步长。 如果未指定值,将自动确定最佳学习率。 | Double |
validation_percentage (可选) | 将用于验证模型的训练样本的百分比。 默认值为 10。 | Double |
stop_training (可选) | 指定模型训练是在模型不再改进时停止还是直至达到 max_epochs 参数值时才停止。
| Boolean |
make_trainable (可选) | 指定是否冻结预训练模型中的骨干层,以使权重和偏差保持原始设计。
| Boolean |
remove_html_tags (可选) | 指定是否将从输入文本中移除 HTML 标签。
| Boolean |
remove_urls (可选) | 指定是否将从输入文本中移除 URL。
| Boolean |
代码示例
以下 Python 窗口脚本演示了如何使用 TrainTextClassificationModel 函数。
# Name: TrainTextClassification.py
# Description: Train a text classifier model to classify text in different classes.
#
# Requirements: ArcGIS Pro Advanced license
# Import system modules
import arcpy
import os
arcpy.env.workspace = "C:/textanalysisexamples/data"
# Set local variables
in_table = "training_data_textclassifier.csv"
out_folder = "c\\textclassifier"
# Run Train Text Classification Model
arcpy.geoai.TrainTextClassificationModel(in_table, out_folder,
max_epochs=2, text_field="Address", label_field="Country", batch_size=16)