Transformers documentation
LayoutXLM
该模型于 2021-04-18 在 HF papers 上发布,并于 2021-11-03 贡献至 Hugging Face Transformers。
LayoutXLM
概述
LayoutXLM 由 Yiheng Xu、Tengchao Lv、Lei Cui、Guoxin Wang、Yijuan Lu、Dinei Florencio、Cha Zhang 和 Furu Wei 在 LayoutXLM: Multimodal Pre-training for Multilingual Visually-rich Document Understanding 中提出。它是 LayoutLMv2 模型 的多语言扩展版本,在 53 种语言上进行训练。
该论文的摘要如下:
近期,结合文本、版式和图像的多模态预训练在视觉丰富的文档理解任务上取得了 SOTA 性能,这展示了跨不同模态联合学习的巨大潜力。在本文中,我们提出了 LayoutXLM,一个用于多语言文档理解的多模态预训练模型,旨在消除视觉丰富文档理解中的语言障碍。为了准确评估 LayoutXLM,我们还引入了一个名为 XFUN 的多语言表单理解基准数据集,该数据集包含 7 种语言(中文、日文、西班牙语、法语、意大利语、德语、葡萄牙语)的表单理解样本,并且每种语言的关键值对均经过人工标注。实验结果表明,LayoutXLM 模型在 XFUN 数据集上显著优于现有的 SOTA 跨语言预训练模型。
使用技巧与示例
可以直接将 LayoutXLM 的权重加载到 LayoutLMv2 模型中,如下所示:
from transformers import LayoutLMv2Model
model = LayoutLMv2Model.from_pretrained("microsoft/layoutxlm-base", device_map="auto")请注意,LayoutXLM 拥有自己的分词器,基于 LayoutXLMTokenizer/LayoutXLMTokenizerFast。您可以按如下方式对其进行初始化:
from transformers import LayoutXLMTokenizer
tokenizer = LayoutXLMTokenizer.from_pretrained("microsoft/layoutxlm-base")与 LayoutLMv2 类似,您可以使用 LayoutXLMProcessor(其内部依次应用 LayoutLMv2ImageProcessor 和 LayoutXLMTokenizer/LayoutXLMTokenizerFast)来为模型准备所有数据。
由于 LayoutXLM 的架构与 LayoutLMv2 相同,您可以参考 LayoutLMv2 的文档页面 获取所有技巧、代码示例和笔记本。
LayoutXLMConfig
class transformers.LayoutXLMConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 30522hidden_size: int = 768num_hidden_layers: int = 12num_attention_heads: int = 12intermediate_size: int = 3072hidden_act: str = 'gelu'hidden_dropout_prob: float | int = 0.1attention_probs_dropout_prob: float | int = 0.1max_position_embeddings: int = 512type_vocab_size: int = 2initializer_range: float = 0.02layer_norm_eps: float = 1e-12pad_token_id: int | None = 0max_2d_position_embeddings: int = 1024max_rel_pos: int = 128rel_pos_bins: int = 32fast_qkv: bool = Truemax_rel_2d_pos: int = 256rel_2d_pos_bins: int = 64convert_sync_batchnorm: bool = Trueimage_feature_pool_shape: list[int] | tuple[int, ...] = (7, 7, 256)coordinate_size: int = 128shape_size: int = 128has_relative_attention_bias: bool = Truehas_spatial_attention_bias: bool = Truehas_visual_segment_embedding: bool = Falsedetectron2_config_args: dict | None = None )
参数
- vocab_size (
int,可选,默认为30522) — 模型的词汇表大小。定义了input_ids可以表示的不同 token 数量。 - hidden_size (
int,可选,默认为768) — 隐藏表示的维度。 - num_hidden_layers (
int, 可选, 默认为12) — Transformer 解码器中的隐藏层数量。 - num_attention_heads (
int,可选,默认为12) — Transformer 解码器中每个注意力层的注意力头数量。 - intermediate_size (
int,可选,默认为3072) — MLP 表示的维度。 - hidden_act (
str,可选,默认为gelu) — 解码器中的非线性激活函数(函数或字符串)。例如,"gelu"、"relu"、"silu"等。 - hidden_dropout_prob (
Union[float, int],可选,默认为0.1) — 嵌入层、编码器和池化层中所有全连接层的 dropout 概率。 - attention_probs_dropout_prob (
Union[float, int],可选,默认为0.1) — 注意力概率的 dropout 比率。 - max_position_embeddings (
int,可选,默认为512) — 该模型可能使用的最大序列长度。 - type_vocab_size (
int,可选,默认为2) —token_type_ids的词汇表大小。 - initializer_range (
float,可选,默认为0.02) — 用于初始化所有权重矩阵的 truncated_normal_initializer 的标准差。 - layer_norm_eps (
float,可选,默认为1e-12) — 层归一化层所使用的 epsilon 值。 - pad_token_id (
int, 可选,默认为0) — 词表中用于填充的 token id。 - max_2d_position_embeddings (
int,可选,默认值为 1024) — 2D 位置嵌入可能使用的最大值。通常建议将其设置为一个较大的值以防万一(例如 1024)。 - max_rel_pos (
int,可选,默认为 128) — 自注意力机制中使用的最大相对位置数。 - rel_pos_bins (
int,可选,默认为 32) — 自注意力机制中使用的相对位置分箱数量。 - fast_qkv(
bool,可选,默认为True)— 是否使用单个矩阵来自注意力层中的查询、键和值。 - max_rel_2d_pos (
int,可选,默认为 256) — 自注意力机制中相对 2D 位置的最大数量。 - rel_2d_pos_bins (
int,可选,默认为 64) — 自注意力机制中二维相对位置分箱的数量。 - convert_sync_batchnorm (
bool,可选,默认为True) — 是否将批归一化层转换为同步批归一化层。 - image_feature_pool_shape (
list[int],可选,默认为[7, 7, 256]) — 平均池化后特征图的形状。 - coordinate_size (
int,可选,默认为 128) — 坐标嵌入的维度。 - shape_size (
int,可选,默认为 128) — 宽度和高度嵌入的维度。 - has_relative_attention_bias (
bool,可选,默认为True) — 是否在自注意力机制中使用相对注意力偏置。 - has_spatial_attention_bias (
bool,可选,默认为True) — 是否在自注意力机制中使用空间注意力偏置。 - has_visual_segment_embedding (
bool,可选,默认为False) — 是否添加视觉分段嵌入。 - detectron2_config_args (
dict, 可选) — 包含 Detectron2 视觉骨干网络配置参数的字典。有关默认值的详细信息,请参阅此文件。
这是用于存储 LayoutxlmModel 配置的类。它根据指定的参数实例化 Layoutxlm 模型,并定义模型架构。使用默认值实例化配置将得到与 microsoft/layoutxlm-base 类似的配置。
配置对象继承自 PreTrainedConfig,可用于控制模型输出。有关更多信息,请参阅 PreTrainedConfig 的文档。
示例:
>>> from transformers import LayoutXLMConfig, LayoutXLMModel
>>> # Initializing a LayoutXLM microsoft/layoutxlm-base style configuration
>>> configuration = LayoutXLMConfig()
>>> # Initializing a model (with random weights) from the microsoft/layoutxlm-base style configuration
>>> model = LayoutXLMModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configLayoutXLMTokenizer
class transformers.LayoutXLMTokenizer
< source >( vocab: str | list | None = Nonebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'mask_token = '<mask>'cls_token_box = [0, 0, 0, 0]sep_token_box = [1000, 1000, 1000, 1000]pad_token_box = [0, 0, 0, 0]pad_token_label = -100only_label_first_subword = Trueadd_prefix_space = True**kwargs )
参数
- vocab (
str、dict或list,可选) — 分词器的词表,可以是路径、字典或(token, score)元组列表。 - bos_token (
str, 可选, 默认为"<s>") — 预训练期间使用的序列起始标记。也可用作序列分类标记。在构建序列时,如果使用了特殊标记,序列开头使用的并不是这个标记。实际使用的标记是
cls_token。 - eos_token (
str, 可选, 默认为"</s>") — 序列结束标记。在构建包含特殊标记的序列时,序列结束使用的并非此标记,而是 sep_token。在构建包含特殊标记的序列时,序列末尾使用的并不是这个标记。 实际使用的是
sep_token。 - sep_token (
str,可选,默认为"</s>") — 分隔符 token,用于从多个序列构建序列时,例如用于序列分类的两个序列,或用于问答的文本和问题。它也用作使用特殊 token 构建的序列的最后一个 token。 - cls_token (
str,可选,默认为"<s>") — 用于序列分类(对整个序列进行分类,而非逐 token 分类)的分类器 token。当使用特殊 token 构建序列时,它是序列的第一个 token。 - unk_token (
str,可选,默认为"<unk>") — 未知标记。不在词汇表中的标记无法转换为 ID,因此会被设置为该标记。 - pad_token (
str,可选,默认为"<pad>") — 用于填充的标记,例如在对长度不同的序列进行批处理时。 - mask_token (
str, 可选,默认为"<mask>") — 用于掩码值的标记。这是在以掩码语言建模方式训练该模型时所使用的标记,也是模型将尝试预测的标记。 - cls_token_box (
list[int],可选,默认为[0, 0, 0, 0]) — 用于特殊 [CLS] token 的边界框。 - sep_token_box (
list[int],可选,默认为[1000, 1000, 1000, 1000]) — 用于特殊 [SEP] token 的边界框。 - pad_token_box (
list[int],可选,默认为[0, 0, 0, 0]) — 用于特殊 [PAD] token 的边界框。 - pad_token_label (
int,可选,默认值为 -100) — 用于填充 token 的标签。默认值为 -100,即 PyTorch 中 CrossEntropyLoss 的ignore_index。 - only_label_first_subword (
bool,可选,默认为True) — 如果提供了词标签,是否仅对第一个子词进行标注。 - add_prefix_space (
bool,可选,默认为True) — 是否要在输入前添加一个初始空格。 - additional_special_tokens (
list[str],可选,默认为["<s>NOTUSED", "</s>NOTUSED"]) — 分词器使用的额外特殊标记。
构建一个“快速”的 LayoutXLM 分词器(基于 HuggingFace 的 tokenizers 库)。改编自 RobertaTokenizer 和 XLNetTokenizer。基于 BPE。
该分词器继承自 TokenizersBackend,其中包含了大部分主要方法。用户应参考该父类以获取有关这些方法的更多信息。
__call__
< source >( text: str | list[str] | list[list[str]]text_pair: list[str] | list[list[str]] | None = Noneboxes: list[list[int]] | list[list[list[int]]] | None = Noneword_labels: list[int] | list[list[int]] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = True**kwargs ) → BatchEncoding
参数
- text (
str,list[str],list[list[str]]) — 要编码的序列或序列批次。每个序列可以是字符串、字符串列表(单个示例的单词或一批示例的问题)或字符串列表的列表(单词批次)。 - text_pair (
list[str],list[list[str]]) — 要编码的序列或序列批次。每个序列应为字符串列表(预分词字符串)。 - boxes (
list[list[int]],list[list[list[int]]]) — 词级边界框。每个边界框应归一化到 0-1000 的尺度上。 - word_labels (
list[int],list[list[int]], 可选) — 词级别的整数标签(用于 FUNSD、CORD 等 token 分类任务)。 - add_special_tokens (
bool,可选,默认为True) — 是否根据模型为序列编码特殊标记。 - padding (
bool,str或 PaddingStrategy, 可选, 默认值为False) — 启用并控制填充。接受以下值:True或'longest':填充至批次中最长的序列(如果仅提供单个序列,则不进行填充)。'max_length':填充至由参数max_length指定的最大长度;若未提供该参数,则填充至模型可接受的最大输入长度。False或'do_not_pad'(默认值):不进行填充(即可以输出包含不同长度序列的批次)。
- truncation (
bool,str或 TruncationStrategy, ,可选, ,默认为False) — 启用并控制截断。接受以下值:True或'longest_first':截断至由参数max_length指定的最大长度,或者如果未提供该参数,则截断至模型可接受的最大输入长度。这将逐个 token 进行截断,如果提供了一对序列(或一批序列对),则会从该对中最长的序列中移除一个 token。'only_first':截断至由参数max_length指定的最大长度,或者在未提供该参数时,截断至模型可接受的最大输入长度。如果提供了一对序列(或一批序列对),则仅截断其中的第一个序列。'only_second':截断至由参数max_length指定的最大长度,或者如果未提供该参数,则截断至模型可接受的最大输入长度。仅当提供了一对序列(或一批序列对)时,才会截断其中的第二个序列。False或'do_not_truncate'(默认值):不进行截断(即,可以输出序列长度大于模型最大可接受输入大小的批次)。
- max_length (
int, 可选) — 控制截断/填充参数之一所使用的最大长度。如果未设置或设置为 None,则当截断/填充参数需要最大长度时,将使用预定义的最大模型长度。如果模型没有特定的最大输入长度(如 XLNet),则禁用截断/填充到最大长度的功能。如果未设置或设置为
None,当截断/填充参数需要最大长度时,将使用预定义的最大模型长度。如果模型没有特定的最大输入长度(例如 XLNet),则禁用截断/填充至最大长度的功能。 - stride (
int,可选,默认为 0) — 如果与max_length一起设置为某个数值,则当return_overflowing_tokens=True时,返回的溢出 token 将包含截断序列末尾的若干 token,以在截断序列和溢出序列之间提供一定的重叠。此参数的值定义了重叠 token 的数量。 - pad_to_multiple_of (
int, 可选) — 如果设置,则将序列填充为所提供值的倍数。这对于在计算能力>= 7.5(Volta)的 NVIDIA 硬件上启用 Tensor Cores 特别有用。 - return_tensors (
str或 TensorType, 可选) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值为:'pt':返回 PyTorchtorch.Tensor对象。'np':返回 Numpynp.ndarray对象。
- return_token_type_ids (
bool, 可选) — 是否返回 token type ID。如果保持默认值,将根据特定分词器的默认设置返回 token type ID,该设置由return_outputs属性定义。 - return_attention_mask (
bool, 可选) — 是否返回注意力掩码。如果保持默认值,将根据特定分词器的默认设置返回注意力掩码,该设置由return_outputs属性定义。 - return_overflowing_tokens (
bool,可选,默认为False) — 是否返回溢出的 token 序列。如果提供了输入 id 的序列对(或序列对批次),且truncation_strategy = longest_first或True,则会抛出错误,而不是返回溢出的 token。 - return_special_tokens_mask (
bool,可选,默认为False) — 是否返回特殊 token 掩码信息。 - return_offsets_mapping (
bool, 可选, 默认为False) — 是否返回(char_start, char_end)每个 token 的。此功能仅在继承自 PreTrainedTokenizerFast 的快速分词器上可用。如果使用 Python 分词器,此方法将抛出
NotImplementedError。 - return_length (
bool,可选,默认为False) — 是否返回编码后输入的长度。 - verbose (
bool,可选,默认为True) — 是否打印更多信息和警告。 - **kwargs — 传递给
self.tokenize()方法
返回值
一个包含以下字段的 BatchEncoding:
-
input_ids — 要输入模型的 token id 列表。
-
bbox — 要输入模型的边界框列表。
-
token_type_ids — 要输入模型的 token 类型 ID 列表(当
return_token_type_ids=True或self.model_input_names中包含 “token_type_ids” 时)。 -
attention_mask — 索引列表,指定模型应关注哪些 token(当
return_attention_mask=True或 “attention_mask” 位于self.model_input_names中时)。 -
labels — 要输入模型的标签列表。(当指定了
word_labels时)。 -
overflowing_tokens — 溢出 token 序列的列表(当指定了
max_length且return_overflowing_tokens=True时)。 -
num_truncated_tokens — 被截断的 token 数量(当指定了
max_length且return_overflowing_tokens=True时)。 -
special_tokens_mask — 由 0 和 1 组成的列表,其中 1 表示添加的特殊标记,0 表示常规序列标记(当
add_special_tokens=True且return_special_tokens_mask=True时)。 -
length — 输入的长度(当
return_length=True时)。
用于对一条或多条序列,或一对或多对序列进行分词并准备输入模型的主要方法,这些序列带有词级归一化边界框以及可选的标签。
build_inputs_with_special_tokens
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
通过拼接并添加特殊标记,从单个序列或序列对构建用于序列分类任务的模型输入。XLM-RoBERTa 序列的格式如下:
- 单条序列:
<s> X </s> - 序列对:
<s> A </s></s> B </s>
get_special_tokens_mask
< source >( token_ids_0: list[int]token_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]
从未添加特殊标记的标记列表中检索序列 ID。
对于快速分词器,数据整理器会传入 already_has_special_tokens=True 来调用此方法,以在已格式化的序列上构建掩码。在这种情况下,我们通过检查元素是否属于 all_special_ids 来计算掩码。
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
根据传入的两个序列创建掩码,用于序列对分类任务。XLM-RoBERTa 不使用 token type ids,因此返回一个全零列表。
LayoutXLMProcessor
class transformers.LayoutXLMProcessor
< source >( image_processor = Nonetokenizer = None**kwargs )
构建一个 LayoutXLMProcessor,它将图像处理器和分词器封装为单一处理器。
LayoutXLMProcessor 提供了 LayoutLMv2ImageProcessor 和 LayoutXLMTokenizer 的所有功能。有关更多信息,请参阅 ~LayoutLMv2ImageProcessor 和 ~LayoutXLMTokenizer。
__call__
< source >( imagestext: str | list[str] | list[list[str]] = Nonetext_pair: list[str] | list[list[str]] | None = Noneboxes: list[list[int]] | list[list[list[int]]] | None = Noneword_labels: list[int] | list[list[int]] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Nonemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truereturn_tensors: str | transformers.utils.generic.TensorType | None = None**kwargs ) → ~tokenization_utils_base.BatchEncoding
参数
- images (`
) -- Image to preprocess. Expects a single or batch of images with pixel values ranging from 0 to 255. If passing in images with pixel values between 0 and 1, setdo_rescale=False`. - text (
Union[str, list[str], list[list[str]]],可选) — 要编码的序列或序列批次。每个序列可以是字符串或字符串列表(预分词字符串)。如果传入预分词输入,请设置is_split_into_words=True,以避免与批量输入产生歧义。 - text_pair (
str, list[str] or list[int], 可选) — 要编码的可选第二个序列。它可以是一个字符串、一个字符串列表(使用tokenize方法分词后的字符串)或一个整数列表(使用convert_tokens_to_ids方法得到的分词字符串 ID)。 - boxes (
list[list[int]] or list[list[list[int]]], 可选) — 词级边界框。每个边界框应归一化到 0-1000 的尺度上。 - word_labels (
list[int] or list[list[int]],可选) — 词级别的整数标签(用于 FUNSD、CORD 等 token 分类任务)。 - add_special_tokens (
bool,可选,默认为True) — 在编码序列时是否添加特殊标记。此操作将使用底层的PretrainedTokenizerBase.build_inputs_with_special_tokens函数,该函数定义了哪些标记会自动添加到输入 ID 中。如果您希望自动添加bos或eos标记,此功能非常有用。 - padding (bool、str 或 PaddingStrategy, ,可选, ,默认为
False) — 启用并控制填充。接受以下值:True或'longest':填充至批次中最长的序列(如果仅提供单个序列,则不进行填充)。'max_length':填充至由参数max_length指定的最大长度;若未提供该参数,则填充至模型可接受的最大输入长度。False或'do_not_pad'(默认值):不进行填充(即可以输出包含不同长度序列的批次)。
- truncation (bool、str 或 TruncationStrategy, ,可选) —
启用并控制截断。接受以下值:
True或'longest_first':截断至由参数max_length指定的最大长度,或者如果未提供该参数,则截断至模型可接受的最大输入长度。这将逐个 token 进行截断,如果提供了一对序列(或一批序列对),则会从该对中最长的序列中移除一个 token。'only_first':截断至由参数max_length指定的最大长度,或者在未提供该参数时,截断至模型可接受的最大输入长度。如果提供了一对序列(或一批序列对),则仅截断其中的第一个序列。'only_second':截断至由参数max_length指定的最大长度,或者如果未提供该参数,则截断至模型可接受的最大输入长度。仅当提供了一对序列(或一批序列对)时,才会截断其中的第二个序列。False或'do_not_truncate'(默认值):不进行截断(即,可以输出序列长度大于模型最大可接受输入大小的批次)。
- max_length (
int, 可选) — 控制截断/填充参数之一所使用的最大长度。如果未设置或设置为 None,则当截断/填充参数需要最大长度时,将使用预定义的最大模型长度。如果模型没有特定的最大输入长度(如 XLNet),则禁用截断/填充到最大长度的功能。如果未设置或设置为
None,当截断/填充参数需要最大长度时,将使用预定义的最大模型长度。如果模型没有特定的最大输入长度(例如 XLNet),则禁用截断/填充至最大长度的功能。 - stride (
int,可选,默认为0) — 如果与max_length一起设置为某个数值,则当return_overflowing_tokens=True时,返回的溢出 token 将包含截断序列末尾的某些 token,以在截断序列和溢出序列之间提供一些重叠。此参数的值定义了重叠 token 的数量。 - pad_to_multiple_of (
int, 可选) — 如果设置,则将序列填充为所提供值的倍数。需要启用padding。 这对于在具有计算能力>= 7.5(Volta)的 NVIDIA 硬件上启用 Tensor Cores 特别有用。 - return_token_type_ids (
bool, 可选) — 是否返回 token type ID。如果保持默认值,将根据特定分词器的默认设置返回 token type ID,该设置由return_outputs属性定义。 - return_attention_mask (
bool, 可选) — 是否返回注意力掩码。如果保持默认值,将根据特定分词器的默认设置返回注意力掩码,该设置由return_outputs属性定义。 - return_overflowing_tokens (
bool,可选,默认为False) — 是否返回溢出的 token 序列。如果提供了输入 id 的序列对(或序列对批次),且truncation_strategy = longest_first或True,则会抛出错误,而不是返回溢出的 token。 - return_special_tokens_mask (
bool,可选,默认为False) — 是否返回特殊 token 掩码信息。 - return_offsets_mapping (
bool, 可选, 默认为False) — 是否返回(char_start, char_end)每个 token 的。此功能仅在继承自 PreTrainedTokenizerFast 的快速分词器上可用。如果使用 Python 分词器,此方法将抛出
NotImplementedError。 - return_length (
bool,可选,默认为False) — 是否返回编码后输入的长度。 - verbose (
bool,可选,默认为True) — 是否打印更多信息和警告。 - return_tensors (
Union[str, ~utils.generic.TensorType], 可选) — 如果设置,将返回特定框架的张量。可接受的值为:'pt':返回 PyTorchtorch.Tensor对象。'np':返回 NumPynp.ndarray对象。
返回值
~tokenization_utils_base.BatchEncoding
- data (
dict,可选) — 由__call__/encode_plus/batch_encode_plus方法返回的列表/数组/张量字典 (‘input_ids’、‘attention_mask’ 等)。 - encoding(
tokenizers.Encoding或Sequence[tokenizers.Encoding],可选)— 如果分词器是快速分词器,并且会输出诸如从词/字符空间到 token 空间的映射等附加信息,则tokenizers.Encoding实例或实例列表(用于批次)将保存这些信息。 - tensor_type (
Union[None, str, TensorType], 可选) — 您可以在此处指定 tensor_type,以便在初始化时将 PyTorch/Numpy 张量中的整数列表进行转换。 - prepend_batch_axis (
bool,可选,默认为False) — 在转换为张量时是否添加批次维度(参见上文中的tensor_type)。请注意,仅当参数tensor_type被设置时,该参数才会生效,否则无效。 - n_sequences (
int,可选) — 每个编码所表示的输入序列数量(None表示未知,1表示单个序列,2表示一对序列)。