Transformers 文档
LayoutXLM
并获得增强的文档体验
开始使用
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》(LayoutXLM:面向多语言视觉丰富文档理解的多模态预训练)中提出。它是 LayoutLMv2 模型 的多语言扩展,在 53 种语言上进行了训练。
论文摘要如下:
摘要内容如下:近期,结合文本、布局和图像的多模态预训练在视觉丰富的文档理解任务中取得了业界最佳(SOTA)性能,展现了跨不同模态联合学习的巨大潜力。在本文中,我们提出了 LayoutXLM,一个用于多语言文档理解的多模态预训练模型,旨在为视觉丰富的文档理解任务打破语言障碍。为了准确评估 LayoutXLM,我们还引入了一个名为 XFUN 的多语言表单理解基准数据集,其中包含 7 种语言(中文、日文、西班牙文、法文、意大利文、德文、葡萄牙文)的表单理解样本,并为每种语言手动标注了键值对。实验结果表明,LayoutXLM 模型在 XFUN 数据集上显著优于现有的 SOTA 跨语言预训练模型。
使用技巧和示例
可以直接将 LayoutXLM 的权重加载到 LayoutLMv2 模型中,如下所示:
from transformers import LayoutLMv2Model
model = LayoutLMv2Model.from_pretrained("microsoft/layoutxlm-base")
请注意,LayoutXLM 有自己的分词器,基于 LayoutXLMTokenizer/LayoutXLMTokenizerFast。你可以按如下方式初始化它:
from transformers import LayoutXLMTokenizer
tokenizer = LayoutXLMTokenizer.from_pretrained("microsoft/layoutxlm-base")
与 LayoutLMv2 类似,你可以使用 LayoutXLMProcessor(它内部依次应用 LayoutLMv2ImageProcessor 和 LayoutXLMTokenizer/LayoutXLMTokenizerFast)来为模型准备所有数据。
由于 LayoutXLM 的架构与 LayoutLMv2 相同,你可以参考 LayoutLMv2 的文档页面 获取所有使用技巧、代码示例和笔记本。
LayoutXLMTokenizer
class transformers.LayoutXLMTokenizer
< 源文件 >( vocab_file bos_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 = -100 only_label_first_subword = True sp_model_kwargs: typing.Optional[dict[str, typing.Any]] = None **kwargs )
参数
- vocab_file (
str
) — 词汇表文件的路径。 - bos_token (
str
, 可选, 默认为"<s>"
) — 序列开始标记,在预训练期间使用。可用作序列分类器标记。使用特殊标记构建序列时,这不是用于序列开始的标记。使用的标记是
cls_token
。 - eos_token (
str
, 可选, 默认为"</s>"
) — 序列结束标记。使用特殊标记构建序列时,这不是用于序列结束的标记。使用的标记是
sep_token
。 - sep_token (
str
, 可选, 默认为"</s>"
) — 分隔符标记,用于从多个序列构建一个序列,例如用于序列分类的两个序列,或用于问答的文本和问题。它也用作使用特殊标记构建的序列的最后一个标记。 - cls_token (
str
, 可选, 默认为"<s>"
) — 分类器标记,用于序列分类(对整个序列进行分类,而不是逐个标记分类)。当使用特殊标记构建序列时,它是序列的第一个标记。 - unk_token (
str
, 可选, 默认为"<unk>"
) — 未知标记。不在词汇表中的标记无法转换为 ID,将被设置为此标记。 - pad_token (
str
, 可选, 默认为"<pad>"
) — 用于填充的标记,例如在批处理不同长度的序列时使用。 - mask_token (
str
, 可选, 默认为"<mask>"
) — 用于掩盖值的标记。这是在使用掩码语言建模训练此模型时使用的标记。这是模型将尝试预测的标记。 - cls_token_box (
list[int]
, 可选, 默认为[0, 0, 0, 0]
) — 特殊 [CLS] 标记使用的边界框。 - sep_token_box (
list[int]
, 可选, 默认为[1000, 1000, 1000, 1000]
) — 特殊 [SEP] 标记使用的边界框。 - pad_token_box (
list[int]
, 可选, 默认为[0, 0, 0, 0]
) — 特殊 [PAD] 标记使用的边界框。 - pad_token_label (
int
, 可选, 默认为 -100) — 用于填充标记的标签。默认为 -100,即 PyTorch 的 CrossEntropyLoss 中的ignore_index
。 - only_label_first_subword (
bool
, 可选, 默认为True
) — 在提供词级别标签的情况下,是否只标记第一个子词。 - sp_model_kwargs (
dict
, 可选) — 将传递给SentencePieceProcessor.__init__()
方法。可使用 SentencePiece 的 Python 包装器 来设置以下内容:-
enable_sampling
:启用子词正则化。 -
nbest_size
:Unigram 的采样参数。对 BPE-Dropout 无效。nbest_size = {0,1}
:不执行采样。nbest_size > 1
:从 nbest_size 个结果中采样。nbest_size < 0
:假设 nbest_size 是无限的,并使用前向过滤-后向采样算法从所有假设(格)中采样。
-
alpha
:Unigram 采样的平滑参数,以及 BPE-dropout 的合并操作的丢弃概率。
-
- sp_model (
SentencePieceProcessor
) — 用于每次转换(字符串、标记和 ID)的 SentencePiece 处理器。
改编自 RobertaTokenizer 和 XLNetTokenizer。基于 SentencePiece。
此分词器继承自 PreTrainedTokenizer,其中包含大多数主要方法。用户应参考此超类以获取有关这些方法的更多信息。
__call__
< 源文件 >( text: typing.Union[str, list[str], list[list[str]]] text_pair: typing.Union[list[str], list[list[str]], NoneType] = None boxes: typing.Union[list[list[int]], list[list[list[int]]], NoneType] = None word_labels: typing.Union[list[int], list[list[int]], NoneType] = None add_special_tokens: bool = True padding: typing.Union[bool, str, transformers.utils.generic.PaddingStrategy] = False truncation: typing.Union[bool, str, transformers.tokenization_utils_base.TruncationStrategy] = None max_length: typing.Optional[int] = None stride: int = 0 pad_to_multiple_of: typing.Optional[int] = None padding_side: typing.Optional[str] = None return_tensors: typing.Union[str, transformers.utils.generic.TensorType, NoneType] = None return_token_type_ids: typing.Optional[bool] = None return_attention_mask: typing.Optional[bool] = None return_overflowing_tokens: bool = False return_special_tokens_mask: bool = False return_offsets_mapping: bool = False return_length: bool = False verbose: 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 等标记分类任务)。 - 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
参数指定的最大长度,如果未提供该参数,则截断到模型的最大可接受输入长度。如果提供了一对序列(或一批序列对),这将逐个标记地进行截断,从最长的序列中移除一个标记。'only_first'
:截断到由max_length
参数指定的最大长度,如果未提供该参数,则截断到模型的最大可接受输入长度。如果提供了一对序列(或一批序列对),这将只截断第一个序列。'only_second'
:截断到由max_length
参数指定的最大长度,如果未提供该参数,则截断到模型的最大可接受输入长度。如果提供了一对序列(或一批序列对),这将只截断第二个序列。False
或'do_not_truncate'
(默认):不截断(即可以输出序列长度大于模型最大可接受输入大小的批次)。
- max_length (
int
, 可选) — 控制截断/填充参数使用的最大长度。如果未设置或设置为
None
,则在截断/填充参数需要最大长度时,将使用预定义的模型最大长度。如果模型没有特定的最大输入长度(如 XLNet),则会停用截断/填充到最大长度的功能。 - stride (
int
, 可选, 默认为 0) — 如果与max_length
一起设置,当return_overflowing_tokens=True
时返回的溢出标记将包含一些来自返回的截断序列末尾的标记,以便在截断和溢出序列之间提供一些重叠。此参数的值定义了重叠标记的数量。 - pad_to_multiple_of (
int
, 可选) — 如果设置,将把序列填充到所提供值的倍数。这对于在计算能力>= 7.5
(Volta) 的 NVIDIA 硬件上启用 Tensor Cores 特别有用。 - return_tensors (
str
或 TensorType, 可选) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值为:'tf'
:返回 TensorFlowtf.constant
对象。'pt'
:返回 PyTorchtorch.Tensor
对象。'np'
:返回 Numpynp.ndarray
对象。
- return_token_type_ids (
bool
, 可选) — 是否返回标记类型 ID。如果保留默认值,将根据特定分词器的默认设置返回标记类型 ID,该设置由return_outputs
属性定义。 - return_attention_mask (
bool
, 可选) — 是否返回注意力掩码。如果保留默认值,将根据特定分词器的默认设置返回注意力掩码,该设置由return_outputs
属性定义。 - return_overflowing_tokens (
bool
, 可选, 默认为False
) — 是否返回溢出的标记序列。如果提供了一对输入 ID 序列(或一批序列对)并设置truncation_strategy = longest_first
或True
,则会引发错误而不是返回溢出标记。 - return_special_tokens_mask (
bool
, 可选, 默认为False
) — 是否返回特殊标记掩码信息。 - return_offsets_mapping (
bool
, 可选, 默认为False
) — 是否为每个标记返回(char_start, char_end)
。这仅在继承自 PreTrainedTokenizerFast 的快速分词器上可用,如果使用 Python 的分词器,此方法将引发
NotImplementedError
。 - return_length (
bool
, 可选, 默认为False
) — 是否返回编码输入的长度。 - verbose (
bool
, 可选, 默认为True
) — 是否打印更多信息和警告。 - **kwargs — 传递给
self.tokenize()
方法
一个 BatchEncoding,包含以下字段:
-
input_ids — 要输入到模型中的标记 ID 列表。
-
bbox — 待输入模型的边界框列表。
-
token_type_ids — 要输入到模型中的标记类型 ID 列表(当
return_token_type_ids=True
或如果 *“token_type_ids”* 在self.model_input_names
中时)。 -
attention_mask — 指定模型应关注哪些标记的索引列表(当
return_attention_mask=True
或如果 *“attention_mask”* 在self.model_input_names
中时)。 -
labels — 待输入模型的标签列表。(当指定
word_labels
时)。 -
overflowing_tokens — 溢出标记序列列表(当指定
max_length
且return_overflowing_tokens=True
时)。 -
num_truncated_tokens — 截断标记的数量(当指定
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: list token_ids_1: typing.Optional[list[int]] = None ) → list[int]
通过连接和添加特殊 token,为序列分类任务从序列或序列对构建模型输入。XLM-RoBERTa 序列的格式如下:
- 单个序列:
<s> X </s>
- 序列对:
<s> A </s></s> B </s>
get_special_tokens_mask
< source >( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None already_has_special_tokens: bool = False ) → list[int]
从没有添加特殊标记的标记列表中检索序列ID。此方法在使用分词器prepare_for_model
方法添加特殊标记时调用。
create_token_type_ids_from_sequences
< source >( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None ) → list[int]
根据传入的两个序列创建用于序列对分类任务的掩码。XLM-RoBERTa 不使用 token 类型 ID,因此返回一个全零列表。
LayoutXLMTokenizerFast
class transformers.LayoutXLMTokenizerFast
< source >( vocab_file = None tokenizer_file = None bos_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 = -100 only_label_first_subword = True **kwargs )
参数
- vocab_file (
str
) — 词汇表文件的路径。 - bos_token (
str
, 可选, 默认为"<s>"
) — 预训练期间使用的序列开始标记。可用作序列分类器标记。当使用特殊标记构建序列时,这不是用于序列开始的标记。使用的标记是
cls_token
。 - eos_token (
str
, 可选, 默认为"</s>"
) — 序列结束标记。当使用特殊标记构建序列时,这不是用于序列结束的标记。使用的标记是
sep_token
。 - sep_token (
str
, 可选, 默认为"</s>"
) — 分隔符标记,用于从多个序列构建一个序列,例如,用于序列分类的两个序列,或用于问答的文本和问题。它也用作使用特殊标记构建的序列的最后一个标记。 - cls_token (
str
, 可选, 默认为"<s>"
) — 分类器标记,用于序列分类(对整个序列进行分类,而不是逐个标记分类)。当使用特殊标记构建序列时,它是序列的第一个标记。 - unk_token (
str
, 可选, 默认为"<unk>"
) — 未知标记。不在词汇表中的标记无法转换为 ID,将被设置为此标记。 - pad_token (
str
, 可选, 默认为"<pad>"
) — 用于填充的标记,例如在批处理不同长度的序列时使用。 - mask_token (
str
, 可选, 默认为"<mask>"
) — 用于掩码值的标记。这是使用掩码语言建模训练此模型时使用的标记。这是模型将尝试预测的标记。 - cls_token_box (
list[int]
, 可选, 默认为[0, 0, 0, 0]
) — 特殊 [CLS] 标记使用的边界框。 - sep_token_box (
list[int]
, 可选, 默认为[1000, 1000, 1000, 1000]
) — 特殊 [SEP] 标记使用的边界框。 - pad_token_box (
list[int]
, 可选, 默认为[0, 0, 0, 0]
) — 特殊 [PAD] 标记使用的边界框。 - pad_token_label (
int
, 可选, 默认为 -100) — 用于填充标记的标签。默认为 -100,这是 PyTorch CrossEntropyLoss 的 `ignore_index`。 - only_label_first_subword (
bool
, 可选, 默认为True
) — 在提供单词标签的情况下,是否只标记第一个子词。 - additional_special_tokens (
list[str]
, 可选, 默认为["<s>NOTUSED", "</s>NOTUSED"]
) — 分词器使用的额外特殊标记。
构建一个“快速”的 LayoutXLM 分词器(由 HuggingFace 的 *tokenizers* 库支持)。改编自 RobertaTokenizer 和 XLNetTokenizer。基于 BPE。
该分词器继承自 PreTrainedTokenizerFast,其中包含了大部分主要方法。用户应参考此超类以获取有关这些方法的更多信息。
__call__
< source >( text: typing.Union[str, list[str], list[list[str]]] text_pair: typing.Union[list[str], list[list[str]], NoneType] = None boxes: typing.Union[list[list[int]], list[list[list[int]]], NoneType] = None word_labels: typing.Union[list[int], list[list[int]], NoneType] = None add_special_tokens: bool = True padding: typing.Union[bool, str, transformers.utils.generic.PaddingStrategy] = False truncation: typing.Union[bool, str, transformers.tokenization_utils_base.TruncationStrategy] = None max_length: typing.Optional[int] = None stride: int = 0 pad_to_multiple_of: typing.Optional[int] = None padding_side: typing.Optional[str] = None return_tensors: typing.Union[str, transformers.utils.generic.TensorType, NoneType] = None return_token_type_ids: typing.Optional[bool] = None return_attention_mask: typing.Optional[bool] = None return_overflowing_tokens: bool = False return_special_tokens_mask: bool = False return_offsets_mapping: bool = False return_length: bool = False verbose: 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)。 - 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
参数指定的最大长度,如果未提供该参数,则截断到模型的最大可接受输入长度。这将逐个标记地截断,如果提供了一对序列(或一批序列对),则从最长的序列中移除一个标记。'only_first'
:截断到由max_length
参数指定的最大长度,如果未提供该参数,则截断到模型的最大可接受输入长度。如果提供了一对序列(或一批序列对),则只会截断第一个序列。'only_second'
:截断到由max_length
参数指定的最大长度,如果未提供该参数,则截断到模型的最大可接受输入长度。如果提供了一对序列(或一批序列对),则只会截断第二个序列。False
或'do_not_truncate'
(默认):不进行截断(即可以输出序列长度大于模型最大可接受输入大小的批次)。
- max_length (
int
, 可选) — 控制截断/填充参数使用的最大长度。如果未设置或设置为
None
,则如果截断/填充参数需要最大长度,将使用预定义的模型最大长度。如果模型没有特定的最大输入长度(如 XLNet),则截断/填充到最大长度将被停用。 - stride (
int
, 可选, 默认为 0) — 如果与max_length
一起设置为一个数字,当return_overflowing_tokens=True
时返回的溢出标记将包含一些来自返回的截断序列末尾的标记,以便在截断和溢出序列之间提供一些重叠。此参数的值定义了重叠标记的数量。 - pad_to_multiple_of (
int
, 可选) — 如果设置,将序列填充到所提供值的倍数。这对于在计算能力>= 7.5
(Volta) 的 NVIDIA 硬件上启用 Tensor Cores 特别有用。 - return_tensors (
str
或 TensorType, 可选) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值为:'tf'
:返回 TensorFlowtf.constant
对象。'pt'
:返回 PyTorchtorch.Tensor
对象。'np'
:返回 Numpynp.ndarray
对象。
- return_token_type_ids (
bool
, 可选) — 是否返回标记类型 ID。如果保留默认值,将根据特定分词器的默认设置返回标记类型 ID,该设置由return_outputs
属性定义。 - return_attention_mask (
bool
, 可选) — 是否返回注意力掩码。如果保留默认值,将根据特定分词器的默认设置返回注意力掩码,该设置由return_outputs
属性定义。 - return_overflowing_tokens (
bool
, 可选, 默认为False
) — 是否返回溢出的标记序列。如果提供了一对输入 ID 序列(或一批序列对),并且 `truncation_strategy = longest_first` 或 `True`,则会引发错误,而不是返回溢出标记。 - return_special_tokens_mask (
bool
, 可选, 默认为False
) — 是否返回特殊标记掩码信息。 - return_offsets_mapping (
bool
, 可选, 默认为False
) — 是否为每个标记返回 `(char_start, char_end)`。这仅在继承自 PreTrainedTokenizerFast 的快速分词器上可用,如果使用 Python 的分词器,此方法将引发
NotImplementedError
。 - return_length (
bool
, 可选, 默认为False
) — 是否返回编码输入的长度。 - verbose (
bool
, 可选, 默认为True
) — 是否打印更多信息和警告。 - **kwargs — 传递给
self.tokenize()
方法
一个 BatchEncoding,包含以下字段:
-
input_ids — 要输入到模型中的标记 ID 列表。
-
bbox — 待输入模型的边界框列表。
-
token_type_ids — 要输入到模型中的标记类型 ID 列表(当
return_token_type_ids=True
或如果 *“token_type_ids”* 在self.model_input_names
中时)。 -
attention_mask — 指定模型应关注哪些标记的索引列表(当
return_attention_mask=True
或如果 *“attention_mask”* 在self.model_input_names
中时)。 -
labels — 待输入模型的标签列表。(当指定
word_labels
时)。 -
overflowing_tokens — 溢出标记序列列表(当指定
max_length
且return_overflowing_tokens=True
时)。 -
num_truncated_tokens — 截断标记的数量(当指定
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
时)。
对一个或多个序列或一对序列进行分词并准备输入模型的主要方法,其中包含词级别的归一化边界框和可选标签。
LayoutXLMProcessor
class transformers.LayoutXLMProcessor
< 源 >( image_processor = None tokenizer = None **kwargs )
参数
- image_processor (
LayoutLMv2ImageProcessor
, 可选) — LayoutLMv2ImageProcessor 的一个实例。图像处理器是必需的输入。 - tokenizer (
LayoutXLMTokenizer
或LayoutXLMTokenizerFast
, 可选) — LayoutXLMTokenizer 或 LayoutXLMTokenizerFast 的一个实例。分词器是必需的输入。
构建一个 LayoutXLM 处理器,它将 LayoutXLM 图像处理器和 LayoutXLM 分词器组合成一个单一的处理器。
LayoutXLMProcessor 提供了为模型准备数据所需的所有功能。
它首先使用 LayoutLMv2ImageProcessor 将文档图像调整为固定大小,并可选择应用 OCR 来获取单词和归一化的边界框。然后将这些信息提供给 LayoutXLMTokenizer 或 LayoutXLMTokenizerFast,后者将单词和边界框转换为词元级别的 `input_ids`、`attention_mask`、`token_type_ids` 和 `bbox`。此外,还可以提供整数 `word_labels`,这些标签会为词元分类任务(如 FUNSD、CORD)转换为词元级别的 `labels`。
__call__
< 源 >( images text: typing.Union[str, list[str], list[list[str]]] = None text_pair: typing.Union[list[str], list[list[str]], NoneType] = None boxes: typing.Union[list[list[int]], list[list[list[int]]], NoneType] = None word_labels: typing.Union[list[int], list[list[int]], NoneType] = None add_special_tokens: bool = True padding: typing.Union[bool, str, transformers.utils.generic.PaddingStrategy] = False truncation: typing.Union[bool, str, transformers.tokenization_utils_base.TruncationStrategy] = None max_length: typing.Optional[int] = None stride: int = 0 pad_to_multiple_of: typing.Optional[int] = None return_token_type_ids: typing.Optional[bool] = None return_attention_mask: typing.Optional[bool] = None return_overflowing_tokens: bool = False return_special_tokens_mask: bool = False return_offsets_mapping: bool = False return_length: bool = False verbose: bool = True return_tensors: typing.Union[str, transformers.utils.generic.TensorType, NoneType] = None **kwargs )
该方法首先将 `images` 参数转发给 `~LayoutLMv2ImagePrpcessor.__call__`。如果 `LayoutLMv2ImagePrpcessor` 在初始化时设置 `apply_ocr` 为 `True`,它会将获取到的单词和边界框以及其他参数传递给 call(),并返回输出以及调整大小后的 `images`。如果 `LayoutLMv2ImagePrpcessor` 在初始化时设置 `apply_ocr` 为 `False`,它会将用户指定的单词(`text`/`text_pair`)和 `boxes` 以及其他参数传递给 [__call__()](/docs/transformers/v4.53.3/zh/model_doc/layoutxlm#transformers.LayoutXLMTokenizer.__call__),并返回输出以及调整大小后的 `images`。
有关更多信息,请参阅上述两种方法的文档字符串。