Transformers 文件

LayoutXLM

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

LayoutXLM

PyTorch

概述

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 跨語言預訓練模型。

此模型由 nielsr 貢獻。原始程式碼可以在這裡找到。

使用技巧和示例

可以直接將 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(它內部依次應用 LayoutLMv2ImageProcessorLayoutXLMTokenizer/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 處理器。

改編自 RobertaTokenizerXLNetTokenizer。基於 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, strPaddingStrategy, 可選, 預設為 False) — 啟用並控制填充。接受以下值:

    • True'longest':填充到批次中最長的序列(如果只提供單個序列則不填充)。
    • 'max_length':填充到由 max_length 引數指定的最大長度,如果未提供該引數,則填充到模型的最大可接受輸入長度。
    • False'do_not_pad' (預設):不填充(即可以輸出包含不同長度序列的批次)。
  • truncation (bool, strTruncationStrategy, 可選, 預設為 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 (strTensorType, 可選) — 如果設定,將返回張量而不是 Python 整數列表。可接受的值為:

    • 'tf':返回 TensorFlow tf.constant 物件。
    • 'pt':返回 PyTorch torch.Tensor 物件。
    • 'np':返回 Numpy np.ndarray 物件。
  • return_token_type_ids (bool, 可選) — 是否返回標記型別 ID。如果保留預設值,將根據特定分詞器的預設設定返回標記型別 ID,該設定由 return_outputs 屬性定義。

    什麼是標記型別 ID?

  • return_attention_mask (bool, 可選) — 是否返回注意力掩碼。如果保留預設值,將根據特定分詞器的預設設定返回注意力掩碼,該設定由 return_outputs 屬性定義。

    什麼是注意力掩碼?

  • return_overflowing_tokens (bool, 可選, 預設為 False) — 是否返回溢位的標記序列。如果提供了一對輸入 ID 序列(或一批序列對)並設定 truncation_strategy = longest_firstTrue,則會引發錯誤而不是返回溢位標記。
  • 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

一個 BatchEncoding,包含以下欄位:

  • input_ids — 要輸入到模型中的標記 ID 列表。

    什麼是輸入 ID?

  • bbox — 待輸入模型的邊界框列表。

  • token_type_ids — 要輸入到模型中的標記型別 ID 列表(當 return_token_type_ids=True 或如果 *“token_type_ids”* 在 self.model_input_names 中時)。

    什麼是標記型別 ID?

  • attention_mask — 指定模型應關注哪些標記的索引列表(當 return_attention_mask=True 或如果 *“attention_mask”* 在 self.model_input_names 中時)。

    什麼是注意力掩碼?

  • labels — 待輸入模型的標籤列表。(當指定 word_labels 時)。

  • overflowing_tokens — 溢位標記序列列表(當指定 max_lengthreturn_overflowing_tokens=True 時)。

  • num_truncated_tokens — 截斷標記的數量(當指定 max_lengthreturn_overflowing_tokens=True 時)。

  • special_tokens_mask — 0 和 1 的列表,其中 1 表示新增的特殊標記,0 表示常規序列標記(當 add_special_tokens=Truereturn_special_tokens_mask=True 時)。

  • length — 輸入的長度(當 return_length=True 時)。

對一個或多個序列或一對序列進行分詞並準備輸入模型的主要方法,其中包含詞級別的歸一化邊界框和可選標籤。

build_inputs_with_special_tokens

< >

( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None ) list[int]

引數

  • token_ids_0 (list[int]) — 將要新增特殊標記的 ID 列表。
  • token_ids_1 (list[int], 可選) — 用於序列對的可選的第二個 ID 列表。

返回

list[int]

帶有適當特殊標記的輸入ID列表。

透過連線和新增特殊 token,為序列分類任務從序列或序列對構建模型輸入。XLM-RoBERTa 序列的格式如下:

  • 單個序列:<s> X </s>
  • 序列對:<s> A </s></s> B </s>

get_special_tokens_mask

< >

( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None already_has_special_tokens: bool = False ) list[int]

引數

  • token_ids_0 (list[int]) — ID 列表。
  • token_ids_1 (list[int], 可選) — 用於序列對的可選的第二個 ID 列表。
  • already_has_special_tokens (bool, 可選, 預設為 False) — 標記列表是否已經為模型格式化了特殊標記。

返回

list[int]

一個範圍為 [0, 1] 的整數列表:1 表示特殊標記,0 表示序列標記。

從沒有新增特殊標記的標記列表中檢索序列ID。此方法在使用分詞器prepare_for_model方法新增特殊標記時呼叫。

create_token_type_ids_from_sequences

< >

( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None ) list[int]

引數

  • token_ids_0 (list[int]) — ID 列表。
  • token_ids_1 (list[int], 可選) — 用於序列對的可選的第二個 ID 列表。

返回

list[int]

零列表。

根據傳入的兩個序列建立用於序列對分類任務的掩碼。XLM-RoBERTa 不使用 token 型別 ID,因此返回一個全零列表。

save_vocabulary

< >

( save_directory: str filename_prefix: typing.Optional[str] = None )

LayoutXLMTokenizerFast

class transformers.LayoutXLMTokenizerFast

< >

( 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* 庫支援)。改編自 RobertaTokenizerXLNetTokenizer。基於 BPE

該分詞器繼承自 PreTrainedTokenizerFast,其中包含了大部分主要方法。使用者應參考此超類以獲取有關這些方法的更多資訊。

__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, strPaddingStrategy, 可選, 預設為 False) — 啟用和控制填充。接受以下值:

    • True'longest':填充到批次中最長的序列(如果只提供單個序列,則不進行填充)。
    • 'max_length':填充到由 max_length 引數指定的最大長度,如果未提供該引數,則填充到模型的最大可接受輸入長度。
    • False'do_not_pad' (預設):不進行填充(即可以輸出具有不同長度序列的批次)。
  • truncation (bool, strTruncationStrategy, 可選, 預設為 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 (strTensorType, 可選) — 如果設定,將返回張量而不是 Python 整數列表。可接受的值為:

    • 'tf':返回 TensorFlow tf.constant 物件。
    • 'pt':返回 PyTorch torch.Tensor 物件。
    • 'np':返回 Numpy np.ndarray 物件。
  • return_token_type_ids (bool, 可選) — 是否返回標記型別 ID。如果保留預設值,將根據特定分詞器的預設設定返回標記型別 ID,該設定由 return_outputs 屬性定義。

    什麼是標記型別 ID?

  • 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

一個 BatchEncoding,包含以下欄位:

  • input_ids — 要輸入到模型中的標記 ID 列表。

    什麼是輸入 ID?

  • bbox — 待輸入模型的邊界框列表。

  • token_type_ids — 要輸入到模型中的標記型別 ID 列表(當 return_token_type_ids=True 或如果 *“token_type_ids”* 在 self.model_input_names 中時)。

    什麼是標記型別 ID?

  • attention_mask — 指定模型應關注哪些標記的索引列表(當 return_attention_mask=True 或如果 *“attention_mask”* 在 self.model_input_names 中時)。

    什麼是注意力掩碼?

  • labels — 待輸入模型的標籤列表。(當指定 word_labels 時)。

  • overflowing_tokens — 溢位標記序列列表(當指定 max_lengthreturn_overflowing_tokens=True 時)。

  • num_truncated_tokens — 截斷標記的數量(當指定 max_lengthreturn_overflowing_tokens=True 時)。

  • special_tokens_mask — 0 和 1 的列表,其中 1 表示新增的特殊標記,0 表示常規序列標記(當 add_special_tokens=Truereturn_special_tokens_mask=True 時)。

  • length — 輸入的長度(當 return_length=True 時)。

對一個或多個序列或一對序列進行分詞並準備輸入模型的主要方法,其中包含詞級別的歸一化邊界框和可選標籤。

LayoutXLMProcessor

class transformers.LayoutXLMProcessor

< >

( image_processor = None tokenizer = None **kwargs )

引數

構建一個 LayoutXLM 處理器,它將 LayoutXLM 影像處理器和 LayoutXLM 分詞器組合成一個單一的處理器。

LayoutXLMProcessor 提供了為模型準備資料所需的所有功能。

它首先使用 LayoutLMv2ImageProcessor 將文件影像調整為固定大小,並可選擇應用 OCR 來獲取單詞和歸一化的邊界框。然後將這些資訊提供給 LayoutXLMTokenizerLayoutXLMTokenizerFast,後者將單詞和邊界框轉換為詞元級別的 `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`。

有關更多資訊,請參閱上述兩種方法的文件字串。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.