标注 | 说明 | 数据类型 |
输入表 | 要素类或表,其中包含一个文本字段,用于存储模型的输入文本;以及一个标注字段,用于存储目标类标注。 | 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 的深度学习框架。
此工具还用于微调现有已训练模型。
工具的输入是包含训练数据的表或要素类,其中包含一个文本字段,用于存储输入文本,以及一个标注字段,用于存储目标类标注。
有关运行此工具的要求以及您可能遇到的问题的信息,请参阅深度学习常见问题。
参数
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)