# LayoutLMV2

## 概要

LayoutLMV2モデルは、Yang Xu、Yiheng Xu、Tengchao Lv、Lei Cui、Furu Wei、Guoxin Wang、Yijuan Lu、Dinei Florencio、Cha Zhang、Wanxiang Che、Min Zhang、Lidong Zhou による [LayoutLMv2: Multi-modal Pre-training for Visually-Rich Document Understanding](https://huggingface.co/papers/2012.14740) で提案されました。LayoutLMV2は [LayoutLM](layoutlm) を改良し、複数のドキュメント画像理解ベンチマークで最先端の結果を達成します:

- スキャンされた文書からの情報抽出: [FUNSD](https://guillaumejaume.github.io/FUNSD/) データセット（30,000 語以上のアノテーション付きフォーム 199 件で構成されるコレクション）、[CORD](https://github.com/clovaai/cord) データセット（トレーニング用レシート 800 件、バリデーション用 100 件、テスト用 100 件で構成されるコレクション）、[SROIE](https://rrc.cvc.uab.es/?ch=13) データセット（トレーニング用レシート 626 件、テスト用レシート 347 件で構成されるコレクション）、および [Kleister-NDA](https://github.com/applicaai/kleister-nda) データセット（EDGAR データベースからの秘密保持契約のコレクションで、トレーニング用文書 254 件、バリデーション用文書 83 件、テスト用文書 203 件を含む）。
- ドキュメント画像分類: [RVL-CDIP](https://www.cs.cmu.edu/~aharley/rvl-cdip/) データセット(16クラスに分類される40万枚の画像のコレクション)。
- ドキュメントビジュアル質問応答: [DocVQA](https://huggingface.co/papers/2007.00398) データセット(12,000 枚以上のドキュメント画像に対して定義された 50,000 件の質問のコレクション)。

論文の抄録は以下の通りです。

*テキストとレイアウトの事前学習は、効果的なモデルアーキテクチャと、大規模なラベルなしのスキャン/デジタルネイティブ文書という利点により、視覚的に豊かな文書理解タスクの多様な場面で有効であることが示されています。本論文では、マルチモーダルフレームワークにおいてテキスト、レイアウト、画像を事前学習することで、LayoutLMv2を提案します。ここでは、新しいモデルアーキテクチャと事前学習タスクが活用されています。具体的には、LayoutLMv2は事前学習段階において、既存のマスクされた視覚言語モデリングタスクに加えて、新しいテキスト-画像アライメントタスクとテキスト-画像マッチングタスクを使用し、クロスモーダリティの相互作用をより良く学習します。同時に、Transformerアーキテクチャに空間認識型自己注意機構を統合することで、モデルは異なるテキストブロック間の相対的な位置関係を完全に理解できるようになります。実験結果は、LayoutLMv2が強力なベースラインを上回り、FUNSD (0.7895 -> 0.8420)、CORD (0.9493 -> 0.9601)、SROIE (0.9524 -> 0.9781)、Kleister-NDA (0.834 -> 0.852)、RVL-CDIP (0.9443 -> 0.9564)、DocVQA (0.7295 -> 0.8672) を含む、幅広い下流の視覚的に豊かな文書理解タスクで新たな最良の結果を達成することを示しています。事前学習済みの LayoutLMv2 モデルは、この https URL で公開されています。*

LayoutLMv2 は `detectron2`、`torchvision`、`tesseract` に依存しています。これらをインストールするには、次のコマンドを実行してください。

```bash
python -m pip install 'git+https://github.com/facebookresearch/detectron2.git'
python -m pip install torchvision tesseract
```

（LayoutLMv2向けの開発を行われている場合、doctestsをパスするにはこれらのパッケージのインストールも必要です。）

## 使用のコツ

- LayoutLMv1とLayoutLMv2の主な違いは、後者が事前学習の段階で視覚埋め込みを組み込んでいる点です（LayoutLMv1はファインチューニングの段階でのみ視覚埋め込みを追加します）。
- LayoutLMv2 は、自己アテンション層のアテンションスコアに、相対的な1次元アテンションバイアスと空間的な2次元アテンションバイアスの両方を追加します。詳細は、[論文](https://huggingface.co/papers/2012.14740)の5ページ目に記載されています。
- LayoutLMv2モデルをRVL-CDIP、FUNSD、DocVQA、CORDで使用するデモノートブックは、[こちら](https://github.com/NielsRogge/Transformers-Tutorials)で確認できます。
- LayoutLMv2は、ビジュアルバックボーンとしてFacebook AIの[Detectron2](https://github.com/facebookresearch/detectron2/)パッケージを使用しています。インストール手順については、[こちら](https://detectron2.readthedocs.io/en/latest/tutorials/install.html)を参照してください。
- `input_ids`に加えて、[forward()](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Model.forward)は`image`と`bbox`という2つの追加の入力を期待します。`image`入力は、テキストトークンが出現する元のドキュメント画像に対応します。モデルは、各ドキュメント画像のサイズが224x224であることを期待します。つまり、ドキュメント画像のバッチがある場合、`image`は形状が(batch_size, 3, 224, 224)のテンソルである必要があります。これは`torch.Tensor`または`Detectron2.structures.ImageList`のいずれかです。モデルが処理を行うため、チャネルの正規化は不要です。重要な点として、ビジュアルバックボーンは、Detectron2のすべてのモデルがBGR形式で事前学習されているため、RGBではなくBGRチャネルを期待します。`bbox`入力は、入力テキストトークンのバウンディングボックス（つまり2D位置）です。これは[LayoutLMModel](/docs/transformers/main/ja/model_doc/layoutlm#transformers.LayoutLMModel)と同一です。これらは、Googleの[Tesseract](https://github.com/tesseract-ocr/tesseract)（[Pythonラッパー](https://pypi.org/project/pytesseract/)が利用可能）などの外部OCRエンジンを使用して取得できます。各バウンディングボックスは(x0, y0, x1, y1)形式であるべきで、(x0, y0)はバウンディングボックスの左上隅の位置に対応し、(x1, y1)は右下隅の位置を表します。なお、まずバウンディングボックスを0-1000のスケールに正規化する必要があります。正規化には、以下の関数を使用できます：

```python
def normalize_bbox(bbox, width, height):
    return [
        int(1000 * (bbox[0] / width)),
        int(1000 * (bbox[1] / height)),
        int(1000 * (bbox[2] / width)),
        int(1000 * (bbox[3] / height)),
    ]
```

ここでは、`width` と `height` は、トークンが出現する元の文書の幅と高さを表します（画像のリサイズ前）。これらは、例えば Python Image Library (PIL) ライブラリを使用して次のように取得できます。

```python
from PIL import Image

image = Image.open(
    "name_of_your_document - can be a png, jpg, etc. of your documents (PDFs must be converted to images)."
)

width, height = image.size
```

ただし、このモデルには、モデル用のデータを直接準備するために使用できる、まったく新しい[LayoutLMv2Processor](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Processor)が含まれています（内部でOCRを適用します）。詳細は、以下の「使用方法」セクションを参照してください。

- 内部では、[LayoutLMv2Model](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Model) は `image` 入力をビジュアルバックボーンに送り、解像度の低い特徴マップを取得します。この特徴マップの形状は、[LayoutLMv2Config](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Config) の `image_feature_pool_shape` 属性と等しくなります。次に、この特徴マップをフラット化して、画像トークンのシーケンスを取得します。特徴マップのサイズはデフォルトで 7x7 であるため、49 個の画像トークンが得られます。これらはテキストトークンと連結され、Transformer エンコーダーに送られます。つまり、テキストトークンを最大長までパディングした場合、モデルの最終隠れ状態の長さは 512 + 49 = 561 になります。より一般的には、最終隠れ状態の形状は `seq_length` + `image_feature_pool_shape[0]` * `config.image_feature_pool_shape[1]` になります。
- [from_pretrained()](/docs/transformers/main/ja/main_classes/model#transformers.PreTrainedModel.from_pretrained)を呼び出すと、初期化されていないパラメータ名の長いリストを含む警告が表示されます。これらのパラメータはバッチ正規化の統計量であり、カスタムデータセットでのファインチューニング時に値が設定されるため、問題はありません。
- 分散環境でモデルをトレーニングする場合は、ビジュアルバックボーンのバッチ正規化層を正しく同期するために、モデルに対して`synchronize_batch_norm`を呼び出すことを確認してください。

さらに、LayoutLMv2の多言語版であるLayoutXLMもあります。詳細は[LayoutXLMのドキュメントページ](layoutxlm)を参照してください。

## リソース

LayoutLMv2の入門を支援するための、Hugging Face公式およびコミュニティ（🌎で示されます）のリソースのリストです。ここにリソースを掲載していただくことを希望される場合は、Pull Requestをオープンしてください。レビューいたします。リソースは、既存のリソースと重複するのではなく、新しい内容をデモンストレーションするものが望ましいです。

- [RVL-CDIPデータセットでテキスト分類のためにLayoutLMv2をファインチューニングする方法](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/LayoutLMv2/RVL-CDIP/Fine_tuning_LayoutLMv2ForSequenceClassification_on_RVL_CDIP.ipynb)を解説するノートブックです。
- 関連項目: [テキスト分類タスクガイド](../tasks/sequence_classification)

- DocVQAデータセットでの質問応答タスクのために[LayoutLMv2をファインチューニングする方法](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/LayoutLMv2/DocVQA/Fine_tuning_LayoutLMv2ForQuestionAnswering_on_DocVQA.ipynb)を示すノートブックです。
- 関連項目: [質問応答タスクガイド](../tasks/question_answering)
- 関連項目: [文書質問応答タスクガイド](../tasks/document_question_answering)

- A notebook on how to [finetune LayoutLMv2 for token-classification on CORD dataset](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/LayoutLMv2/CORD/Fine_tuning_LayoutLMv2ForTokenClassification_on_CORD.ipynb).
- FUNSDデータセットでトークン分類タスクのためにLayoutLMv2をファインチューニングする方法を示すノートブックです。[finetune LayoutLMv2 for token-classification on FUNSD dataset](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/LayoutLMv2/FUNSD/Fine_tuning_LayoutLMv2ForTokenClassification_on_FUNSD_using_HuggingFace_Trainer.ipynb)
- 関連項目: [トークン分類タスクガイド](../tasks/token_classification)

## 使用法: LayoutLMv2Processor

モデル用のデータを準備する最も簡単な方法は、[LayoutLMv2Processor](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Processor)を使用することです。これは内部で画像プロセッサ（[LayoutLMv2ImageProcessor](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2ImageProcessor)）とトークナイザ（[LayoutLMv2Tokenizer](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Tokenizer)または[LayoutLMv2TokenizerFast](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Tokenizer)）を組み合わせます。画像プロセッサは画像モダリティを、トークナイザはテキストモダリティを処理します。プロセッサは両方を組み合わせるため、LayoutLMv2のようなマルチモーダルモデルに最適です。なお、1つのモダリティのみを処理したい場合は、両方を個別に使用することもできます。

```python
from transformers import LayoutLMv2ImageProcessor, LayoutLMv2Processor, LayoutLMv2TokenizerFast

image_processor = LayoutLMv2ImageProcessor()  # apply_ocr is set to True by default
tokenizer = LayoutLMv2TokenizerFast.from_pretrained("microsoft/layoutlmv2-base-uncased")
processor = LayoutLMv2Processor(image_processor, tokenizer)
```

要するに、[LayoutLMv2Processor](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Processor) にドキュメント画像（および追加データ）を渡すだけで、モデルが期待する入力が作成されます。内部では、プロセッサはまず [LayoutLMv2ImageProcessor](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2ImageProcessor) を使用して画像に OCR を適用し、単語のリストと正規化されたバウンディングボックスを取得するとともに、画像を指定されたサイズにリサイズして `image` 入力を生成します。その後、単語と正規化されたバウンディングボックスは [LayoutLMv2Tokenizer](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Tokenizer) または [LayoutLMv2TokenizerFast](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Tokenizer) に渡され、トークンレベルの `input_ids`、`attention_mask`、`token_type_ids`、`bbox` に変換されます。オプションとして、プロセッサに単語ラベルを渡すこともでき、これらはトークンレベルの `labels` に変換されます。

[LayoutLMv2Processor](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Processor) は、内部で Google の Tesseract OCR エンジンの Python ラッパーである [PyTesseract](https://pypi.org/project/pytesseract/) を使用しています。なお、ご自身の好みに応じた OCR エンジンを引き続き使用し、単語と正規化されたボックスを自分で提供することも可能です。その場合は、[LayoutLMv2ImageProcessor](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2ImageProcessor) を `apply_ocr` を `False` に設定して初期化する必要があります。

プロセッサがサポートするユースケースは合計5つあります。以下にすべてを列挙します。これらのユースケースは、バッチ入力および非バッチ入力の両方で動作します（ここでは非バッチ入力を例として説明します）。

**ユースケース1: ドキュメント画像分類（学習、推論）+ トークン分類（推論）、apply_ocr = True**

これは最もシンプルなケースで、プロセッサ（実際には画像プロセッサ）が画像に対してOCRを実行し、単語と正規化されたバウンディングボックスを取得します。

```python
from PIL import Image

from transformers import LayoutLMv2Processor

processor = LayoutLMv2Processor.from_pretrained("microsoft/layoutlmv2-base-uncased")

image = Image.open(
    "name_of_your_document - can be a png, jpg, etc. of your documents (PDFs must be converted to images)."
).convert("RGB")
encoding = processor(
    image, return_tensors="pt"
)  # you can also add all tokenizer parameters here such as padding, truncation
print(encoding.keys())
# dict_keys(['input_ids', 'token_type_ids', 'attention_mask', 'bbox', 'image'])
```

**ユースケース2: ドキュメント画像分類（学習、推論）+ トークン分類（推論）、apply_ocr=False**

OCRを自分で実行したい場合は、`apply_ocr`を`False`に設定して画像プロセッサを初期化できます。その場合、プロセッサに単語と対応する（正規化された）バウンディングボックスを自分で提供する必要があります。

```python
from PIL import Image

from transformers import LayoutLMv2Processor

processor = LayoutLMv2Processor.from_pretrained("microsoft/layoutlmv2-base-uncased", revision="no_ocr")

image = Image.open(
    "name_of_your_document - can be a png, jpg, etc. of your documents (PDFs must be converted to images)."
).convert("RGB")
words = ["hello", "world"]
boxes = [[1, 2, 3, 4], [5, 6, 7, 8]]  # make sure to normalize your bounding boxes
encoding = processor(image, words, boxes=boxes, return_tensors="pt").to(model.device)
print(encoding.keys())
# dict_keys(['input_ids', 'token_type_ids', 'attention_mask', 'bbox', 'image'])
```

**ユースケース 3: トークン分類（学習）、apply_ocr=False**

トークン分類タスク（FUNSD、CORD、SROIE、Kleister-NDA など）では、モデルの学習のために対応する単語ラベルを指定することもできます。プロセッサはこれらをトークンレベルの`labels`に変換します。デフォルトでは、単語の最初の wordpiece だけにラベルを付け、残りの wordpiece には -100 を付けます。-100 は PyTorch の CrossEntropyLoss の`ignore_index`です。単語のすべての wordpiece にラベルを付けたい場合は、`only_label_first_subword`を`False`に設定してトークナイザを初期化できます。

```python
from PIL import Image

from transformers import LayoutLMv2Processor

processor = LayoutLMv2Processor.from_pretrained("microsoft/layoutlmv2-base-uncased", revision="no_ocr")

image = Image.open(
    "name_of_your_document - can be a png, jpg, etc. of your documents (PDFs must be converted to images)."
).convert("RGB")
words = ["hello", "world"]
boxes = [[1, 2, 3, 4], [5, 6, 7, 8]]  # make sure to normalize your bounding boxes
word_labels = [1, 2]
encoding = processor(image, words, boxes=boxes, word_labels=word_labels, return_tensors="pt").to(model.device)
print(encoding.keys())
# dict_keys(['input_ids', 'token_type_ids', 'attention_mask', 'bbox', 'labels', 'image'])
```

**ユースケース4: 視覚的質問応答（推論）、apply_ocr=True**

視覚的質問応答タスク（DocVQA など）では、プロセッサーに質問を渡すことができます。デフォルトでは、プロセッサーは画像に対して OCR を適用し、[CLS] question tokens [SEP] word tokens [SEP] を生成します。

```python
from PIL import Image

from transformers import LayoutLMv2Processor

processor = LayoutLMv2Processor.from_pretrained("microsoft/layoutlmv2-base-uncased")

image = Image.open(
    "name_of_your_document - can be a png, jpg, etc. of your documents (PDFs must be converted to images)."
).convert("RGB")
question = "What's his name?"
encoding = processor(image, question, return_tensors="pt").to(model.device)
print(encoding.keys())
# dict_keys(['input_ids', 'token_type_ids', 'attention_mask', 'bbox', 'image'])
```

**ユースケース5: 視覚的質問応答（推論）、apply_ocr=False**

視覚的質問応答タスク（DocVQA など）では、プロセッサーに質問を渡すことができます。OCR を自分で実行したい場合は、プロセッサーに独自の単語と（正規化された）バウンディングボックスを渡すことができます。

```python
from PIL import Image

from transformers import LayoutLMv2Processor

processor = LayoutLMv2Processor.from_pretrained("microsoft/layoutlmv2-base-uncased", revision="no_ocr")

image = Image.open(
    "name_of_your_document - can be a png, jpg, etc. of your documents (PDFs must be converted to images)."
).convert("RGB")
question = "What's his name?"
words = ["hello", "world"]
boxes = [[1, 2, 3, 4], [5, 6, 7, 8]]  # make sure to normalize your bounding boxes
encoding = processor(image, question, words, boxes=boxes, return_tensors="pt").to(model.device)
print(encoding.keys())
# dict_keys(['input_ids', 'token_type_ids', 'attention_mask', 'bbox', 'image'])
```

## LayoutLMv2Config[[transformers.LayoutLMv2Config]]

#### transformers.LayoutLMv2Config[[transformers.LayoutLMv2Config]]

```python
transformers.LayoutLMv2Config(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, vocab_size: int = 30522, hidden_size: int = 768, num_hidden_layers: int = 12, num_attention_heads: int = 12, intermediate_size: int = 3072, hidden_act: str = 'gelu', hidden_dropout_prob: float | int = 0.1, attention_probs_dropout_prob: float | int = 0.1, max_position_embeddings: int = 512, type_vocab_size: int = 2, initializer_range: float = 0.02, layer_norm_eps: float = 1e-12, pad_token_id: int | None = 0, max_2d_position_embeddings: int = 1024, max_rel_pos: int = 128, rel_pos_bins: int = 32, fast_qkv: bool = True, max_rel_2d_pos: int = 256, rel_2d_pos_bins: int = 64, convert_sync_batchnorm: bool = True, image_feature_pool_shape: list[int] | tuple[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 | None = None)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/layoutlmv2/configuration_layoutlmv2.py#L29)

**パラメータ:**

vocab_size (`int`、*任意*、デフォルトは`30522`) : モデルの語彙サイズ。`input_ids`で表現できるトークンの種類数を定義します。

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`) : embeddings、encoder、pooler 内のすべての全結合層における dropout 確率。

attention_probs_dropout_prob (`Union[float, int]`、*任意*、デフォルトは`0.1`) : 注意確率のドロップアウト率。

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`) : layer normalization レイヤーで使用する epsilon。

pad_token_id (`int`, *任意*, デフォルトは `0`) : 語彙内でパディングに使用されるトークン ID。

max_2d_position_embeddings (`int`、*optional*、デフォルトは 1024) : 2D 位置埋め込みが使用される可能性のある最大値です。念のため、通常は大きな値（例: 1024）に設定します。

max_rel_pos (`int`、*optional*、デフォルトは 128) : セルフアテンション機構で使用される相対位置の最大数。

rel_pos_bins (`int`、*任意*、デフォルトは 32) : セルフアテンション機構で使用する相対位置ビンの数。

fast_qkv (`bool`、*任意*、デフォルトは`True`) : セルフアテンション層のクエリ、キー、バリューに単一の行列を使用するかどうか。

max_rel_2d_pos (`int`、*optional*、デフォルトは 256) : セルフアテンション機構における相対 2D 位置の最大数。

rel_2d_pos_bins (`int`、*optional*、デフォルトは 64) : セルフアテンション機構における 2 次元相対位置のビン数です。

convert_sync_batchnorm (`bool`、*任意*、デフォルトは `True`) : バッチ正規化レイヤーを同期バッチ正規化レイヤーに変換するかどうかを指定します。

image_feature_pool_shape (`list[int]`、*optional*、デフォルトは`[7, 7, 256]`) : 平均プーリングされた特徴マップの形状。

coordinate_size (`int`、*任意*、デフォルトは 128) : 座標埋め込みの次元数。

shape_size (`int`、*optional*、デフォルトは 128) : 幅と高さの埋め込みの次元数。

has_relative_attention_bias (`bool`、*任意*、デフォルトは`True`) : セルフアテンション機構で相対アテンションバイアスを使用するかどうか。

has_spatial_attention_bias (`bool`、*任意*、デフォルトは`True`) : セルフアテンション機構で空間アテンションバイアスを使用するかどうか。

has_visual_segment_embedding (`bool`、*任意*、デフォルトは`False`) : 視覚セグメント埋め込みを追加するかどうか。

detectron2_config_args (`dict`, *任意*) : Detectron2 のビジュアルバックボーンの設定引数を含む辞書です。デフォルト値の詳細については、[このファイル](https://github.com/microsoft/unilm/blob/master/layoutlmft/layoutlmft/models/layoutlmv2/detectron2_config.py)を参照してください。

これは [microsoft/layoutlmv2-base-uncased](https://huggingface.co/microsoft/layoutlmv2-base-uncased) と同様の設定をデフォルト値で生成する、LayoutLMv2Model の設定を保存するための設定クラスです。指定された引数に基づいて Layoutlmv2 モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。

設定オブジェクトは [PreTrainedConfig](/docs/transformers/main/ja/main_classes/configuration#transformers.PreTrainedConfig) を継承し、モデルの出力を制御するために使用できます。詳細については、[PreTrainedConfig](/docs/transformers/main/ja/main_classes/configuration#transformers.PreTrainedConfig) のドキュメントを参照してください。

例:

```python
>>> from transformers import LayoutLMv2Config, LayoutLMv2Model

>>> # Initializing a LayoutLMv2 microsoft/layoutlmv2-base-uncased style configuration
>>> configuration = LayoutLMv2Config()

>>> # Initializing a model (with random weights) from the microsoft/layoutlmv2-base-uncased style configuration
>>> model = LayoutLMv2Model(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```

## LayoutLMv2ImageProcessor[[transformers.LayoutLMv2ImageProcessor]]

#### transformers.LayoutLMv2ImageProcessor[[transformers.LayoutLMv2ImageProcessor]]

```python
transformers.LayoutLMv2ImageProcessor(**kwargs: *<class 'transformers.models.layoutlmv2.image_processing_layoutlmv2.LayoutLMv2ImageProcessorKwargs'>)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/layoutlmv2/image_processing_layoutlmv2.py#L118)

**パラメータ:**

do_convert_rgb (`bool`, *kwargs*, *optional*) : 画像を RGB に変換するかどうか。

do_resize (`bool`, *kwargs*, *任意*, デフォルトは `True`) : 画像をリサイズするかどうか。

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*、デフォルト値は `{'height' : 224, 'width': 224}`): モデルへの最大入力サイズを記述します。

default_to_square (`bool`, *kwargs*, *任意*、デフォルトは `True`) : size が整数の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : `center_crop` を適用した後の出力画像のサイズ。

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*、デフォルト値は`2`) : 画像のリサイズ時に使用するリサンプリングフィルタです。これは列挙型`PILImageResampling`のいずれかになります。`do_resize`が`True`に設定されている場合のみ、効果が現れます。

do_rescale (`bool`, *kwargs*, *任意*) : 画像をリスケールするかどうか。

rescale_factor (`float`、*kwargs*、*任意*、デフォルトは`None`) : `do_rescale`が`True`に設定されている場合、画像をリスケールするための係数。

do_normalize (`bool`, *kwargs*, *optional*) : 画像を正規化するかどうかを指定します。

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*) : 正規化に使用する画像の平均値。`do_normalize` が `True` に設定されている場合のみ有効です。

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*) : 正規化に使用する画像の標準偏差。`do_normalize` が `True` に設定されている場合のみ有効です。

do_pad (`bool`, *kwargs*, *任意*) : 画像にパディングを適用するかどうか。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。正確なパディング戦略はモデルによって異なります。

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : 画像をパディングするサイズを`{"height": int, "width" int}`で指定します。前処理に提供されたすべての画像サイズより大きい必要があります。`pad_size`が指定されない場合、バッチ内の最大の幅と高さにパディングされます。`do_pad=True.`の場合にのみ適用されます。

do_center_crop (`bool`, *kwargs*, *optional*) : 画像を中央クロップするかどうか。

data_format (`Union[str, ~image_utils.ChannelDimension]`、*kwargs*、*optional*) : 対応するのは `ChannelDimension.FIRST` のみです。slow processors との互換性のために追加されました。

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *任意*) : 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推論されます。以下のいずれかになります: - `"channels_first"` または `ChannelDimension.FIRST`: (num_channels, height, width) 形式の画像。 - `"channels_last"` または `ChannelDimension.LAST`: (height, width, num_channels) 形式の画像。 - `"none"` または `ChannelDimension.NONE`: (height, width) 形式の画像。

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : 動画を処理するデバイスです。未設定の場合、入力動画からデバイスが推論されます。

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : `'pt'`に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。

disable_grouping (`bool`, *kwargs*, *optional*) : 画像をサイズごとにグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうかを指定します。None の場合、画像が CPU にある場合は True、それ以外の場合は False に設定されます。この選択は、https://github.com/huggingface/transformers/pull/38157 に詳しく記載されている実証的な観察に基づいています。

image_seq_length (`int`, *kwargs*, *任意*) : 入力内の各画像に使用される画像トークンの数です。後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。

apply_ocr (`bool`, *kwargs*, *optional*, デフォルトは `self.apply_ocr`) : Tesseract OCR エンジンを使用して単語と正規化されたバウンディングボックスを取得するために適用するかどうか。`preprocess` メソッドの `apply_ocr` パラメータによって上書きできます。

ocr_lang (`str`, *kwargs*, *任意*) : Tesseract OCR エンジンで使用する言語を ISO コードで指定します。デフォルトでは英語が使用されます。`preprocess` メソッドの `ocr_lang` パラメータによって上書きできます。

tesseract_config (`str`, *kwargs*, *optional*) : Tesseract を呼び出す際に `config` パラメータに転送される、追加のカスタム設定フラグです。例: '--psm 6'。`preprocess` メソッドの `tesseract_config` パラメータによって上書きできます。

LayoutLMv2ImageProcessor の画像プロセッサを構築します。

#### preprocess[[transformers.LayoutLMv2ImageProcessor.preprocess]]

```python
preprocess(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']], **kwargs: *<class 'transformers.models.layoutlmv2.image_processing_layoutlmv2.LayoutLMv2ImageProcessorKwargs'>)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/layoutlmv2/image_processing_layoutlmv2.py#L131)

**パラメータ:**

images (`Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]`) : 前処理対象の画像。ピクセル値が 0 から 255 の範囲にある単一の画像またはバッチの画像を想定しています。ピクセル値が 0 から 1 の範囲にある画像を渡す場合は、`do_rescale=False` を設定してください。

do_convert_rgb (`bool`, *kwargs*, *optional*) : 画像を RGB に変換するかどうか。

do_resize (`bool`, *kwargs*, *optional*) : 画像をリサイズするかどうか。

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : モデルへの最大入力次元を記述します。

default_to_square (`bool`, *kwargs*, *optional*) : size が int の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : `center_crop` を適用した後の出力画像のサイズ。

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*) : 画像をリサイズする場合に使用するリサンプリングフィルタ。`PILImageResampling` の列挙型のいずれかです。`do_resize` が `True` に設定されている場合のみ有効です。

do_rescale (`bool`, *kwargs*, *任意*) : 画像をリスケールするかどうか。

rescale_factor (`float`, *kwargs*, *optional*) : `do_rescale` が `True` に設定されている場合、画像をリサイズするためのリスケール係数。

do_normalize (`bool`, *kwargs*, *optional*) : 画像を正規化するかどうかを指定します。

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*) : 正規化に使用する画像の平均値。`do_normalize` が `True` に設定されている場合のみ有効です。

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*) : 正規化に使用する画像の標準偏差。`do_normalize` が `True` に設定されている場合のみ有効です。

do_pad (`bool`, *kwargs*, *任意*) : 画像にパディングを適用するかどうか。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。正確なパディング戦略はモデルによって異なります。

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : 画像をパディングするサイズを`{"height": int, "width" int}`で指定します。前処理に提供されたすべての画像サイズより大きい必要があります。`pad_size`が指定されない場合、バッチ内の最大の幅と高さにパディングされます。`do_pad=True.`の場合にのみ適用されます。

do_center_crop (`bool`, *kwargs*, *optional*) : 画像を中央クロップするかどうか。

data_format (`Union[str, ~image_utils.ChannelDimension]`、*kwargs*、*optional*) : 対応するのは `ChannelDimension.FIRST` のみです。slow processors との互換性のために追加されました。

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *任意*) : 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推論されます。以下のいずれかになります: - `"channels_first"` または `ChannelDimension.FIRST`: (num_channels, height, width) 形式の画像。 - `"channels_last"` または `ChannelDimension.LAST`: (height, width, num_channels) 形式の画像。 - `"none"` または `ChannelDimension.NONE`: (height, width) 形式の画像。

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : 動画を処理するデバイスです。未設定の場合、入力動画からデバイスが推論されます。

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : `'pt'`に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。

disable_grouping (`bool`, *kwargs*, *optional*) : 画像をサイズごとにグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうかを指定します。None の場合、画像が CPU にある場合は True、それ以外の場合は False に設定されます。この選択は、https://github.com/huggingface/transformers/pull/38157 に詳しく記載されている実証的な観察に基づいています。

image_seq_length (`int`, *kwargs*, *任意*) : 入力内の各画像に使用される画像トークンの数です。後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。

apply_ocr (`bool`, *kwargs*, *optional*, デフォルトは `self.apply_ocr`) : Tesseract OCR エンジンを使用して単語と正規化されたバウンディングボックスを取得するために適用するかどうか。`preprocess` メソッドの `apply_ocr` パラメータによって上書きできます。

ocr_lang (`str`, *kwargs*, *任意*) : Tesseract OCR エンジンで使用する言語を ISO コードで指定します。デフォルトでは英語が使用されます。`preprocess` メソッドの `ocr_lang` パラメータによって上書きできます。

tesseract_config (`str`, *kwargs*, *optional*) : Tesseract を呼び出す際に `config` パラメータに転送される、追加のカスタム設定フラグです。例: '--psm 6'。`preprocess` メソッドの `tesseract_config` パラメータによって上書きできます。

**戻り値:** `~image_processing_base.BatchFeature`

- **data** (`dict`) -- __call__ メソッドによって返されるリスト/配列/テンソルの辞書（'pixel_values' など）。
- **tensor_type** (`Union[None, str, TensorType]`、*省略可*) -- 初期化時に PyTorch/Numpy の Tensor 内の整数リストを変換するために、ここで tensor_type を指定できます。

## LayoutLMv2ImageProcessorPil[[transformers.LayoutLMv2ImageProcessorPil]]

#### transformers.LayoutLMv2ImageProcessorPil[[transformers.LayoutLMv2ImageProcessorPil]]

```python
transformers.LayoutLMv2ImageProcessorPil(**kwargs: *<class 'transformers.models.layoutlmv2.image_processing_pil_layoutlmv2.LayoutLMv2ImageProcessorKwargs'>)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/layoutlmv2/image_processing_pil_layoutlmv2.py#L121)

**パラメータ:**

do_convert_rgb (`bool`, *kwargs*, *optional*) : 画像を RGB に変換するかどうか。

do_resize (`bool`, *kwargs*, *任意*, デフォルトは `True`) : 画像をリサイズするかどうか。

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*、デフォルト値は `{'height' : 224, 'width': 224}`): モデルへの最大入力サイズを記述します。

default_to_square (`bool`, *kwargs*, *任意*、デフォルトは `True`) : size が整数の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : `center_crop` を適用した後の出力画像のサイズ。

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*、デフォルト値は`2`) : 画像のリサイズ時に使用するリサンプリングフィルタです。これは列挙型`PILImageResampling`のいずれかになります。`do_resize`が`True`に設定されている場合のみ、効果が現れます。

do_rescale (`bool`, *kwargs*, *任意*) : 画像をリスケールするかどうか。

rescale_factor (`float`、*kwargs*、*任意*、デフォルトは`None`) : `do_rescale`が`True`に設定されている場合、画像をリスケールするための係数。

do_normalize (`bool`, *kwargs*, *optional*) : 画像を正規化するかどうかを指定します。

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*) : 正規化に使用する画像の平均値。`do_normalize` が `True` に設定されている場合のみ有効です。

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*) : 正規化に使用する画像の標準偏差。`do_normalize` が `True` に設定されている場合のみ有効です。

do_pad (`bool`, *kwargs*, *任意*) : 画像にパディングを適用するかどうか。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。正確なパディング戦略はモデルによって異なります。

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : 画像をパディングするサイズを`{"height": int, "width" int}`で指定します。前処理に提供されたすべての画像サイズより大きい必要があります。`pad_size`が指定されない場合、バッチ内の最大の幅と高さにパディングされます。`do_pad=True.`の場合にのみ適用されます。

do_center_crop (`bool`, *kwargs*, *optional*) : 画像を中央クロップするかどうか。

data_format (`Union[str, ~image_utils.ChannelDimension]`、*kwargs*、*optional*) : 対応するのは `ChannelDimension.FIRST` のみです。slow processors との互換性のために追加されました。

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *任意*) : 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推論されます。以下のいずれかになります: - `"channels_first"` または `ChannelDimension.FIRST`: (num_channels, height, width) 形式の画像。 - `"channels_last"` または `ChannelDimension.LAST`: (height, width, num_channels) 形式の画像。 - `"none"` または `ChannelDimension.NONE`: (height, width) 形式の画像。

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : 動画を処理するデバイスです。未設定の場合、入力動画からデバイスが推論されます。

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : `'pt'`に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。

disable_grouping (`bool`, *kwargs*, *optional*) : 画像をサイズごとにグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうかを指定します。None の場合、画像が CPU にある場合は True、それ以外の場合は False に設定されます。この選択は、https://github.com/huggingface/transformers/pull/38157 に詳しく記載されている実証的な観察に基づいています。

image_seq_length (`int`, *kwargs*, *任意*) : 入力内の各画像に使用される画像トークンの数です。後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。

apply_ocr (`bool`, *kwargs*, *optional*, デフォルトは `self.apply_ocr`) : Tesseract OCR エンジンを使用して単語と正規化されたバウンディングボックスを取得するために適用するかどうか。`preprocess` メソッドの `apply_ocr` パラメータによって上書きできます。

ocr_lang (`str`, *kwargs*, *任意*) : Tesseract OCR エンジンで使用する言語を ISO コードで指定します。デフォルトでは英語が使用されます。`preprocess` メソッドの `ocr_lang` パラメータによって上書きできます。

tesseract_config (`str`, *kwargs*, *optional*) : Tesseract を呼び出す際に `config` パラメータに転送される、追加のカスタム設定フラグです。例: '--psm 6'。`preprocess` メソッドの `tesseract_config` パラメータによって上書きできます。

LayoutLMv2ImageProcessor の画像プロセッサを構築します。

#### preprocess[[transformers.LayoutLMv2ImageProcessorPil.preprocess]]

```python
preprocess(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']], **kwargs: *<class 'transformers.models.layoutlmv2.image_processing_pil_layoutlmv2.LayoutLMv2ImageProcessorKwargs'>)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/layoutlmv2/image_processing_pil_layoutlmv2.py#L134)

**パラメータ:**

images (`Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]`) : 前処理対象の画像。ピクセル値が 0 から 255 の範囲にある単一の画像またはバッチの画像を想定しています。ピクセル値が 0 から 1 の範囲にある画像を渡す場合は、`do_rescale=False` を設定してください。

do_convert_rgb (`bool`, *kwargs*, *optional*) : 画像を RGB に変換するかどうか。

do_resize (`bool`, *kwargs*, *optional*) : 画像をリサイズするかどうか。

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : モデルへの最大入力次元を記述します。

default_to_square (`bool`, *kwargs*, *optional*) : size が int の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : `center_crop` を適用した後の出力画像のサイズ。

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*) : 画像をリサイズする場合に使用するリサンプリングフィルタ。`PILImageResampling` の列挙型のいずれかです。`do_resize` が `True` に設定されている場合のみ有効です。

do_rescale (`bool`, *kwargs*, *任意*) : 画像をリスケールするかどうか。

rescale_factor (`float`, *kwargs*, *optional*) : `do_rescale` が `True` に設定されている場合、画像をリサイズするためのリスケール係数。

do_normalize (`bool`, *kwargs*, *optional*) : 画像を正規化するかどうかを指定します。

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*) : 正規化に使用する画像の平均値。`do_normalize` が `True` に設定されている場合のみ有効です。

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*) : 正規化に使用する画像の標準偏差。`do_normalize` が `True` に設定されている場合のみ有効です。

do_pad (`bool`, *kwargs*, *任意*) : 画像にパディングを適用するかどうか。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。正確なパディング戦略はモデルによって異なります。

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : 画像をパディングするサイズを`{"height": int, "width" int}`で指定します。前処理に提供されたすべての画像サイズより大きい必要があります。`pad_size`が指定されない場合、バッチ内の最大の幅と高さにパディングされます。`do_pad=True.`の場合にのみ適用されます。

do_center_crop (`bool`, *kwargs*, *optional*) : 画像を中央クロップするかどうか。

data_format (`Union[str, ~image_utils.ChannelDimension]`、*kwargs*、*optional*) : 対応するのは `ChannelDimension.FIRST` のみです。slow processors との互換性のために追加されました。

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *任意*) : 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推論されます。以下のいずれかになります: - `"channels_first"` または `ChannelDimension.FIRST`: (num_channels, height, width) 形式の画像。 - `"channels_last"` または `ChannelDimension.LAST`: (height, width, num_channels) 形式の画像。 - `"none"` または `ChannelDimension.NONE`: (height, width) 形式の画像。

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : 動画を処理するデバイスです。未設定の場合、入力動画からデバイスが推論されます。

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : `'pt'`に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。

disable_grouping (`bool`, *kwargs*, *optional*) : 画像をサイズごとにグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうかを指定します。None の場合、画像が CPU にある場合は True、それ以外の場合は False に設定されます。この選択は、https://github.com/huggingface/transformers/pull/38157 に詳しく記載されている実証的な観察に基づいています。

image_seq_length (`int`, *kwargs*, *任意*) : 入力内の各画像に使用される画像トークンの数です。後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。

apply_ocr (`bool`, *kwargs*, *optional*, デフォルトは `self.apply_ocr`) : Tesseract OCR エンジンを使用して単語と正規化されたバウンディングボックスを取得するために適用するかどうか。`preprocess` メソッドの `apply_ocr` パラメータによって上書きできます。

ocr_lang (`str`, *kwargs*, *任意*) : Tesseract OCR エンジンで使用する言語を ISO コードで指定します。デフォルトでは英語が使用されます。`preprocess` メソッドの `ocr_lang` パラメータによって上書きできます。

tesseract_config (`str`, *kwargs*, *optional*) : Tesseract を呼び出す際に `config` パラメータに転送される、追加のカスタム設定フラグです。例: '--psm 6'。`preprocess` メソッドの `tesseract_config` パラメータによって上書きできます。

**戻り値:** `~image_processing_base.BatchFeature`

- **data** (`dict`) -- __call__ メソッドによって返されるリスト/配列/テンソルの辞書（'pixel_values' など）。
- **tensor_type** (`Union[None, str, TensorType]`、*省略可*) -- 初期化時に PyTorch/Numpy の Tensor 内の整数リストを変換するために、ここで tensor_type を指定できます。

## LayoutLMv2Tokenizer[[transformers.LayoutLMv2Tokenizer]]

#### transformers.LayoutLMv2Tokenizer[[transformers.LayoutLMv2Tokenizer]]

```python
transformers.LayoutLMv2Tokenizer(vocab: str | dict[str, int] | None = None, do_lower_case = True, unk_token = '[UNK]', sep_token = '[SEP]', pad_token = '[PAD]', cls_token = '[CLS]', 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, tokenize_chinese_chars = True, strip_accents = None, model_max_length = 512, **kwargs)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/layoutlmv2/tokenization_layoutlmv2.py#L112)

**パラメータ:**

vocab_file (`str`) : 語彙を含むファイル。

do_lower_case (`bool`、*任意*、デフォルトは `True`) : トークン化時に、入力を小文字にするかどうか。

unk_token (`str`、*任意*、デフォルトは `"[UNK]"`) : 不明トークン。語彙に存在しないトークンは ID に変換できず、代わりにこのトークンが設定されます。

sep_token (`str`、*任意*、デフォルトは `"[SEP]"`) : 区切りトークンです。複数のシーケンスからシーケンスを構築する際に使用されます。例えば、シーケンス分類では2つのシーケンス、質問応答ではテキストと質問です。また、特殊トークンを用いて構築されたシーケンスの最後のトークンとしても使用されます。

pad_token (`str`、*任意*、デフォルトは `"[PAD]"`) : パディングに使用されるトークンです。長さの異なるシーケンスをバッチ処理する場合などに使用します。

cls_token (`str`、*任意*、デフォルトは`"[CLS]"`) : シーケンス分類（トークンごとの分類ではなく、シーケンス全体に対する分類）を行う際に使用される分類トークンです。特殊トークンを用いて構築された場合、シーケンスの最初のトークンになります。

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`) : ワードラベルが提供されている場合、最初のサブワードのみをラベル付けするかどうか。

tokenize_chinese_chars (`bool`、*任意*、デフォルトは`True`) : 中国語の文字をトークン化するかどうか。日本語では無効にするのが望ましいです（[この問題](https://github.com/huggingface/transformers/issues/328)を参照）。

strip_accents (`bool`, *省略可*) : アクセントをすべて除去するかどうか。このオプションが指定されない場合、`lowercase` の値によって決定されます（元の LayoutLMv2 と同じ）。

HuggingFaceの*tokenizers*ライブラリをベースにした「高速な」LayoutLMv2トークナイザーを構築します。WordPieceに基づいています。

このトークナイザーは、[PreTrainedTokenizerFast](/docs/transformers/main/ja/main_classes/tokenizer#transformers.TokenizersBackend) を継承しており、主要なメソッドのほとんどが含まれています。これらのメソッドに関する詳細については、このスーパークラスを参照してください。

#### __call__[[transformers.LayoutLMv2Tokenizer.__call__]]

```python
__call__(text: str | list[str] | list[list[str]], text_pair: list[str] | list[list[str]] | None = None, boxes: list[list[int]] | list[list[list[int]]] | None = None, word_labels: list[int] | list[list[int]] | None = None, add_special_tokens: bool = True, padding: bool | str | transformers.utils.generic.PaddingStrategy = False, truncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy | None = None, max_length: int | None = None, stride: int = 0, pad_to_multiple_of: int | None = None, padding_side: str | None = None, return_tensors: str | transformers.utils.generic.TensorType | None = None, return_token_type_ids: bool | None = None, return_attention_mask: bool | None = 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)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/layoutlmv2/tokenization_layoutlmv2.py#L243)

**パラメータ:**

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](/docs/transformers/main/ja/internal/file_utils#transformers.utils.PaddingStrategy)、*optional*、デフォルトは`False`) : パディングの有効化と制御を行います。以下の値を受け取ります: - `True`または`'longest'`: バッチ内の最長のシーケンスの長さにパディングします（単一のシーケンスのみが提供された場合は、パディングを行いません）。 - `'max_length'`: 引数`max_length`で指定された最大長、またはその引数が提供されていない場合はモデルが受け入れ可能な最大入力長までパディングします。 - `False`または`'do_not_pad'`（デフォルト）: パディングを行いません（つまり、長さが異なるシーケンスのバッチを出力できます）。

truncation (`bool`、`str` または [TruncationStrategy](/docs/transformers/main/ja/internal/tokenization_utils#transformers.tokenization_utils_base.TruncationStrategy)、*optional*、デフォルトは `False`) : トランケーションを有効化し、制御します。以下の値を受け取ります: - `True` または `'longest_first'`: 引数 `max_length` で指定された最大長、またはその引数が指定されていない場合はモデルが許容する最大入力長まで切り詰めます。ペアのシーケンス（またはペアのバッチ）が提供されている場合、ペアの中で最も長いシーケンスからトークン単位で1トークンずつ削除します。 - `'only_first'`: 引数 `max_length` で指定された最大長、またはその引数が指定されていない場合はモデルが許容する最大入力長まで切り詰めます。ペアのシーケンス（またはペアのバッチ）が提供されている場合、ペアの最初のシーケンスのみを切り詰めます。 - `'only_second'`: 引数 `max_length` で指定された最大長、またはその引数が指定されていない場合はモデルが許容する最大入力長まで切り詰めます。ペアのシーケンス（またはペアのバッチ）が提供されている場合、ペアの2番目のシーケンスのみを切り詰めます。 - `False` または `'do_not_truncate'`（デフォルト）: トランケーションを行いません（つまり、モデルが許容する最大入力サイズを超えるシーケンス長を持つバッチを出力する可能性があります）。

max_length (`int`, *optional*) : 切り詰め/パディングパラメータのいずれかによって使用される最大長を制御します。 未設定のまま、または `None` に設定されている場合、切り詰め/パディングパラメータのいずれかが最大長を必要とする場合、事前に定義されたモデルの最大長が使用されます。 モデルに特定の最大入力長がない場合（XLNet など）、最大長への切り詰め/パディングは無効になります。

stride (`int`、*optional*、デフォルト値は 0) : `max_length` とともに数値が設定されている場合、`return_overflowing_tokens=True` のときに返されるオーバーフローしたトークンは、切り詰められたシーケンスの末尾の一部のトークンを含み、切り詰められたシーケンスとオーバーフローしたシーケンスの間に重複部分を持たせます。この引数の値は、重複するトークンの数を定義します。

pad_to_multiple_of (`int`, *optional*) : 設定すると、シーケンスを指定された値の倍数にパディングします。これは、計算能力が `>= 7.5` (Volta) の NVIDIA ハードウェア上で Tensor Cores を使用可能にするために特に有用です。

return_token_type_ids (`bool`、*省略可*) : トークンタイプIDを返すかどうか。デフォルトのままにすると、`return_outputs` 属性で定義される特定のトークナイザーのデフォルトに従って、トークンタイプIDを返します。  [トークンタイプIDとは?](../glossary#token-type-ids)

return_attention_mask (`bool`、*省略可*) : アテンションマスクを返すかどうか。デフォルトのままにすると、`return_outputs` 属性で定義される特定のトークナイザーのデフォルトに従って、アテンションマスクを返します。  [アテンションマスクとは?](../glossary#attention-mask)

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](/docs/transformers/main/ja/main_classes/tokenizer#transformers.TokenizersBackend)を継承する fast tokenizer のみで利用可能であり、Python の tokenizer を使用している場合、このメソッドは`NotImplementedError`を送出します。

return_length (`bool`、*任意*、デフォルトは`False`) : エンコードされた入力の長さを返すかどうか。

verbose (`bool`、*任意*、デフォルトは `True`) : 詳細な情報や警告を表示するかどうか。

- ****kwargs** : `self.tokenize()` メソッドに渡されます

単語レベルで正規化されたバウンディングボックスおよび任意のラベルを伴う、1つ以上のシーケンスまたは1つ以上のシーケンスのペアをトークナイズし、モデル用に準備するための主要なメソッドです。

#### save_vocabulary[[transformers.LayoutLMv2Tokenizer.save_vocabulary]]

```python
save_vocabulary(save_directory: str, filename_prefix: str | None = None)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L546)

## LayoutLMv2Processor[[transformers.LayoutLMv2Processor]]

#### transformers.LayoutLMv2Processor[[transformers.LayoutLMv2Processor]]

```python
transformers.LayoutLMv2Processor(image_processor = None, tokenizer = None, **kwargs)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/layoutlmv2/processing_layoutlmv2.py#L24)

**パラメータ:**

image_processor (`LayoutLMv2ImageProcessor`) : 画像プロセッサは必須の入力です。

tokenizer (`LayoutLMv2Tokenizer`) : トークナイザーは必須の入力です。

LayoutLMv2Processor を構築します。画像プロセッサとトークナイザーを単一のプロセッサにラップします。

[LayoutLMv2Processor](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Processor) は、[LayoutLMv2ImageProcessor](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2ImageProcessor) と [LayoutLMv2Tokenizer](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Tokenizer) のすべての機能を提供します。詳細については、[~LayoutLMv2ImageProcessor](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2ImageProcessor) および [~LayoutLMv2Tokenizer](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Tokenizer) を参照してください。

#### __call__[[transformers.LayoutLMv2Processor.__call__]]

```python
__call__(images, text: str | list[str] | list[list[str]] = None, text_pair: list[str] | list[list[str]] | None = None, boxes: list[list[int]] | list[list[list[int]]] | None = None, word_labels: list[int] | list[list[int]] | None = None, add_special_tokens: bool = True, padding: bool | str | transformers.utils.generic.PaddingStrategy = False, truncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = False, max_length: int | None = None, stride: int = 0, pad_to_multiple_of: int | None = None, return_token_type_ids: bool | None = None, return_attention_mask: bool | None = 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: str | transformers.utils.generic.TensorType | None = None, **kwargs)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/layoutlmv2/processing_layoutlmv2.py#L28)

**パラメータ:**

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, set `do_rescale=False`.

text (`Union[str, list[str], list[list[str]]]`、*任意*) : エンコード対象のシーケンスまたはシーケンスのバッチです。各シーケンスは文字列、または文字列のリスト（プレトークナイズ済み文字列）であることができます。プレトークナイズ済み入力を渡す場合は、バッチ入力との曖昧さを避けるために `is_split_into_words=True` を設定してください。

text_pair (`str, list[str] or list[int]`、*省略可能*) : エンコード対象の任意の第2のシーケンスです。これは、文字列、文字列のリスト（`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 などのトークン分類タスク用）。

add_special_tokens (`bool`、*任意*、デフォルトは`True`) : シーケンスをエンコードする際に特殊トークンを追加するかどうか。これは、入力 ID に自動的に追加されるトークンを定義する基盤となる`PretrainedTokenizerBase.build_inputs_with_special_tokens`関数を使用します。`bos`または`eos`トークンを自動的に追加したい場合に便利です。

padding (bool, str or [PaddingStrategy](/docs/transformers/main/ja/internal/file_utils#transformers.utils.PaddingStrategy), *optional*, デフォルトは `False`) : パディングの有効化と制御を行います。以下の値を受け取ります:  - `True` または `'longest'`: バッチ内の最長のシーケンスの長さにパディングします（単一のシーケンスのみが提供された場合は、パディングを行いません）。 - `'max_length'`: 引数 `max_length` で指定された最大長、またはその引数が提供されていない場合はモデルが受け入れ可能な最大入力長までパディングします。 - `False` または `'do_not_pad'`（デフォルト）: パディングを行いません（つまり、長さが異なるシーケンスを含むバッチを出力できます）。

truncation (bool, str or [TruncationStrategy](/docs/transformers/main/ja/internal/tokenization_utils#transformers.tokenization_utils_base.TruncationStrategy), *optional*, デフォルトは `False`) : トランケーションを有効化し、制御します。以下の値を受け取ります:  - `True` または `'longest_first'`: 引数 `max_length` で指定された最大長、またはその引数が指定されていない場合はモデルが許容する最大入力長まで切り詰めます。ペアのシーケンス（またはペアのバッチ）が提供されている場合、ペアの中で最も長いシーケンスからトークンを1つずつ削除して切り詰めます。 - `'only_first'`: 引数 `max_length` で指定された最大長、またはその引数が指定されていない場合はモデルが許容する最大入力長まで切り詰めます。ペアのシーケンス（またはペアのバッチ）が提供されている場合、ペアの最初のシーケンスのみを切り詰めます。 - `'only_second'`: 引数 `max_length` で指定された最大長、またはその引数が指定されていない場合はモデルが許容する最大入力長まで切り詰めます。ペアのシーケンス（またはペアのバッチ）が提供されている場合、ペアの2番目のシーケンスのみを切り詰めます。 - `False` または `'do_not_truncate'` (デフォルト): トランケーションを行いません（つまり、モデルが許容する最大入力サイズを超えるシーケンス長を持つバッチを出力する可能性があります）。

max_length (`int`, *optional*) : 切り詰め/パディングパラメータのいずれかによって使用される最大長を制御します。 未設定のまま、または `None` に設定されている場合、切り詰め/パディングパラメータのいずれかが最大長を必要とする場合、事前に定義されたモデルの最大長が使用されます。 モデルに特定の最大入力長がない場合（XLNet など）、最大長への切り詰め/パディングは無効になります。

stride (`int`, *optional*, デフォルトは `0`) : `max_length` とともに数値が設定されている場合、`return_overflowing_tokens=True` のときに返されるオーバーフローしたトークンは、切り詰められたシーケンスの末尾の一部のトークンを含み、切り詰められたシーケンスとオーバーフローしたシーケンスの間に重複部分を提供します。この引数の値は、重複するトークンの数を定義します。

pad_to_multiple_of (`int`, *optional*) : 設定すると、シーケンスを指定された値の倍数にパディングします。`padding` が有効化されている必要があります。これは、計算能力 `>= 7.5` (Volta) を備えた NVIDIA ハードウェア上で Tensor Cores を使用できるようにするため、特に有用です。

return_token_type_ids (`bool`、*省略可*) : トークンタイプIDを返すかどうか。デフォルトのままにすると、`return_outputs` 属性で定義される特定のトークナイザーのデフォルトに従って、トークンタイプIDを返します。  [トークンタイプIDとは?](../glossary#token-type-ids)

return_attention_mask (`bool`、*省略可*) : アテンションマスクを返すかどうか。デフォルトのままにすると、`return_outputs` 属性で定義される特定のトークナイザーのデフォルトに従って、アテンションマスクを返します。  [アテンションマスクとは?](../glossary#attention-mask)

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](/docs/transformers/main/ja/main_classes/tokenizer#transformers.TokenizersBackend)を継承する fast tokenizer のみで利用可能であり、Python の tokenizer を使用している場合、このメソッドは`NotImplementedError`を送出します。

return_length (`bool`、*任意*、デフォルトは`False`) : エンコードされた入力の長さを返すかどうかを指定します。

verbose (`bool`、*任意*、デフォルトは `True`) : 詳細な情報や警告を表示するかどうか。

return_tensors (`Union[str, ~utils.generic.TensorType]`、*任意*) : 設定すると、特定のフレームワークのテンソルを返します。指定可能な値は以下の通りです。 - `'pt'`: PyTorch の `torch.Tensor` オブジェクトを返します。 - `'np'`: NumPy の `np.ndarray` オブジェクトを返します。

**戻り値:** `~tokenization_utils_base.BatchEncoding`

- **data** (`dict`, *optional*) -- `__call__`/`encode_plus`/`batch_encode_plus` メソッドによって返される、リスト/配列/テンソルの辞書（'input_ids'、'attention_mask' など）。
- **encoding**（`tokenizers.Encoding` または `Sequence[tokenizers.Encoding]`、*任意*）-- トークナイザーが、単語/文字空間からトークン空間へのマッピングなどの追加情報を出力する fast tokenizer の場合、`tokenizers.Encoding` のインスタンス、またはそのリスト（バッチの場合）にこの情報が保持されます。
- **tensor_type** (`Union[None, str, TensorType]`、*省略可*) -- 初期化時に PyTorch/Numpy の Tensor 内の整数リストを変換するために、ここで tensor_type を指定できます。
- **prepend_batch_axis** (`bool`、*任意*、デフォルトは `False`) -- テンソルに変換する際にバッチ軸を追加するかどうかを指定します(`tensor_type` を参照)。パラメータ `tensor_type` が設定されている場合のみこのパラメータが有効で、*それ以外の場合は無効です*。
- **n_sequences** (`int`, *任意*) -- 各エンコーディングが表す入力シーケンスの数（不明な場合は`None`、単一のシーケンスの場合は`1`、シーケンスのペアの場合は`2`）。

## LayoutLMv2Model[[transformers.LayoutLMv2Model]]

#### transformers.LayoutLMv2Model[[transformers.LayoutLMv2Model]]

```python
transformers.LayoutLMv2Model(config: LayoutLMv2Config)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/layoutlmv2/modeling_layoutlmv2.py#L551)

**パラメータ:**

config ([LayoutLMv2Config](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Config)) : モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、[from_pretrained()](/docs/transformers/main/ja/main_classes/model#transformers.PreTrainedModel.from_pretrained) メソッドを確認してください。

特定のヘッドを付加せず、生のhidden-statesを出力する素のLayoutlmv2モデル。

このモデルは [PreTrainedModel](/docs/transformers/main/ja/main_classes/model#transformers.PreTrainedModel) を継承しています。ライブラリがすべてのモデルに対して実装している汎用的なメソッド（ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど）については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchの[torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module)のサブクラスでもあります。通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

#### forward[[transformers.LayoutLMv2Model.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, bbox: typing.Optional[torch.LongTensor] = None, image: typing.Optional[torch.FloatTensor] = None, attention_mask: typing.Optional[torch.FloatTensor] = None, token_type_ids: typing.Optional[torch.LongTensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, inputs_embeds: typing.Optional[torch.FloatTensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/layoutlmv2/modeling_layoutlmv2.py#L663)

**パラメータ:**

input_ids (`torch.LongTensor`、shape `(batch_size, sequence_length)`、*任意*) : 語彙における入力シーケンスのトークンインデックスです。デフォルトでは、パディングは無視されます。インデックスは [AutoTokenizer](/docs/transformers/main/ja/model_doc/auto#transformers.AutoTokenizer) を使用して取得できます。詳細については、[PreTrainedTokenizer.encode()](/docs/transformers/main/ja/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) および [PreTrainedTokenizer.__call__()](/docs/transformers/main/ja/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) を参照してください。 [入力IDとは何ですか？](../glossary#input-ids)

bbox (`torch.LongTensor`、shape `((batch_size, sequence_length), 4)`、*任意*) : 各入力シーケンスのトークンのバウンディングボックス。`[0, config.max_2d_position_embeddings-1]` の範囲で選択されます。各バウンディングボックスは (x0, y0, x1, y1) 形式の正規化された値であるべきで、(x0, y0) はバウンディングボックスの左上隅の位置に対応し、(x1, y1) は右下隅の位置を表します。

image (`torch.FloatTensor` の形状が `(batch_size, num_channels, height, width)` または `detectron.structures.ImageList` で、その `tensors` の形状が `(batch_size, num_channels, height, width)` の場合) : ドキュメント画像のバッチ。

attention_mask (`torch.FloatTensor`、形状 `(batch_size, sequence_length)`、*任意*) : パディングトークンのインデックスに対してアテンションを実行しないためのマスク。`[0, 1]` から選択されるマスクの値:  - **マスクされない**トークンは 1、**マスクされる**トークンは 0。  [アテンションマスクとは?](../glossary#attention-mask)

token_type_ids (`torch.LongTensor`、形状 `(batch_size, sequence_length)`、*任意*) : 入力の前半と後半を示すセグメントトークンインデックス。インデックスは `[0, 1]` から選択されます:  - 0 は *文 A* のトークンに対応します。 - 1 は *文 B* のトークンに対応します。  [トークンタイプIDとは何ですか？](../glossary#token-type-ids)

position_ids (`torch.LongTensor`、shape `(batch_size, sequence_length)`、*任意*) : 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックスです。`[0, config.n_positions - 1]` の範囲から選択されます。 [位置 ID とは何か？](../glossary#position-ids)

inputs_embeds (`torch.FloatTensor`、shape `(batch_size, sequence_length, hidden_size)`、*任意*) : `input_ids` を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、`input_ids` のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。

**戻り値:** [BaseModelOutputWithPooling](/docs/transformers/main/ja/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) または `tuple(torch.FloatTensor)`

[BaseModelOutputWithPooling](/docs/transformers/main/ja/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling)、または`torch.FloatTensor`のタプル（`return_dict=False`が渡された場合、または`config.return_dict=False`の場合）。設定（[LayoutLMv2Config](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Config)）や入力に応じて、さまざまな要素で構成されます。

[LayoutLMv2Model](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Model)のforwardメソッドは、`__call__`特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく`Module`インスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを無視してしまいます。

- **last_hidden_state** (`torch.FloatTensor`、shape `(batch_size, sequence_length, hidden_size)`) -- モデルの最終層の出力における隠れ状態のシーケンス。
- **pooler_output** (`torch.FloatTensor`、shape `(batch_size, hidden_size)`) -- 補助事前学習タスクに使用される層をさらに通して処理された後、シーケンスの最初のトークン（分類トークン）の最終層の隠れ状態です。例えば、BERT 系のモデルでは、線形層と tanh 活性化関数を経て処理された後の分類トークンを返します。この線形層の重みは、事前学習中の次文予測（分類）目的から学習されます。
- **hidden_states** (`tuple(torch.FloatTensor)`、*optional*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) -- `torch.FloatTensor` のタプル（埋め込み層を持つモデルの場合、埋め込みの出力用が 1 つ、各層の出力用が 1 つずつ）で、形状は `(batch_size, sequence_length, hidden_size)` です。

  各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
- **attentions** (`tuple(torch.FloatTensor)`、*optional*、`output_attentions=True` が渡された場合または `config.output_attentions=True` の場合に返されます) -- `torch.FloatTensor` のタプル（各レイヤーごとに1つ）で、形状は `(batch_size, num_heads, sequence_length, sequence_length)` です。

  アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

例:

```python
>>> from transformers import AutoProcessor, LayoutLMv2Model, set_seed
>>> from PIL import Image
>>> import torch
>>> from datasets import load_dataset

>>> set_seed(0)

>>> processor = AutoProcessor.from_pretrained("microsoft/layoutlmv2-base-uncased")
>>> model = LayoutLMv2Model.from_pretrained("microsoft/layoutlmv2-base-uncased")

>>> dataset = load_dataset("hf-internal-testing/fixtures_docvqa")
>>> image = dataset["test"][0]["image"]

>>> encoding = processor(image, return_tensors="pt")

>>> outputs = model(**encoding)
>>> last_hidden_states = outputs.last_hidden_state

>>> last_hidden_states.shape
torch.Size([1, 342, 768])
```

## LayoutLMv2ForSequenceClassification[[transformers.LayoutLMv2ForSequenceClassification]]

#### transformers.LayoutLMv2ForSequenceClassification[[transformers.LayoutLMv2ForSequenceClassification]]

```python
transformers.LayoutLMv2ForSequenceClassification(config: LayoutLMv2Config)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/layoutlmv2/modeling_layoutlmv2.py#L792)

**パラメータ:**

config ([LayoutLMv2Config](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Config)) : モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、[from_pretrained()](/docs/transformers/main/ja/main_classes/model#transformers.PreTrainedModel.from_pretrained) メソッドを確認してください。

LayoutLMv2 Model with a sequence classification head on top (a linear layer on top of the concatenation of the final hidden state of the [CLS] token, average-pooled initial visual embeddings and average-pooled final visual embeddings, e.g. for document image classification tasks such as the [RVL-CDIP](https://www.cs.cmu.edu/~aharley/rvl-cdip/) dataset.

このモデルは [PreTrainedModel](/docs/transformers/main/ja/main_classes/model#transformers.PreTrainedModel) を継承しています。ライブラリがすべてのモデルに対して実装している汎用的なメソッド（ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど）については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchの[torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module)のサブクラスでもあります。通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

#### forward[[transformers.LayoutLMv2ForSequenceClassification.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, bbox: typing.Optional[torch.LongTensor] = None, image: typing.Optional[torch.FloatTensor] = None, attention_mask: typing.Optional[torch.FloatTensor] = None, token_type_ids: typing.Optional[torch.LongTensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, inputs_embeds: typing.Optional[torch.FloatTensor] = None, labels: typing.Optional[torch.LongTensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/layoutlmv2/modeling_layoutlmv2.py#L806)

**パラメータ:**

input_ids (`torch.LongTensor`、shape は `batch_size, sequence_length`) : 語彙における入力シーケンスのトークンインデックスです。インデックスは [AutoTokenizer](/docs/transformers/main/ja/model_doc/auto#transformers.AutoTokenizer) を使用して取得できます。詳細については、[PreTrainedTokenizer.encode()](/docs/transformers/main/ja/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) および [PreTrainedTokenizer.__call__()](/docs/transformers/main/ja/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) を参照してください。 [入力 ID とは何か？](../glossary#input-ids)

bbox (`torch.LongTensor`、shape `(batch_size, sequence_length, 4)`、*optional*) : 各入力シーケンスのトークンのバウンディングボックス。範囲 `[0, config.max_2d_position_embeddings-1]` から選択されます。各バウンディングボックスは (x0, y0, x1, y1) 形式の正規化された値であるべきで、(x0, y0) はバウンディングボックスの左上隅の位置に対応し、(x1, y1) は右下隅の位置を表します。

image (`torch.FloatTensor` の形状が `(batch_size, num_channels, height, width)` または `detectron.structures.ImageList` で、その `tensors` の形状が `(batch_size, num_channels, height, width)` の場合) : ドキュメント画像のバッチ。

attention_mask (`torch.FloatTensor`、形状 `(batch_size, sequence_length)`、*任意*) : パディングトークンのインデックスに対してアテンションを実行しないためのマスク。`[0, 1]` から選択されるマスクの値:  - **マスクされない**トークンは 1、**マスクされる**トークンは 0。  [アテンションマスクとは?](../glossary#attention-mask)

token_type_ids (`torch.LongTensor`、shape `batch_size, sequence_length`、*任意*) : 入力の前半と後半を示すセグメントトークンインデックス。インデックスは`[0, 1]`から選択されます:  - 0 は*文 A*のトークンに対応します。 - 1 は*文 B*のトークンに対応します。  [トークンタイプIDとは何ですか？](../glossary#token-type-ids)

position_ids (`torch.LongTensor`、形状 `batch_size, sequence_length`、*任意*) : 位置埋め込みにおける、各入力シーケンスのトークンの位置のインデックスです。`[0, config.max_position_embeddings - 1]` の範囲から選択されます。 [位置 ID とは何か？](../glossary#position-ids)

inputs_embeds (`torch.FloatTensor`、shape `(batch_size, sequence_length, hidden_size)`、*任意*) : `input_ids` を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、`input_ids` のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。

labels (`torch.LongTensor`、形状 `(batch_size,)`、*任意*) : シーケンス分類/回帰の損失を計算するためのラベル。インデックスは `[0, ..., config.num_labels - 1]` の範囲である必要があります。`config.num_labels == 1` の場合は回帰損失（平均二乗誤差）が計算され、`config.num_labels > 1` の場合は分類損失（クロスエントロピー）が計算されます。

**戻り値:** [SequenceClassifierOutput](/docs/transformers/main/ja/main_classes/output#transformers.modeling_outputs.SequenceClassifierOutput) または `tuple(torch.FloatTensor)`

設定（[LayoutLMv2Config](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Config)）と入力に応じて、さまざまな要素で構成される、[SequenceClassifierOutput](/docs/transformers/main/ja/main_classes/output#transformers.modeling_outputs.SequenceClassifierOutput)または`torch.FloatTensor`のタプル（`return_dict=False`が渡された場合、または`config.return_dict=False`の場合）。

[LayoutLMv2ForSequenceClassification](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2ForSequenceClassification)のforwardメソッドは、`__call__`特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく`Module`インスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを無視してしまいます。

- **loss** (`torch.FloatTensor`、shape `(1,)`、*optional*、`labels` が指定された場合に返されます) -- 分類（または config.num_labels==1 の場合は回帰）の損失。
- **logits** (`torch.FloatTensor`、shape `(batch_size, config.num_labels)`) -- SoftMax 適用前の分類（または config.num_labels==1 の場合は回帰）スコア。
- **hidden_states** (`tuple(torch.FloatTensor)`、*optional*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) -- `torch.FloatTensor` のタプル（埋め込み層を持つモデルの場合、埋め込みの出力用が 1 つ、各層の出力用が 1 つずつ）で、形状は `(batch_size, sequence_length, hidden_size)` です。

  各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
- **attentions** (`tuple(torch.FloatTensor)`、*optional*、`output_attentions=True` が渡された場合または `config.output_attentions=True` の場合に返されます) -- `torch.FloatTensor` のタプル（各レイヤーごとに1つ）で、形状は `(batch_size, num_heads, sequence_length, sequence_length)` です。

  アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

例:

```python
>>> from transformers import AutoProcessor, LayoutLMv2ForSequenceClassification, set_seed
>>> from PIL import Image
>>> import torch
>>> from datasets import load_dataset

>>> set_seed(0)

>>> dataset = load_dataset("aharley/rvl_cdip", split="train", streaming=True)
>>> data = next(iter(dataset))
>>> image = data["image"].convert("RGB")

>>> processor = AutoProcessor.from_pretrained("microsoft/layoutlmv2-base-uncased")
>>> model = LayoutLMv2ForSequenceClassification.from_pretrained(
...     "microsoft/layoutlmv2-base-uncased", num_labels=dataset.info.features["label"].num_classes
... )

>>> encoding = processor(image, return_tensors="pt")
>>> sequence_label = torch.tensor([data["label"]])

>>> outputs = model(**encoding, labels=sequence_label)

>>> loss, logits = outputs.loss, outputs.logits
>>> predicted_idx = logits.argmax(dim=-1).item()
>>> predicted_answer = dataset.info.features["label"].names[4]
>>> predicted_idx, predicted_answer  # results are not good without further fine-tuning
(7, 'advertisement')
```

## LayoutLMv2ForTokenClassification[[transformers.LayoutLMv2ForTokenClassification]]

#### transformers.LayoutLMv2ForTokenClassification[[transformers.LayoutLMv2ForTokenClassification]]

```python
transformers.LayoutLMv2ForTokenClassification(config: LayoutLMv2Config)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/layoutlmv2/modeling_layoutlmv2.py#L986)

**パラメータ:**

config ([LayoutLMv2Config](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Config)) : モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、[from_pretrained()](/docs/transformers/main/ja/main_classes/model#transformers.PreTrainedModel.from_pretrained) メソッドを確認してください。

テキスト部分の隠れ状態の上に線形層を配置したトークン分類ヘッドを備えたLayoutLMv2モデル。シーケンスラベリング（情報抽出）タスク、例えば[FUNSD](https://guillaumejaume.github.io/FUNSD/)、[SROIE](https://rrc.cvc.uab.es/?ch=13)、[CORD](https://github.com/clovaai/cord)、[Kleister-NDA](https://github.com/applicaai/kleister-nda)などに使用されます。

このモデルは [PreTrainedModel](/docs/transformers/main/ja/main_classes/model#transformers.PreTrainedModel) を継承しています。ライブラリがすべてのモデルに対して実装している汎用的なメソッド（ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど）については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchの[torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module)のサブクラスでもあります。通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

#### forward[[transformers.LayoutLMv2ForTokenClassification.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, bbox: typing.Optional[torch.LongTensor] = None, image: typing.Optional[torch.FloatTensor] = None, attention_mask: typing.Optional[torch.FloatTensor] = None, token_type_ids: typing.Optional[torch.LongTensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, inputs_embeds: typing.Optional[torch.FloatTensor] = None, labels: typing.Optional[torch.LongTensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/layoutlmv2/modeling_layoutlmv2.py#L1000)

**パラメータ:**

input_ids (`torch.LongTensor`、shape は `batch_size, sequence_length`) : 語彙における入力シーケンスのトークンインデックスです。インデックスは [AutoTokenizer](/docs/transformers/main/ja/model_doc/auto#transformers.AutoTokenizer) を使用して取得できます。詳細については、[PreTrainedTokenizer.encode()](/docs/transformers/main/ja/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) および [PreTrainedTokenizer.__call__()](/docs/transformers/main/ja/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) を参照してください。 [入力 ID とは何か？](../glossary#input-ids)

bbox (`torch.LongTensor`、shape `(batch_size, sequence_length, 4)`、*optional*) : 各入力シーケンスのトークンのバウンディングボックス。範囲 `[0, config.max_2d_position_embeddings-1]` から選択されます。各バウンディングボックスは (x0, y0, x1, y1) 形式の正規化された値であるべきで、(x0, y0) はバウンディングボックスの左上隅の位置に対応し、(x1, y1) は右下隅の位置を表します。

image (`torch.FloatTensor` の形状が `(batch_size, num_channels, height, width)` または `detectron.structures.ImageList` で、その `tensors` の形状が `(batch_size, num_channels, height, width)` の場合) : ドキュメント画像のバッチ。

attention_mask (`torch.FloatTensor`、形状 `(batch_size, sequence_length)`、*任意*) : パディングトークンのインデックスに対してアテンションを実行しないためのマスク。`[0, 1]` から選択されるマスクの値:  - **マスクされない**トークンは 1、**マスクされる**トークンは 0。  [アテンションマスクとは?](../glossary#attention-mask)

token_type_ids (`torch.LongTensor`、shape `batch_size, sequence_length`、*任意*) : 入力の前半と後半を示すセグメントトークンインデックス。インデックスは`[0, 1]`から選択されます:  - 0 は*文 A*のトークンに対応します。 - 1 は*文 B*のトークンに対応します。  [トークンタイプIDとは何ですか？](../glossary#token-type-ids)

position_ids (`torch.LongTensor`、形状 `batch_size, sequence_length`、*任意*) : 位置埋め込みにおける、各入力シーケンスのトークンの位置のインデックスです。`[0, config.max_position_embeddings - 1]` の範囲から選択されます。 [位置 ID とは何か？](../glossary#position-ids)

inputs_embeds (`torch.FloatTensor`、shape `(batch_size, sequence_length, hidden_size)`、*任意*) : `input_ids` を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、`input_ids` のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。

labels (`torch.LongTensor`、shape `(batch_size, sequence_length)`、*optional*) : トークン分類損失を計算するためのラベル。インデックスは `[0, ..., config.num_labels - 1]` の範囲である必要があります。

**戻り値:** [TokenClassifierOutput](/docs/transformers/main/ja/main_classes/output#transformers.modeling_outputs.TokenClassifierOutput) または `tuple(torch.FloatTensor)`

設定([LayoutLMv2Config](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Config))や入力に応じて、さまざまな要素を含む [TokenClassifierOutput](/docs/transformers/main/ja/main_classes/output#transformers.modeling_outputs.TokenClassifierOutput)、または `torch.FloatTensor` のタプル(`return_dict=False` が渡された場合、または `config.return_dict=False` の場合)。

[LayoutLMv2ForTokenClassification](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2ForTokenClassification) の forward メソッドは、`__call__` という特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく`Module`インスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを無視してしまいます。

- **loss** (`torch.FloatTensor`、shape `(1,)`、*optional*、`labels` が指定された場合に返されます) -- 分類損失。
- **logits** (`torch.FloatTensor`、shape `(batch_size, sequence_length, config.num_labels)`) -- SoftMax 適用前の分類スコア。
- **hidden_states** (`tuple(torch.FloatTensor)`、*optional*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) -- `torch.FloatTensor` のタプル（埋め込み層を持つモデルの場合、埋め込みの出力用が 1 つ、各層の出力用が 1 つずつ）で、形状は `(batch_size, sequence_length, hidden_size)` です。

  各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
- **attentions** (`tuple(torch.FloatTensor)`、*optional*、`output_attentions=True` が渡された場合または `config.output_attentions=True` の場合に返されます) -- `torch.FloatTensor` のタプル（各レイヤーごとに1つ）で、形状は `(batch_size, num_heads, sequence_length, sequence_length)` です。

  アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

例:

```python
>>> from transformers import AutoProcessor, LayoutLMv2ForTokenClassification, set_seed
>>> from PIL import Image
>>> from datasets import load_dataset

>>> set_seed(0)

>>> datasets = load_dataset("nielsr/funsd", split="test")
>>> labels = datasets.features["ner_tags"].feature.names
>>> id2label = {v: k for v, k in enumerate(labels)}

>>> processor = AutoProcessor.from_pretrained("microsoft/layoutlmv2-base-uncased", revision="no_ocr")
>>> model = LayoutLMv2ForTokenClassification.from_pretrained(
...     "microsoft/layoutlmv2-base-uncased", num_labels=len(labels)
... )

>>> data = datasets[0]
>>> image = Image.open(data["image_path"]).convert("RGB")
>>> words = data["words"]
>>> boxes = data["bboxes"]  # make sure to normalize your bounding boxes
>>> word_labels = data["ner_tags"]
>>> encoding = processor(
...     image,
...     words,
...     boxes=boxes,
...     word_labels=word_labels,
...     padding="max_length",
...     truncation=True,
...     return_tensors="pt",
... )

>>> outputs = model(**encoding)
>>> logits, loss = outputs.logits, outputs.loss

>>> predicted_token_class_ids = logits.argmax(-1)
>>> predicted_tokens_classes = [id2label[t.item()] for t in predicted_token_class_ids[0]]
>>> predicted_tokens_classes[:5]  # results are not good without further fine-tuning
['I-HEADER', 'I-HEADER', 'I-QUESTION', 'I-HEADER', 'I-QUESTION']
```

## LayoutLMv2ForQuestionAnswering[[transformers.LayoutLMv2ForQuestionAnswering]]

#### transformers.LayoutLMv2ForQuestionAnswering[[transformers.LayoutLMv2ForQuestionAnswering]]

```python
transformers.LayoutLMv2ForQuestionAnswering(config: LayoutLMv2Config, has_visual_segment_embedding = True)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/layoutlmv2/modeling_layoutlmv2.py#L1121)

**パラメータ:**

config ([LayoutLMv2Config](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Config)) : モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、[from_pretrained()](/docs/transformers/main/ja/main_classes/model#transformers.PreTrainedModel.from_pretrained) メソッドを確認してください。

has_visual_segment_embedding (`bool`、*任意*、デフォルトは`True`) : 視覚セグメント埋め込みを追加するかどうか。

SQuAD などの抽出型質問応答タスク向けに、レイヤーの上部にスパン分類ヘッドを備えた Layoutlmv2 トランスフォーマー（隠れ状態の出力の上に線形レイヤーを置き、`span start logits` と `span end logits` を計算します）。

このモデルは [PreTrainedModel](/docs/transformers/main/ja/main_classes/model#transformers.PreTrainedModel) を継承しています。ライブラリがすべてのモデルに対して実装している汎用的なメソッド（ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど）については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchの[torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module)のサブクラスでもあります。通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

#### forward[[transformers.LayoutLMv2ForQuestionAnswering.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, bbox: typing.Optional[torch.LongTensor] = None, image: typing.Optional[torch.FloatTensor] = None, attention_mask: typing.Optional[torch.FloatTensor] = None, token_type_ids: typing.Optional[torch.LongTensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, inputs_embeds: typing.Optional[torch.FloatTensor] = None, start_positions: typing.Optional[torch.LongTensor] = None, end_positions: typing.Optional[torch.LongTensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/layoutlmv2/modeling_layoutlmv2.py#L1139)

**パラメータ:**

input_ids (`torch.LongTensor`、shape は `batch_size, sequence_length`) : 語彙における入力シーケンスのトークンインデックスです。インデックスは [AutoTokenizer](/docs/transformers/main/ja/model_doc/auto#transformers.AutoTokenizer) を使用して取得できます。詳細については、[PreTrainedTokenizer.encode()](/docs/transformers/main/ja/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) および [PreTrainedTokenizer.__call__()](/docs/transformers/main/ja/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) を参照してください。 [入力 ID とは何か？](../glossary#input-ids)

bbox (`torch.LongTensor`、shape `(batch_size, sequence_length, 4)`、*optional*) : 各入力シーケンスのトークンのバウンディングボックス。範囲 `[0, config.max_2d_position_embeddings-1]` から選択されます。各バウンディングボックスは (x0, y0, x1, y1) 形式の正規化された値であるべきで、(x0, y0) はバウンディングボックスの左上隅の位置に対応し、(x1, y1) は右下隅の位置を表します。

image (`torch.FloatTensor` の形状が `(batch_size, num_channels, height, width)` または `detectron.structures.ImageList` で、その `tensors` の形状が `(batch_size, num_channels, height, width)` の場合) : ドキュメント画像のバッチ。

attention_mask (`torch.FloatTensor`、形状 `(batch_size, sequence_length)`、*任意*) : パディングトークンのインデックスに対してアテンションを実行しないためのマスク。`[0, 1]` から選択されるマスクの値:  - **マスクされない**トークンは 1、**マスクされる**トークンは 0。  [アテンションマスクとは?](../glossary#attention-mask)

token_type_ids (`torch.LongTensor`、shape `batch_size, sequence_length`、*任意*) : 入力の前半と後半を示すセグメントトークンインデックス。インデックスは`[0, 1]`から選択されます:  - 0 は*文 A*のトークンに対応します。 - 1 は*文 B*のトークンに対応します。  [トークンタイプIDとは何ですか？](../glossary#token-type-ids)

position_ids (`torch.LongTensor`、形状 `batch_size, sequence_length`、*任意*) : 位置埋め込みにおける、各入力シーケンスのトークンの位置のインデックスです。`[0, config.max_position_embeddings - 1]` の範囲から選択されます。 [位置 ID とは何か？](../glossary#position-ids)

inputs_embeds (`torch.FloatTensor`、shape `(batch_size, sequence_length, hidden_size)`、*任意*) : `input_ids` を渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込み参照行列よりも、`input_ids` のインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。

start_positions (`torch.LongTensor`、shape `(batch_size,)`、*任意*) : トークン分類損失の計算に使用する、ラベル付きスパンの開始位置（インデックス）のラベル。位置はシーケンスの長さ（`sequence_length`）にクランプされます。シーケンス外の位置は、損失の計算には考慮されません。

end_positions (`torch.LongTensor`、shape `(batch_size,)`、*任意*) : トークン分類損失の計算に使用する、ラベル付きスパンの終了位置（インデックス）のラベル。位置はシーケンスの長さ（`sequence_length`）にクランプされます。シーケンス外の位置は、損失の計算には考慮されません。

**戻り値:** [QuestionAnsweringModelOutput](/docs/transformers/main/ja/main_classes/output#transformers.modeling_outputs.QuestionAnsweringModelOutput) または `tuple(torch.FloatTensor)`

`torch.FloatTensor` のタプル、または [QuestionAnsweringModelOutput](/docs/transformers/main/ja/main_classes/output#transformers.modeling_outputs.QuestionAnsweringModelOutput)（`return_dict=False` が渡された場合、または `config.return_dict=False` の場合）。設定（[LayoutLMv2Config](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2Config)）や入力に応じて、さまざまな要素で構成されます。

[LayoutLMv2ForQuestionAnswering](/docs/transformers/main/ja/model_doc/layoutlmv2#transformers.LayoutLMv2ForQuestionAnswering)のforwardメソッドは、`__call__`特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく`Module`インスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを無視してしまいます。

- **loss** (`torch.FloatTensor`、shape `(1,)`、*optional*、`labels` が指定された場合に返されます) -- 総スパン抽出損失は、開始位置と終了位置の Cross-Entropy の和です。
- **start_logits** (`torch.FloatTensor`、形状 `(batch_size, sequence_length)`) -- SoftMax 適用前のスパン開始スコア。
- **end_logits** (`torch.FloatTensor`、shape `(batch_size, sequence_length)`) -- スパンの終了スコア（SoftMax 適用前）。
- **hidden_states** (`tuple(torch.FloatTensor)`、*optional*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) -- `torch.FloatTensor` のタプル（埋め込み層を持つモデルの場合、埋め込みの出力用が 1 つ、各層の出力用が 1 つずつ）で、形状は `(batch_size, sequence_length, hidden_size)` です。

  各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
- **attentions** (`tuple(torch.FloatTensor)`、*optional*、`output_attentions=True` が渡された場合または `config.output_attentions=True` の場合に返されます) -- `torch.FloatTensor` のタプル（各レイヤーごとに1つ）で、形状は `(batch_size, num_heads, sequence_length, sequence_length)` です。

  アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

例:

以下の例では、LayoutLMv2 モデルにテキストの画像を与え、質問をします。モデルは、画像から解析されたテキスト内の答えの範囲（スパン）として、答えの予測を返します。

```python
>>> from transformers import AutoProcessor, LayoutLMv2ForQuestionAnswering, set_seed
>>> import torch
>>> from PIL import Image
>>> from datasets import load_dataset

>>> set_seed(0)
>>> processor = AutoProcessor.from_pretrained("microsoft/layoutlmv2-base-uncased")
>>> model = LayoutLMv2ForQuestionAnswering.from_pretrained("microsoft/layoutlmv2-base-uncased")

>>> dataset = load_dataset("hf-internal-testing/fixtures_docvqa")
>>> image = dataset["test"][0]["image"]
>>> question = "When is coffee break?"
>>> encoding = processor(image, question, return_tensors="pt")

>>> outputs = model(**encoding)
>>> predicted_start_idx = outputs.start_logits.argmax(-1).item()
>>> predicted_end_idx = outputs.end_logits.argmax(-1).item()
>>> predicted_start_idx, predicted_end_idx
(30, 191)

>>> predicted_answer_tokens = encoding.input_ids.squeeze()[predicted_start_idx : predicted_end_idx + 1]
>>> predicted_answer = processor.tokenizer.decode(predicted_answer_tokens)
>>> predicted_answer  # results are not good without further fine-tuning
'44 a. m. to 12 : 25 p. m. 12 : 25 to 12 : 58 p. m. 12 : 58 to 4 : 00 p. m. 2 : 00 to 5 : 00 p. m. coffee break coffee will be served for men and women in the lobby adjacent to exhibit area. please move into exhibit area. ( exhibits open ) trrf general session ( part | ) presiding : lee a. waller trrf vice president " introductory remarks " lee a. waller, trrf vice presi - dent individual interviews with trrf public board members and sci - entific advisory council mem - bers conducted by trrf treasurer philip g. kuehn to get answers which the public refrigerated warehousing industry is looking for. plus questions from'
```

```python
>>> target_start_index = torch.tensor([7])
>>> target_end_index = torch.tensor([14])
>>> outputs = model(**encoding, start_positions=target_start_index, end_positions=target_end_index)
>>> predicted_answer_span_start = outputs.start_logits.argmax(-1).item()
>>> predicted_answer_span_end = outputs.end_logits.argmax(-1).item()
>>> predicted_answer_span_start, predicted_answer_span_end
(30, 191)
```

