Transformers documentation
LayoutLMV2
Bu model 2020-12-29 tarihinde HF papers'ta yayımlanmış ve 2021-08-30 tarihinde Hugging Face Transformers'a katkıda bulunmuştur.
LayoutLMV2
Genel Bakış
LayoutLMV2 modeli, Yang Xu, Yiheng Xu, Tengchao Lv, Lei Cui, Furu Wei, Guoxin Wang, Yijuan Lu, Dinei Florencio, Cha Zhang, Wanxiang Che, Min Zhang ve Lidong Zhou tarafından LayoutLMv2: Multi-modal Pre-training for Visually-Rich Document Understanding makalesinde önerilmiştir. LayoutLMV2, LayoutLM'yi geliştirerek çeşitli belge görüntüsü anlama testlerinde en iyi sonuçları elde eder:
- Taranmış belgelerden bilgi çıkarımı: FUNSD veri seti (30.000'den fazla kelime içeren 199 etiketli form koleksiyonu), CORD veri seti (eğitim için 800, doğrulama için 100 ve test için 100 fişten oluşan koleksiyon), SROIE veri seti (eğitim için 626 ve test için 347 fişten oluşan koleksiyon) ve Kleister-NDA veri seti (EDGAR veritabanından gizlilik sözleşmeleri içeren, eğitim için 254, doğrulama için 83 ve test için 203 belgeden oluşan koleksiyon).
- belge görüntü sınıflandırma: RVL-CDIP veri seti (16 sınıfın birine ait 400.000 görüntünün koleksiyonu).
- belge görsel soru cevaplama: DocVQA veri seti (12.000'den fazla belge görüntüsü üzerinde tanımlanmış 50.000 sorudan oluşan bir koleksiyon).
Makalenin özeti aşağıdaki gibidir:
Metin ve yerleşim ön eğitimi, etkili model mimarisi ve büyük ölçekli etiketsiz taranmış/dijital doğmuş belgelerin avantajı sayesinde, görsel açıdan zengin çeşitli belge anlama görevlerinde etkili olmuştur. Bu makalede, yeni model mimarileri ve ön eğitim görevlerinden yararlanılan çok modlu bir çerçevede metin, yerleşim ve görüntüyü ön eğiterek LayoutLMv2'yi sunuyoruz. Özellikle LayoutLMv2, ön eğitim aşamasında yalnızca mevcut maskeli görsel-dil modelleme görevini değil, aynı zamanda çapraz modluluk etkileşiminin daha iyi öğrenilmesini sağlayan yeni metin-görüntü hizalama ve metin-görüntü eşleştirme görevlerini de kullanır. Bunun yanı sıra, Transformer mimarisine uzay farkındalıklı bir öz-dikkat mekanizması entegre ederek, modelin farklı metin blokları arasındaki göreli konumsal ilişkiyi tam olarak anlayabilmesini sağlar. Deneysel sonuçlar, LayoutLMv2'nin güçlü baz çizgilerini geride bıraktığını ve 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) ve DocVQA (0.7295 -> 0.8672) dahil olmak üzere geniş bir yelpazede görsel açıdan zengin aşağı akış belge anlama görevlerinde yeni en iyi sonuçları elde ettiğini göstermektedir. Ön eğitilmiş LayoutLMv2 modeli bu https URL adresinde herkese açıktır.
LayoutLMv2, detectron2, torchvision ve tesseract bileşenlerine bağımlıdır. Bunları yüklemek için aşağıdaki komutu çalıştırın:
python -m pip install 'git+https://github.com/facebookresearch/detectron2.git'
python -m pip install torchvision tesseract(LayoutLMv2 için geliştirme yapıyorsanız, doctest'lerin geçmesi için bu paketlerin de yüklenmesi gerektiğini unutmayın.)
Kullanım ipuçları
- LayoutLMv1 ile LayoutLMv2 arasındaki temel fark, ikincisinin ön eğitme sırasında görsel gömme (embedding) kullanmasıdır (LayoutLMv1 ise görsel gömme yalnızca ince ayar sırasında ekler).
- LayoutLMv2, öz-dikkat katmanlarındaki dikkat puanlarına hem göreli 1B dikkat sapması hem de uzamsal 2B dikkat sapması ekler. Ayrıntılar makalenin 5. sayfasında bulunabilir.
- LayoutLMv2 modelinin RVL-CDIP, FUNSD, DocVQA ve CORD üzerinde nasıl kullanılacağını gösteren demo defterleri burada bulunabilir.
- LayoutLMv2, görsel omurgası için Facebook AI'ın Detectron2 paketini kullanır. Kurulum talimatları için bu bağlantıya bakın.
input_idsdışında forward(),imagevebboxolmak üzere 2 ek girdi bekler.imagegirdisi, metin tokenlarının bulunduğu orijinal belge görseline karşılık gelir. Model, her belge görselinin 224x224 boyutunda olmasını bekler. Bu, belge görselleri bir partiden oluşuyorsaimage'ın (batch_size, 3, 224, 224) biçiminde bir tensör olması gerektiği anlamına gelir. Bu, birtorch.Tensorveya birDetectron2.structures.ImageListolabilir. Kanalları normalize etmenize gerek yoktur, çünkü bunu model yapar. Dikkat edilmesi gereken önemli bir nokta, görsel omurganın (visual backbone) RGB yerine BGR kanallarını beklemesidir; çünkü Detectron2'deki tüm modeller BGR formatı kullanılarak önceden eğitilmiştir.bboxgirdisi, girdi metin tokenlarının sınırlayıcı kutularıdır (yani 2B konumları). Bu, LayoutLMModel ile aynıdır. Bunlar, Google'ın Tesseract gibi harici bir OCR motoru kullanılarak elde edilebilir (Python sarmalayıcısı mevcuttur). Her sınırlayıcı kutu (x0, y0, x1, y1) biçiminde olmalıdır; burada (x0, y0) sınırlayıcı kutunun sol üst köşesinin konumuna, (x1, y1) ise sağ alt köşesinin konumuna karşılık gelir. Sınırlayıcı kutuların önce 0-1000 ölçeğine normalize edilmesi gerektiğini unutmayın. Normalize etmek için aşağıdaki işlevi kullanabilirsiniz:
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)),
]Burada width ve height, token'ın göründüğü orijinal belgenin (görsel yeniden boyutlandırılmadan önce) genişlik ve yüksekliğine karşılık gelir. Bunlar, örneğin Python Image Library (PIL) kütüphanesi kullanılarak aşağıdaki gibi elde edilebilir:
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.sizeAncak bu model, model için verileri doğrudan hazırlamaya (içeride OCR uygulaması dahil) olan yeni bir LayoutLMv2Processor içerir. Daha fazla bilgi aşağıdaki “Kullanım” bölümünde bulunabilir.
- Dahili olarak LayoutLMv2Model,
imagegirdisini görsel omurgasından geçirerek, LayoutLMv2Config sınıfınınimage_feature_pool_shapeözniteliğine eşit bir şekle sahip, daha düşük çözünürlüklü bir özellik haritası elde eder. Bu özellik haritası daha sonra düzleştirilerek bir görsel jeton dizisi oluşturulur. Özellik haritasının boyutu varsayılan olarak 7x7 olduğundan, 49 görsel jeton elde edilir. Bu jetonlar metin jetonlarıyla birleştirilir ve Transformer kodlayıcıdan geçirilir. Bu, metin jetonlarını en uzun uzunluğa kadar doldurmanız durumunda modelin son gizli durumlarının uzunluğunun 512 + 49 = 561 olacağı anlamına gelir. Daha genel olarak, son gizli durumların şekliseq_length+image_feature_pool_shape[0]*config.image_feature_pool_shape[1]şeklindedir. - from_pretrained() çağrıldığında, başlatılmamış uzun bir parametre adı listesiyle birlikte bir uyarı yazdırılır. Bu bir sorun değildir, çünkü bu parametreler toplama normalizasyonu istatistikleridir ve özel bir veri kümesinde ince ayar sırasında değerlere sahip olacaklardır.
- Modeli dağıtık bir ortamda eğitmek istiyorsanız, görsel omurganın (visual backbone) batch normalization katmanlarını doğru bir şekilde senkronize etmek için modele
synchronize_batch_normçağrısını yapmanızdan emin olun.
Ayrıca, LayoutLMv2'nin çok dilli sürümü olan LayoutXLM de bulunmaktadır. Daha fazla bilgi LayoutXLM'in dokümantasyon sayfasında bulunabilir.
Kaynaklar
LayoutLMv2 ile başlamanıza yardımcı olmak için resmi Hugging Face ve topluluk (🌎 ile belirtilen) kaynaklarının listesi. Burada yer alacak bir kaynak göndermek isterseniz, bir Pull Request açmaktan çekinmeyin; inceleyeceğiz! Kaynağın, mevcut bir kaynağı tekrarlamak yerine ideal olarak yeni bir şeyi göstermesi beklenir.
- RVL-CDIP veri setinde metin sınıflandırma için LayoutLMv2'yi ince ayarlamayı gösteren bir defter.
- Bkz: Metin sınıflandırma görevi kılavuzu
- DocVQA veri setinde soru-cevap için LayoutLMv2'yi ince ayar yapmanın nasıl yapılacağını gösteren bir defter.
- Bkz: Soru yanıtlama görevi kılavuzu
- Bkz: Belge soru-cevap görevi kılavuzu
- CORD veri setinde token sınıflandırma için LayoutLMv2'yi ince ayar yapmayı gösteren bir defter.
- FUNSD veri setinde token sınıflandırma için LayoutLMv2'yi ince ayar yapmanın nasıl yapılacağını gösteren bir defter.
- Bkz: Token sınıflandırma görevi kılavuzu
Kullanım: LayoutLMv2Processor
Model için verileri hazırlamanın en kolay yolu, LayoutLMv2Processor kullanmaktır. Bu sınıf, içsel olarak bir görüntü işleyicisini (LayoutLMv2ImageProcessor) ve bir belirteçleştiriciyi (LayoutLMv2Tokenizer veya LayoutLMv2TokenizerFast) birleştirir. Görüntü işleyicisi görüntü modalitesini, belirteçleştirici ise metin modalitesini işler. Bir işlemci her ikisini bir araya getirir; bu da LayoutLMv2 gibi çok modallı modeller için idealdir. Yalnızca tek bir modaliteyi işlemek istiyorsanız, her ikisini ayrı ayrı kullanmaya devam edebilirsiniz.
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)Kısaca, LayoutLMv2Processor'a bir belge görüntüsü (ve olası ek veriler) sağlanabilir ve bu işlemci, modelin beklediği girdileri oluşturur. İşlemci, içsel olarak önce LayoutLMv2ImageProcessor'u kullanarak görüntü üzerinde OCR uygular; böylece kelime listesini ve normalize edilmiş sınırlayıcı kutuları elde eder ve ayrıca image girdisini almak için görüntüyü belirli bir boyuta yeniden boyutlandırır. Kelimeler ve normalize edilmiş sınırlayıcı kutular daha sonra LayoutLMv2Tokenizer veya LayoutLMv2TokenizerFast'e iletilir; bu bileşenler onları token düzeyindeki input_ids, attention_mask, token_type_ids, bbox değerlerine dönüştürür. İsteğe bağlı olarak, işlemciye kelime etiketleri sağlanabilir ve bunlar token düzeyindeki labels değerlerine dönüştürülür.
LayoutLMv2Processor, alt yapısında Google'ın Tesseract OCR motorunun bir Python sarmalayıcısı olan PyTesseract'i kullanır. Dikkat edin, kendi OCR motorunuzu kullanmaya devam edebilir ve kelimeleri ile normalize kutuları kendiniz sağlayabilirsiniz. Bunun için LayoutLMv2ImageProcessor'un apply_ocr parametresi False olarak ayarlanarak başlatılması gerekir.
Toplamda, işlemci tarafından desteklenen 5 kullanım senaryosu vardır. Aşağıda bunların tümünü listeliyoruz. Bu kullanım senaryolarının her birinin hem toplu (batched) hem de toplu olmayan (non-batched) girdilerle çalıştığını unutmayın (bunları toplu olmayan girdiler için gösteriyoruz).
Kullanım durumu 1: belge görüntü sınıflandırma (eğitim, çıkarım) + token sınıflandırma (çıkarım), apply_ocr = True
Bu, en basit durumdur; işlemci (aslında görüntü işlemcisi), görüntü üzerinde OCR uygulayarak kelimeleri ve normalize edilmiş sınırlayıcı kutuları alır.
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'])Kullanım durumu 2: belge görüntü sınıflandırma (eğitim, çıkarım) + token sınıflandırma (çıkarım), apply_ocr=False
OCR işlemini kendilerinin yapmak istenmesi durumunda, görüntü işleyicisi apply_ocr parametresi False olarak ayarlanarak başlatılabilir. Bu durumda, kelimeler ve bunlara karşılık gelen (normalize edilmiş) sınırlayıcı kutuların işleyiciye kendileri tarafından sağlanması gerekir.
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'])Kullanım durumu 3: token sınıflandırma (eğitim), apply_ocr=False
Token sınıflandırma görevleri (FUNSD, CORD, SROIE, Kleister-NDA gibi) için, bir model eğitmek üzere ilgili kelime etiketlerini de sağlayabilirsiniz. İşleyici bu etiketleri token düzeyinde labels olarak dönüştürür. Varsayılan olarak, bir kelimenin yalnızca ilk wordpiece'ini etiketler ve kalan wordpiece'leri PyTorch'un CrossEntropyLoss'ünün ignore_index değeri olan -100 ile etiketler. Bir kelimenin tüm wordpiece'lerinin etiketlenmesini istiyorsanız, tokenizer'ı only_label_first_subword parametresi False olarak ayarlanarak başlatabilirsiniz.
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'])Kullanım senaryosu 4: Görsel soru yanıtlama (çıkarsama), apply_ocr=True
Görsel soru yanıtlama görevleri (DocVQA gibi) için işlemciye bir soru verebilirsiniz. Varsayılan olarak işlemci, görselde OCR uygular ve [CLS] soru belirteçleri [SEP] kelime belirteçleri [SEP] yapısını oluşturur.
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'])Kullanım senaryosu 5: görsel soru yanıtlama (çıkarsama), apply_ocr=False
Görsel soru yanıtlama görevleri (DocVQA gibi) için işlemciye bir soru verebilirsiniz. OCR işlemini kendiniz yapmak istiyorsanız, işlemciye kendi kelimelerinizi ve (normalize edilmiş) sınırlayıcı kutularınızı sağlayabilirsiniz.
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
sınıf transformers.LayoutLMv2Config
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 30522hidden_size: int = 768num_hidden_layers: int = 12num_attention_heads: int = 12intermediate_size: int = 3072hidden_act: str = 'gelu'hidden_dropout_prob: float | int = 0.1attention_probs_dropout_prob: float | int = 0.1max_position_embeddings: int = 512type_vocab_size: int = 2initializer_range: float = 0.02layer_norm_eps: float = 1e-12pad_token_id: int | None = 0max_2d_position_embeddings: int = 1024max_rel_pos: int = 128rel_pos_bins: int = 32fast_qkv: bool = Truemax_rel_2d_pos: int = 256rel_2d_pos_bins: int = 64convert_sync_batchnorm: bool = Trueimage_feature_pool_shape: list[int] | tuple[int, ...] = (7, 7, 256)coordinate_size: int = 128shape_size: int = 128has_relative_attention_bias: bool = Truehas_spatial_attention_bias: bool = Truehas_visual_segment_embedding: bool = Falsedetectron2_config_args: dict | None = None )
Parametreler
- vocab_size (
int, isteğe bağlı, varsayılan30522) — Modelin sözlük boyutu.input_idstarafından temsil edilebilecek farklı token sayısını tanımlar. - hidden_size (
int, isteğe bağlı, varsayılan768) — Gizli temsillerin boyutu. - num_hidden_layers (
int, isteğe bağlı, varsayılan12) — Transformer çözücüdeki gizli katman sayısı. - num_attention_heads (
int, isteğe bağlı, varsayılan12) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - intermediate_size (
int, isteğe bağlı, varsayılan3072) — MLP temsillerinin boyutu. - hidden_act (
str, isteğe bağlı, varsayılangelu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin,"gelu","relu","silu"vb. - hidden_dropout_prob (
Union[float, int], isteğe bağlı, varsayılan0.1) — Gömme, kodlayıcı ve havuzlayıcıdaki tüm tam bağlı katmanlar için dropout olasılığı. - attention_probs_dropout_prob (
Union[float, int], isteğe bağlı, varsayılan0.1) — Dikkat olasılıkları için dropout oranı. - max_position_embeddings (
int, isteğe bağlı, varsayılan512) — Bu modelin kullanılabileceği en uzun dizi uzunluğu. - type_vocab_size (
int, isteğe bağlı, varsayılan2) —token_type_idsiçin sözlük boyutu. - initializer_range (
float, isteğe bağlı, varsayılan0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması. - layer_norm_eps (
float, isteğe bağlı, varsayılan1e-12) — Katman normalizasyon katmanları tarafından kullanılan epsilon. - pad_token_id (
int, isteğe bağlı, varsayılan0) — Sözlükte dolgu için kullanılan token kimliği. - max_2d_position_embeddings (
int, isteğe bağlı, varsayılan 1024) — 2D konum gömme (position embedding) ile kullanılabilecek en yüksek değer. Genellikle, olası durumlara karşı bu değeri büyük bir sayı olarak ayarlayın (ör. 1024). - max_rel_pos (
int, isteğe bağlı, varsayılan 128) — Öz-dikkat mekanizmasında kullanılacak maksimum göreli konum sayısı. - rel_pos_bins (
int, isteğe bağlı, varsayılan 32) — Öz-dikkat mekanizmasında kullanılacak göreli konum kutucuğu sayısı. - fast_qkv (
bool, isteğe bağlı, varsayılanTrue) — Self-attention katmanlarında sorgular, anahtarlar ve değerler için tek bir matris kullanılıp kullanılmayacağı. - max_rel_2d_pos (
int, isteğe bağlı, varsayılan 256) — Öz-dikkat mekanizmasındaki göreli 2B konumların maksimum sayısı. - rel_2d_pos_bins (
int, isteğe bağlı, varsayılan 64) — Öz-dikkat mekanizmasındaki 2B göreli konum sınıflarının sayısı. - convert_sync_batchnorm (
bool, isteğe bağlı, varsayılanTrue) — Batch normalization katmanlarının senkronize batch normalization katmanlarına dönüştürülüp dönüştürülmeyeceği. - image_feature_pool_shape (
list[int], isteğe bağlı, varsayılan[7, 7, 256]) — Ortalama havuzlanmış özellik haritasının şekli. - coordinate_size (
int, isteğe bağlı, varsayılan 128) — Koordinat gömme boyutu. - shape_size (
int, isteğe bağlı, varsayılan 128) — Genişlik ve yükseklik gömme boyutu. - has_relative_attention_bias (
bool, isteğe bağlı, varsayılanTrue) — Self-attention mekanizmasında göreli dikkat sapması (relative attention bias) kullanılıp kullanılmayacağını belirtir. - has_spatial_attention_bias (
bool, isteğe bağlı, varsayılanTrue) — Self-attention mekanizmasında uzamsal dikkat sapması (spatial attention bias) kullanılıp kullanılmayacağı. - has_visual_segment_embedding (
bool, isteğe bağlı, varsayılanFalse) — Görsel segment gömme eklenip eklenmeyeceğini belirtir. - detectron2_config_args (
dict, isteğe bağlı) — Detectron2 görsel omurgasının yapılandırma argümanlarını içeren sözlük. Varsayılan değerlere ilişkin ayrıntılar için bu dosyaya bakınız.
Bu, bir LayoutLMv2Model yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Layoutlmv2 modelinin örneklenmesi ve model mimarisinin tanımlanması için kullanılır. Varsayılan değerlerle bir yapılandırma örneği oluşturmak, microsoft/layoutlmv2-base-uncased modelinin yapılandırmasına benzer bir yapılandırma elde edilmesini sağlar.
Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.
Örnek:
>>> 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.configLayoutLMv2ImageProcessor
sınıf transformers.LayoutLMv2ImageProcessor
< source >( **kwargs: *<class 'transformers.models.layoutlmv2.image_processing_layoutlmv2.LayoutLMv2ImageProcessorKwargs'> )
Parametreler
- do_convert_rgb (
bool, kwargs, opsiyonel) — Görselin RGB'ye dönüştürülüp dönüştürülmemesi. - do_resize (
bool, kwargs, isteğe bağlı, varsayılanTrue) — Görselin yeniden boyutlandırılıp boyutlandırılmayacağı. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, varsayılan{'height' -- 224, 'width': 224}): Modelin kabul ettiği maksimum giriş boyutlarını açıklar. - default_to_square (
bool, kwargs, isteğe bağlı, varsayılanTrue) — size bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görüntü kullanılıp kullanılmayacağı. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_cropuygulandıktan sonra çıktı görüntüsünün boyutu. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, varsayılan2) — Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu,PILImageResamplingenum değerlerinden biri olabilir. Yalnızcado_resizeTrueolarak ayarlanırsa etkilidir. - do_rescale (
bool, kwargs, opsiyonel) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği. - rescale_factor (
float, kwargs, opsiyonel, varsayılanNone) —do_rescaleTrueolarak ayarlandığında görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme çarpanı. - do_normalize (
bool, kwargs, opsiyonel) — Görselin normalize edilip edilmeyeceği. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü ortalaması. Yalnızcado_normalizeTrueolarak ayarlanırsa etkilidir. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü standart sapması. Yalnızcado_normalizeTrueolarak ayarlanmışsa etkilidir. - do_pad (
bool, kwargs, opsiyonel) — Görselin dolgu (padding) uygulanıp uygulanmayacağı. Dolgu, partideki en büyük boyuta veya görsel başına sabit kare bir boyuta yapılır. Kesin dolgu stratejisi modele bağlıdır. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Görsellerin doldurulacağı boyut,{"height": int, "width" int}biçiminde. Ön işleme için sağlanan herhangi bir görsel boyutundan büyük olmalıdır.pad_sizesağlanmazsa, görseller batch içindeki en büyük yüksekliğe ve genişliğe doldurulur. Yalnızcado_pad=True.olduğunda uygulanır. - do_center_crop (
bool, kwargs, opsiyonel) — Görselin ortadan kırpılıp kırpılmayacağı. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — YalnızcaChannelDimension.FIRSTdesteklenir. Yavaş işleyicilerle uyumluluk için eklendi. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — Girdi görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir:"channels_first"veyaChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü."channels_last"veyaChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü."none"veyaChannelDimension.NONE: (height, width) biçiminde görüntü.
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Videoların işleneceği cihaz. Ayarlanmamışsa, cihaz girdi videolarından çıkarılır. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) —'pt'olarak ayarlanırsa yığılmış tensörler döndürür, aksi takdirde tensör listesi döndürür. - disable_grouping (
bool, kwargs, opsiyonel) — Görsellerin boyuta göre gruplandırılmasını devre dışı bırakıp onları toplu olarak değil, bireysel olarak işlenmesini belirtir. None ise, görseller CPU üzerindeyse True, aksi halde False olarak ayarlanır. Bu seçim, burada ayrıntılandırıldığı üzere ampirik gözlemlere dayanmaktadır: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, isteğe bağlı) — Girdideki her görüntü için kullanılacak görüntü jetonlarının sayısı. Geriye dönük uyumluluk için eklendi ancak gelecekteki modellerde bu, bir işlemci özniteliği olarak ayarlanmalıdır. - apply_ocr (
bool, kwargs, opsiyonel, varsayılanself.apply_ocr) — Tesseract OCR motorunu uygulayarak kelimeleri ve normalize edilmiş sınırlayıcı kutuları (bounding box) almak için kullanılıp kullanılmayacağını belirtir.preprocessmetodundakiapply_ocrparametresi ile geçersiz kılınabilir. - ocr_lang (
str, kwargs, opsiyonel) — Tesseract OCR motorunun kullanacağı, ISO koduyla belirtilen dil. Varsayılan olarak İngilizce kullanılır.preprocessyöntemindekiocr_langparametresiyle geçersiz kılınabilir. - tesseract_config (
str, kwargs, isteğe bağlı) — Tesseract çağrılırkenconfigparametresine iletilen ek özel yapılandırma bayrakları. Örneğin: ‘—psm 6’.preprocessmetodundakitesseract_configparametresi tarafından geçersiz kılınabilir.
LayoutLMv2ImageProcessor görüntü işleyicisi oluşturur.
ön işleme
< source >( 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'> ) → ~image_processing_base.BatchFeature
Parametreler
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Ön işleme uygulanacak görüntü. Piksel değerleri 0 ile 255 arasında değişen tek bir görüntü veya görüntü grubu beklenir. Piksel değerleri 0 ile 1 arasında olan görüntüler geçiriliyorsado_rescale=Falseolarak ayarlayın. - do_convert_rgb (
bool, kwargs, opsiyonel) — Görselin RGB'ye dönüştürülüp dönüştürülmemesi. - do_resize (
bool, kwargs, opsiyonel) — Görselin yeniden boyutlandırılıp boyutlandırılmayacağı. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Modelin kabul ettiği maksimum giriş boyutlarını açıklar. - default_to_square (
bool, kwargs, opsiyonel) — Boyut bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görüntüye geçilip geçilmeyeceği. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_cropuygulandıktan sonra çıktı görüntüsünün boyutu. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu,PILImageResamplingenum değerlerinden biri olabilir. Yalnızcado_resizeTrueolarak ayarlanırsa etkilidir. - do_rescale (
bool, kwargs, opsiyonel) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği. - rescale_factor (
float, kwargs, opsiyonel) —do_rescaleTrueolarak ayarlanırsa görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme faktörü. - do_normalize (
bool, kwargs, opsiyonel) — Görselin normalize edilip edilmeyeceği. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü ortalaması. Yalnızcado_normalizeTrueolarak ayarlanırsa etkilidir. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü standart sapması. Yalnızcado_normalizeTrueolarak ayarlanmışsa etkilidir. - do_pad (
bool, kwargs, opsiyonel) — Görselin dolgu (padding) uygulanıp uygulanmayacağı. Dolgu, partideki en büyük boyuta veya görsel başına sabit kare bir boyuta yapılır. Kesin dolgu stratejisi modele bağlıdır. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Görsellerin doldurulacağı boyut,{"height": int, "width" int}biçiminde. Ön işleme için sağlanan herhangi bir görsel boyutundan büyük olmalıdır.pad_sizesağlanmazsa, görseller batch içindeki en büyük yüksekliğe ve genişliğe doldurulur. Yalnızcado_pad=True.olduğunda uygulanır. - do_center_crop (
bool, kwargs, opsiyonel) — Görselin ortadan kırpılıp kırpılmayacağı. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — YalnızcaChannelDimension.FIRSTdesteklenir. Yavaş işleyicilerle uyumluluk için eklendi. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — Girdi görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir:"channels_first"veyaChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü."channels_last"veyaChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü."none"veyaChannelDimension.NONE: (height, width) biçiminde görüntü.
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Videoların işleneceği cihaz. Ayarlanmamışsa, cihaz girdi videolarından çıkarılır. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) —'pt'olarak ayarlanırsa yığılmış tensörler döndürür, aksi takdirde tensör listesi döndürür. - disable_grouping (
bool, kwargs, opsiyonel) — Görsellerin boyuta göre gruplandırılmasını devre dışı bırakıp onları toplu olarak değil, bireysel olarak işlenmesini belirtir. None ise, görseller CPU üzerindeyse True, aksi halde False olarak ayarlanır. Bu seçim, burada ayrıntılandırıldığı üzere ampirik gözlemlere dayanmaktadır: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, isteğe bağlı) — Girdideki her görüntü için kullanılacak görüntü jetonlarının sayısı. Geriye dönük uyumluluk için eklendi ancak gelecekteki modellerde bu, bir işlemci özniteliği olarak ayarlanmalıdır. - apply_ocr (
bool, kwargs, opsiyonel, varsayılanself.apply_ocr) — Tesseract OCR motorunu uygulayarak kelimeleri ve normalize edilmiş sınırlayıcı kutuları (bounding box) almak için kullanılıp kullanılmayacağını belirtir.preprocessmetodundakiapply_ocrparametresi ile geçersiz kılınabilir. - ocr_lang (
str, kwargs, opsiyonel) — Tesseract OCR motorunun kullanacağı, ISO koduyla belirtilen dil. Varsayılan olarak İngilizce kullanılır.preprocessyöntemindekiocr_langparametresiyle geçersiz kılınabilir. - tesseract_config (
str, kwargs, isteğe bağlı) — Tesseract çağrılırkenconfigparametresine iletilen ek özel yapılandırma bayrakları. Örneğin: ‘—psm 6’.preprocessmetodundakitesseract_configparametresi tarafından geçersiz kılınabilir.
Dönüş değeri
~image_processing_base.BatchFeature
- data (
dict) — call yönteminin döndürdüğü listeler/diziler/tensörler sözlüğü (‘pixel_values’ vb.). - tensor_type (
Union[None, str, TensorType], isteğe bağlı) — Başlatma sırasında PyTorch/Numpy Tensörlerindeki tamsayı listelerini dönüştürmek için burada bir tensor_type verebilirsiniz.
LayoutLMv2ImageProcessorPil
sınıf transformers.LayoutLMv2ImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.layoutlmv2.image_processing_pil_layoutlmv2.LayoutLMv2ImageProcessorKwargs'> )
Parametreler
- do_convert_rgb (
bool, kwargs, opsiyonel) — Görselin RGB'ye dönüştürülüp dönüştürülmemesi. - do_resize (
bool, kwargs, isteğe bağlı, varsayılanTrue) — Görselin yeniden boyutlandırılıp boyutlandırılmayacağı. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, varsayılan{'height' -- 224, 'width': 224}): Modelin kabul ettiği maksimum giriş boyutlarını açıklar. - default_to_square (
bool, kwargs, isteğe bağlı, varsayılanTrue) — size bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görüntü kullanılıp kullanılmayacağı. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_cropuygulandıktan sonra çıktı görüntüsünün boyutu. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, varsayılan2) — Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu,PILImageResamplingenum değerlerinden biri olabilir. Yalnızcado_resizeTrueolarak ayarlanırsa etkilidir. - do_rescale (
bool, kwargs, opsiyonel) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği. - rescale_factor (
float, kwargs, opsiyonel, varsayılanNone) —do_rescaleTrueolarak ayarlandığında görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme çarpanı. - do_normalize (
bool, kwargs, opsiyonel) — Görselin normalize edilip edilmeyeceği. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü ortalaması. Yalnızcado_normalizeTrueolarak ayarlanırsa etkilidir. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü standart sapması. Yalnızcado_normalizeTrueolarak ayarlanmışsa etkilidir. - do_pad (
bool, kwargs, opsiyonel) — Görselin dolgu (padding) uygulanıp uygulanmayacağı. Dolgu, partideki en büyük boyuta veya görsel başına sabit kare bir boyuta yapılır. Kesin dolgu stratejisi modele bağlıdır. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Görsellerin doldurulacağı boyut,{"height": int, "width" int}biçiminde. Ön işleme için sağlanan herhangi bir görsel boyutundan büyük olmalıdır.pad_sizesağlanmazsa, görseller batch içindeki en büyük yüksekliğe ve genişliğe doldurulur. Yalnızcado_pad=True.olduğunda uygulanır. - do_center_crop (
bool, kwargs, opsiyonel) — Görselin ortadan kırpılıp kırpılmayacağı. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — YalnızcaChannelDimension.FIRSTdesteklenir. Yavaş işleyicilerle uyumluluk için eklendi. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — Girdi görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir:"channels_first"veyaChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü."channels_last"veyaChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü."none"veyaChannelDimension.NONE: (height, width) biçiminde görüntü.
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Videoların işleneceği cihaz. Ayarlanmamışsa, cihaz girdi videolarından çıkarılır. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) —'pt'olarak ayarlanırsa yığılmış tensörler döndürür, aksi takdirde tensör listesi döndürür. - disable_grouping (
bool, kwargs, opsiyonel) — Görsellerin boyuta göre gruplandırılmasını devre dışı bırakıp onları toplu olarak değil, bireysel olarak işlenmesini belirtir. None ise, görseller CPU üzerindeyse True, aksi halde False olarak ayarlanır. Bu seçim, burada ayrıntılandırıldığı üzere ampirik gözlemlere dayanmaktadır: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, isteğe bağlı) — Girdideki her görüntü için kullanılacak görüntü jetonlarının sayısı. Geriye dönük uyumluluk için eklendi ancak gelecekteki modellerde bu, bir işlemci özniteliği olarak ayarlanmalıdır. - apply_ocr (
bool, kwargs, opsiyonel, varsayılanself.apply_ocr) — Tesseract OCR motorunu uygulayarak kelimeleri ve normalize edilmiş sınırlayıcı kutuları (bounding box) almak için kullanılıp kullanılmayacağını belirtir.preprocessmetodundakiapply_ocrparametresi ile geçersiz kılınabilir. - ocr_lang (
str, kwargs, opsiyonel) — Tesseract OCR motorunun kullanacağı, ISO koduyla belirtilen dil. Varsayılan olarak İngilizce kullanılır.preprocessyöntemindekiocr_langparametresiyle geçersiz kılınabilir. - tesseract_config (
str, kwargs, isteğe bağlı) — Tesseract çağrılırkenconfigparametresine iletilen ek özel yapılandırma bayrakları. Örneğin: ‘—psm 6’.preprocessmetodundakitesseract_configparametresi tarafından geçersiz kılınabilir.
LayoutLMv2ImageProcessor görüntü işleyicisi oluşturur.
ön işleme
< source >( 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'> ) → ~image_processing_base.BatchFeature
Parametreler
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Ön işleme uygulanacak görüntü. Piksel değerleri 0 ile 255 arasında değişen tek bir görüntü veya görüntü grubu beklenir. Piksel değerleri 0 ile 1 arasında olan görüntüler geçiriliyorsado_rescale=Falseolarak ayarlayın. - do_convert_rgb (
bool, kwargs, opsiyonel) — Görselin RGB'ye dönüştürülüp dönüştürülmemesi. - do_resize (
bool, kwargs, opsiyonel) — Görselin yeniden boyutlandırılıp boyutlandırılmayacağı. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Modelin kabul ettiği maksimum giriş boyutlarını açıklar. - default_to_square (
bool, kwargs, opsiyonel) — Boyut bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görüntüye geçilip geçilmeyeceği. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_cropuygulandıktan sonra çıktı görüntüsünün boyutu. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu,PILImageResamplingenum değerlerinden biri olabilir. Yalnızcado_resizeTrueolarak ayarlanırsa etkilidir. - do_rescale (
bool, kwargs, opsiyonel) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği. - rescale_factor (
float, kwargs, opsiyonel) —do_rescaleTrueolarak ayarlanırsa görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme faktörü. - do_normalize (
bool, kwargs, opsiyonel) — Görselin normalize edilip edilmeyeceği. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü ortalaması. Yalnızcado_normalizeTrueolarak ayarlanırsa etkilidir. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü standart sapması. Yalnızcado_normalizeTrueolarak ayarlanmışsa etkilidir. - do_pad (
bool, kwargs, opsiyonel) — Görselin dolgu (padding) uygulanıp uygulanmayacağı. Dolgu, partideki en büyük boyuta veya görsel başına sabit kare bir boyuta yapılır. Kesin dolgu stratejisi modele bağlıdır. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Görsellerin doldurulacağı boyut,{"height": int, "width" int}biçiminde. Ön işleme için sağlanan herhangi bir görsel boyutundan büyük olmalıdır.pad_sizesağlanmazsa, görseller batch içindeki en büyük yüksekliğe ve genişliğe doldurulur. Yalnızcado_pad=True.olduğunda uygulanır. - do_center_crop (
bool, kwargs, opsiyonel) — Görselin ortadan kırpılıp kırpılmayacağı. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — YalnızcaChannelDimension.FIRSTdesteklenir. Yavaş işleyicilerle uyumluluk için eklendi. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — Girdi görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir:"channels_first"veyaChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü."channels_last"veyaChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü."none"veyaChannelDimension.NONE: (height, width) biçiminde görüntü.
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Videoların işleneceği cihaz. Ayarlanmamışsa, cihaz girdi videolarından çıkarılır. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) —'pt'olarak ayarlanırsa yığılmış tensörler döndürür, aksi takdirde tensör listesi döndürür. - disable_grouping (
bool, kwargs, opsiyonel) — Görsellerin boyuta göre gruplandırılmasını devre dışı bırakıp onları toplu olarak değil, bireysel olarak işlenmesini belirtir. None ise, görseller CPU üzerindeyse True, aksi halde False olarak ayarlanır. Bu seçim, burada ayrıntılandırıldığı üzere ampirik gözlemlere dayanmaktadır: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, isteğe bağlı) — Girdideki her görüntü için kullanılacak görüntü jetonlarının sayısı. Geriye dönük uyumluluk için eklendi ancak gelecekteki modellerde bu, bir işlemci özniteliği olarak ayarlanmalıdır. - apply_ocr (
bool, kwargs, opsiyonel, varsayılanself.apply_ocr) — Tesseract OCR motorunu uygulayarak kelimeleri ve normalize edilmiş sınırlayıcı kutuları (bounding box) almak için kullanılıp kullanılmayacağını belirtir.preprocessmetodundakiapply_ocrparametresi ile geçersiz kılınabilir. - ocr_lang (
str, kwargs, opsiyonel) — Tesseract OCR motorunun kullanacağı, ISO koduyla belirtilen dil. Varsayılan olarak İngilizce kullanılır.preprocessyöntemindekiocr_langparametresiyle geçersiz kılınabilir. - tesseract_config (
str, kwargs, isteğe bağlı) — Tesseract çağrılırkenconfigparametresine iletilen ek özel yapılandırma bayrakları. Örneğin: ‘—psm 6’.preprocessmetodundakitesseract_configparametresi tarafından geçersiz kılınabilir.
Dönüş değeri
~image_processing_base.BatchFeature
- data (
dict) — call yönteminin döndürdüğü listeler/diziler/tensörler sözlüğü (‘pixel_values’ vb.). - tensor_type (
Union[None, str, TensorType], isteğe bağlı) — Başlatma sırasında PyTorch/Numpy Tensörlerindeki tamsayı listelerini dönüştürmek için burada bir tensor_type verebilirsiniz.
LayoutLMv2Tokenizer
sınıf transformers.LayoutLMv2Tokenizer
< source >( vocab: str | dict[str, int] | None = Nonedo_lower_case = Trueunk_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 = -100only_label_first_subword = Truetokenize_chinese_chars = Truestrip_accents = Nonemodel_max_length = 512**kwargs )
Parametreler
- vocab_file (
str) — Sözlüğü içeren dosya. - do_lower_case (
bool, isteğe bağlı, varsayılanTrue) — Tokenize sırasında girdinin küçük harfe dönüştürülüp dönüştürülmemesi. - unk_token (
str, isteğe bağlı, varsayılan"[UNK]") — Bilinmeyen token. Sözlükte yer almayan bir token, bir kimliğe dönüştürülemez ve bunun yerine bu token olarak ayarlanır. - sep_token (
str, isteğe bağlı, varsayılan"[SEP]") — Ayracı belirten token; birden fazla diziden bir dizi oluşturulurken kullanılır, örneğin dizi sınıflandırma için iki dizi veya soru cevaplamada bir metin ve bir soru için. Özel token'larla oluşturulan bir dizinin son token'ı olarak da kullanılır. - pad_token (
str, isteğe bağlı, varsayılan"[PAD]") — Doldurma için kullanılan jeton, örneğin farklı uzunluklardaki dizileri toplu işleme (batching) sırasında. - cls_token (
str, isteğe bağlı, varsayılan"[CLS]") — Dizi sınıflandırması yapılırken (token başına sınıflandırma yerine tüm dizinin sınıflandırılması) kullanılan sınıflandırıcı tokenıdır. Özel tokenlarla oluşturulduğunda dizinin ilk tokenıdır. - mask_token (
str, isteğe bağlı, varsayılan"[MASK]") — Değerleri maskelemek için kullanılan jeton. Bu, modelin maskeli dil modelleme ile eğitildiğinde kullanılan jetondur. Modelin tahmin etmeye çalışacağı jeton budur. - cls_token_box (
List[int], isteğe bağlı, varsayılan[0, 0, 0, 0]) — Özel [CLS] jetonu için kullanılacak sınırlayıcı kutu. - sep_token_box (
List[int], isteğe bağlı, varsayılan[1000, 1000, 1000, 1000]) — [SEP] özel jetonu için kullanılacak sınırlayıcı kutu. - pad_token_box (
List[int], isteğe bağlı, varsayılan[0, 0, 0, 0]) — Özel [PAD] jetonu için kullanılacak sınırlayıcı kutu. - pad_token_label (
int, isteğe bağlı, varsayılan -100) — Doldurma (padding) jetonları için kullanılacak etiket. Varsayılan olarak -100'dür; bu, PyTorch'un CrossEntropyLoss sınıfındakiignore_indexdeğeridir. - only_label_first_subword (
bool, isteğe bağlı, varsayılanTrue) — Kelime etiketleri sağlandığında, yalnızca ilk alt kelimenin etiketlenip etiketlenmeyeceğini belirtir. - tokenize_chinese_chars (
bool, isteğe bağlı, varsayılanTrue) — Çin karakterlerinin tokenize edilip edilmeyeceğini belirtir. Japonca için bu ayarın devre dışı bırakılması gerekir (bkz. bu sorun). - strip_accents (
bool, isteğe bağlı) — Tüm aksanların kaldırılıp kaldırılmayacağı. Bu seçenek belirtilmezse,lowercasedeğeri tarafından (orijinal LayoutLMv2'de olduğu gibi) belirlenir.
HuggingFace'in tokenizers kütüphanesiyle desteklenen “fast” bir LayoutLMv2 tokenizer'ı oluşturun. WordPiece tabanlıdır.
Bu tokenizer, ana yöntemlerin çoğunu içeren PreTrainedTokenizerFast sınıfından devralır. Kullanıcıların bu yöntemler hakkında daha fazla bilgi için bu üst sınıfa başvurması gerekir.
__call__
< source >( text: str | list[str] | list[list[str]]text_pair: list[str] | list[list[str]] | None = Noneboxes: list[list[int]] | list[list[list[int]]] | None = Noneword_labels: list[int] | list[list[int]] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = True**kwargs )
Parametreler
- text (
str,List[str],List[List[str]]) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin, metin listesi (tek bir örneğin kelimeleri veya örnek grubunun soruları) veya metin listesi listesi (kelime grubu) olabilir. - text_pair (
List[str],List[List[str]]) — Kodlanacak dizi veya dizi partisi. Her dizi, dizelerden (önceden tokenize edilmiş dizeler) oluşmalıdır. - boxes (
List[List[int]],List[List[List[int]]]) — Kelime düzeyinde sınırlayıcı kutular. Her sınırlayıcı kutu, 0-1000 ölçeğinde normalize edilmelidir. - word_labels (
List[int],List[List[int]], isteğe bağlı) — Kelime düzeyinde tamsayı etiketleri (FUNSD, CORD gibi token sınıflandırma görevleri için). - add_special_tokens (
bool, isteğe bağlı, varsayılanTrue) — Dizilerin, modele özel özel jetonlarla kodlanıp kodlanmayacağı. - padding (
bool,strveya PaddingStrategy, isteğe bağlı, varsayılan olarakFalse) — Dolgu işlemini etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:Trueveya'longest': Toplu işlemdeki en uzun dizinin uzunluğuna kadar dolgu yapılır (yalnızca tek bir dizi sağlandıysa dolgu yapılmaz).'max_length':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kadar doldurur.Falseveya'do_not_pad'(varsayılan): Dolgu yok (yani, farklı uzunluklarda diziler içeren bir parti çıktı olarak üretilebilir).
- truncation (
bool,strveya TruncationStrategy, isteğe bağlı, varsayılan olarakFalse) — Kesmeyi (truncation) etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:Trueveya'longest_first':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltılır. Bu işlem, token bazında kısaltma yapar; bir çift dizi (veya çift dizilerden oluşan bir batch) sağlandığında, çiftteki en uzun diziden bir token kaldırılır.'only_first':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltır. Bir çift dizi (veya çiftlerin bir partisi) sağlandığında, yalnızca çiftin ilk dizisini kısaltır.'only_second':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum girdi uzunluğuna kısaltılır. Bu, bir dizi çifti (veya çiftlerin bir partisi) sağlandığında yalnızca çiftin ikinci dizisini kısaltır.Falseveya'do_not_truncate'(varsayılan): Kesme yapılmaz (yani, modelin kabul edebileceği maksimum giriş boyutundan daha uzun dizi uzunluklarına sahip bir çıktı partisi üretilebilir).
- max_length (
int, isteğe bağlı) — Bir kesme/doldurma parametresi tarafından kullanılacak maksimum uzunluğu kontrol eder.Eğer ayarlanmazsa veya
Noneolarak ayarlanırsa, kırpma/dolgu parametrelerinden biri tarafından bir maksimum uzunluk gerekiyorsa, bu, önceden tanımlanmış modelin maksimum uzunluğunu kullanır. Modelin belirli bir maksimum giriş uzunluğu yoksa (XLNet gibi), maksimum uzunluğa kırpma/dolgu devre dışı bırakılır. - stride (
int, isteğe bağlı, varsayılan 0) —max_lengthile birlikte bir sayıya ayarlanırsa,return_overflowing_tokens=Trueolduğunda döndürülen taşan jetonlar, kısaltılmış ve taşan diziler arasında bazı örtüşme sağlamak için kısaltılmış dizinin sonundan bazı jetonları içerir. Bu argümanın değeri, örtüşen jeton sayısını tanımlar. - pad_to_multiple_of (
int, isteğe bağlı) — Belirlenirse, diziyi verilen değerin katına kadar doldurur. Bu, hesaplama yeteneği>= 7.5(Volta) olan NVIDIA donanımlarında Tensor Cores kullanımını etkinleştirmek için özellikle faydalıdır. - return_token_type_ids (
bool, isteğe bağlı) — Token type ID'lerinin döndürülüp döndürülmeyeceğini belirtir. Varsayılan bırakılırsa, ilgili tokenizer'ın varsayılanına göre token type ID'lerini döndürür; bu,return_outputsözniteliği tarafından tanımlanır. - return_attention_mask (
bool, isteğe bağlı) — Dikkat maskesinin (attention mask) döndürülüp döndürülmeyeceğini belirtir. Varsayılan bırakılırsa, ilgili tokenizer'ın varsayılanına göre dikkat maskesini döndürür; bu,return_outputsözniteliği ile tanımlanır. - return_overflowing_tokens (
bool, isteğe bağlı, varsayılanFalse) — Taşan token dizilerinin döndürülüp döndürülmeyeceği. Girdi kimlikleri çiftlerinden (veya çiftlerden oluşan bir partiden)truncation_strategy = longest_firstveyaTrueile sağlanırsa, taşan tokenlar döndürülmek yerine bir hata oluşturulur. - return_special_tokens_mask (
bool, isteğe bağlı, varsayılanFalse) — Özel jeton maskesi bilgisinin döndürülüp döndürülmemesi. - return_offsets_mapping (
bool, isteğe bağlı, varsayılan olarakFalse) — Her token için(char_start, char_end)dönüp döndürmeyeceğini belirtir.Bu özellik yalnızca PreTrainedTokenizerFast sınıfından türeyen hızlı tokenizörlerde kullanılabilir; Python tokenizörü kullanılırsa bu yöntem
NotImplementedErrorhatası fırlatır. - return_length (
bool, isteğe bağlı, varsayılanFalse) — Kodlanmış girdilerin uzunluklarının döndürülüp döndürülmeyeceği. - verbose (
bool, isteğe bağlı, varsayılanTrue) — Daha fazla bilgi ve uyarı basılıp basılmayacağı. - **kwargs —
self.tokenize()yöntemine iletilir
Bir veya birden fazla diziyi veya bir veya birden fazla dizi çiftini, kelime düzeyinde normalize edilmiş sınırlayıcı kutuları ve isteğe bağlı etiketlerle birlikte model için belirginleştirmek ve hazırlamak için ana yöntem.
LayoutLMv2Processor
sınıf transformers.LayoutLMv2Processor
< source >( image_processor = Nonetokenizer = None**kwargs )
Bir görüntü işleyiciyi ve bir belirteçleyiciyi tek bir işleyicide birleştiren bir LayoutLMv2Processor oluşturur.
LayoutLMv2Processor, LayoutLMv2ImageProcessor ve LayoutLMv2Tokenizer sınıflarının tüm işlevlerini sunar. Daha fazla bilgi için ~LayoutLMv2ImageProcessor ve ~LayoutLMv2Tokenizer sınıflarına bakın.
__call__
< source >( imagestext: str | list[str] | list[list[str]] = Nonetext_pair: list[str] | list[list[str]] | None = Noneboxes: list[list[int]] | list[list[list[int]]] | None = Noneword_labels: list[int] | list[list[int]] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Falsemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truereturn_tensors: str | transformers.utils.generic.TensorType | None = None**kwargs ) → ~tokenization_utils_base.BatchEncoding
Parametreler
- images (`
) -- Image to preprocess. Expects a single or batch of images with pixel values ranging from 0 to 255. If passing in images with pixel values between 0 and 1, setdo_rescale=False`. - text (
Union[str, list[str], list[list[str]]], isteğe bağlı) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Önceden tokenize edilmiş bir girdi geçirirseniz, gruplu girdilerle karışıklığı önlemek içinis_split_into_words=Truedeğerini ayarlayın. - text_pair (
str, list[str] or list[int], isteğe bağlı) — Kodlanacak isteğe bağlı ikinci dizi. Bu, bir dize, bir dize listesi (tokenizeyöntemiyle tokenize edilmiş dize) veya bir tamsayı listesi (convert_tokens_to_idsyöntemiyle tokenize edilmiş dize kimlikleri) olabilir. - boxes (
list[list[int]] or list[list[list[int]]], isteğe bağlı) — Kelime düzeyinde sınırlayıcı kutular. Her sınırlayıcı kutu, 0-1000 ölçeğine normalize edilmiş olmalıdır. - word_labels (
list[int] or list[list[int]], isteğe bağlı) — Kelime düzeyinde tamsayı etiketleri (FUNSD, CORD gibi token sınıflandırma görevleri için). - add_special_tokens (
bool, isteğe bağlı, varsayılanTrue) — Dizileri kodlarken özel token eklenip eklenmeyeceğini belirtir. Bu, girdi kimliklerine otomatik olarak hangi tokenların ekleneceğini tanımlayan alttakiPretrainedTokenizerBase.build_inputs_with_special_tokensişlevini kullanır.bosveyaeostokenlarını otomatik olarak eklemek istiyorsanız bu işe yarar. - padding (bool, str veya PaddingStrategy, isteğe bağlı, varsayılanı
False) — Doldurmayı (padding) etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:Trueveya'longest': Toplu işlemdeki en uzun dizinin uzunluğuna kadar dolgu yapılır (yalnızca tek bir dizi sağlanırsa dolgu yapılmaz).'max_length':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kadar doldurur.Falseveya'do_not_pad'(varsayılan): Dolgu yok (yani, farklı uzunluklarda diziler içeren bir parti çıktı olarak üretilebilir).
- truncation (bool, str veya TruncationStrategy, isteğe bağlı, varsayılanı
False) — Kesmeyi (truncation) etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:Trueveya'longest_first':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltılır. Bu işlem, token bazında kısaltma yapar; bir çift dizi (veya çift dizilerden oluşan bir batch) sağlandığında, çiftteki en uzun diziden bir token kaldırılır.'only_first':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltır. Bir çift dizi (veya çiftlerin bir partisi) sağlandığında, yalnızca çiftin ilk dizisini kısaltır.'only_second':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum girdi uzunluğuna kısaltılır. Bu, bir dizi çifti (veya çiftlerin bir partisi) sağlandığında yalnızca çiftin ikinci dizisini kısaltır.Falseveya'do_not_truncate'(varsayılan): Kesme yapılmaz (yani, modelin kabul edebileceği maksimum giriş boyutundan daha uzun dizi uzunluklarına sahip bir çıktı partisi üretilebilir).
- max_length (
int, isteğe bağlı) — Bir kesme/doldurma parametresi tarafından kullanılacak maksimum uzunluğu kontrol eder.Eğer ayarlanmazsa veya
Noneolarak ayarlanırsa, kırpma/dolgu parametrelerinden biri tarafından bir maksimum uzunluk gerekiyorsa, bu, önceden tanımlanmış modelin maksimum uzunluğunu kullanır. Modelin belirli bir maksimum giriş uzunluğu yoksa (XLNet gibi), maksimum uzunluğa kırpma/dolgu devre dışı bırakılır. - stride (
int, isteğe bağlı, varsayılan0) —max_lengthile birlikte bir sayıya ayarlanırsa,return_overflowing_tokens=Trueolduğunda döndürülen taşan jetonlar, kısaltılmış ve taşan diziler arasında bir örtüşme sağlamak amacıyla kısaltılmış dizinin sonundan bazı jetonları içerir. Bu argümanın değeri, örtüşen jetonların sayısını belirler. - pad_to_multiple_of (
int, isteğe bağlı) — Belirlenirse, diziyi verilen değerin katına kadar doldurur. Bunun içinpaddingetkinleştirilmelidir. Bu, hesaplama yeteneği>= 7.5(Volta) olan NVIDIA donanımlarında Tensor Çekirdeklerinin kullanılmasını sağlamak için özellikle faydalıdır. - return_token_type_ids (
bool, isteğe bağlı) — Token type ID'lerinin döndürülüp döndürülmeyeceğini belirtir. Varsayılan bırakılırsa, ilgili tokenizer'ın varsayılanına göre token type ID'lerini döndürür; bu,return_outputsözniteliği tarafından tanımlanır. - return_attention_mask (
bool, isteğe bağlı) — Dikkat maskesinin (attention mask) döndürülüp döndürülmeyeceğini belirtir. Varsayılan bırakılırsa, ilgili tokenizer'ın varsayılanına göre dikkat maskesini döndürür; bu,return_outputsözniteliği ile tanımlanır. - return_overflowing_tokens (
bool, isteğe bağlı, varsayılanFalse) — Taşan token dizilerinin döndürülüp döndürülmeyeceği. Girdi kimlikleri çiftlerinden (veya çiftlerden oluşan bir partiden)truncation_strategy = longest_firstveyaTrueile sağlanırsa, taşan tokenlar döndürülmek yerine bir hata oluşturulur. - return_special_tokens_mask (
bool, isteğe bağlı, varsayılanFalse) — Özel jeton maskesi bilgisinin döndürülüp döndürülmemesi. - return_offsets_mapping (
bool, isteğe bağlı, varsayılan olarakFalse) — Her token için(char_start, char_end)dönüp döndürmeyeceğini belirtir.Bu özellik yalnızca PreTrainedTokenizerFast sınıfından türeyen hızlı tokenizörlerde kullanılabilir; Python tokenizörü kullanılırsa bu yöntem
NotImplementedErrorhatası fırlatır. - return_length (
bool, isteğe bağlı, varsayılanFalse) — Kodlanmış girdilerin uzunluklarının döndürülüp döndürülmeyeceği. - verbose (
bool, isteğe bağlı, varsayılanTrue) — Daha fazla bilgi ve uyarı basılıp basılmayacağı. - return_tensors (
Union[str, ~utils.generic.TensorType], isteğe bağlı) — Belirlenirse, belirli bir çerçeveye ait tensörler döndürülür. Kabul edilen değerler şunlardır:'pt': PyTorchtorch.Tensornesnelerini döndürür.'np': NumPynp.ndarraynesnelerini döndürür.
Dönüş değeri
~tokenization_utils_base.BatchEncoding
- data (
dict, isteğe bağlı) —__call__/encode_plus/batch_encode_plusyöntemleri tarafından döndürülen listeler/diziler/tensörler sözlüğü (‘input_ids’, ‘attention_mask’, vb.). - encoding (
tokenizers.EncodingveyaSequence[tokenizers.Encoding], isteğe bağlı) — Tokenizer, kelime/karakter alanından token alanına eşleme gibi ek bilgiler üreten hızlı bir tokenizer ise,tokenizers.Encodingörneği veya örnekler listesi (toplu işlemler için) bu bilgileri barındırır. - tensor_type (
Union[None, str, TensorType], isteğe bağlı) — Başlatma sırasında PyTorch/Numpy Tensörlerindeki tamsayı listelerini dönüştürmek için burada bir tensor_type verebilirsiniz. - prepend_batch_axis (
bool, isteğe bağlı, varsayılanFalse) — Tensörlere dönüştürülürken bir batch ekseni eklenip eklenmeyeceğini belirtir (bkz. yukarıdakitensor_type).tensor_typeparametresi ayarlanmışsa bu parametrenin bir etkisi vardır, aksi halde hiçbir etkisi yoktur. - n_sequences (
int, isteğe bağlı) — Her kodlamanın temsil ettiği girdi dizilerinin sayısı (Nonebilinmeyen,1tek bir dizi ve2dizi çifti için).
LayoutLMv2Model
sınıf transformers.LayoutLMv2Model
< source >( config: LayoutLMv2Config )
Parametreler
- config (LayoutLMv2Config) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Üzerinde herhangi bir özel head olmadan ham hidden-states çıkaran çıplak Layoutlmv2 Model.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Nonebbox: typing.Optional[torch.LongTensor] = Noneimage: typing.Optional[torch.FloatTensor] = Noneattention_mask: typing.Optional[torch.FloatTensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.FloatTensor)
Parametreler
- input_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- bbox (
torch.LongTensor, şekli((batch_size, sequence_length), 4), isteğe bağlı) — Her giriş dizisinin jetonlarının sınırlayıcı kutuları.[0, config.max_2d_position_embeddings-1]aralığında seçilir. Her sınırlayıcı kutu, (x0, y0, x1, y1) biçiminde normalize edilmiş bir versiyon olmalıdır; burada (x0, y0) sınırlayıcı kutunun sol üst köşesinin konumuna, (x1, y1) ise sağ alt köşesinin konumuna karşılık gelir. - image (
torch.FloatTensorbiçimi(batch_size, num_channels, height, width)veyatensorsbiçimi(batch_size, num_channels, height, width)olandetectron.structures.ImageList) — Belge görüntülerinin bir partisi. - attention_mask (
torch.FloatTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- token_type_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler[0, 1]:- 0, sentence A belirteci ile eşleşir,
- 1, sentence B belirteçlerine karşılık gelir.
- position_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı[0, config.n_positions - 1]. - inputs_embeds (
torch.FloatTensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
Dönüş değeri
BaseModelOutputWithPooling veya tuple(torch.FloatTensor)
Bir BaseModelOutputWithPooling veya
torch.FloatTensor (eğer return_dict=False geçirildiyse veya config.return_dict=False ise) bir demet; yapılandırma (LayoutLMv2Config) ve girdilere bağlı olarak çeşitli
öğelerden oluşur.
LayoutLMv2Model forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
last_hidden_state (
torch.FloatTensor, şekli(batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.pooler_output (
torch.FloatTensor, şekli(batch_size, hidden_size)) — Sıranın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, yardımcı ön eğitim görevi için kullanılan katmanlar üzerinden ek işlemden geçirildikten sonraki hali. Örneğin BERT ailesi modelleri için, bu, sınıflandırma token'ının doğrusal bir katman ve tanh aktivasyon fonksiyonu üzerinden işlenmesinden sonra döndürülen değerdir. Doğrusal katman ağırlıkları, ön eğitim sırasında bir sonraki cümle tahmini (sınıflandırma) hedefinden eğitilir.hidden_states (
tuple(torch.FloatTensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.FloatTensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.FloatTensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.FloatTensor(her katman için bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnekler:
>>> 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
sınıf transformers.LayoutLMv2ForSequenceClassification
< source >( config: LayoutLMv2Config )
Parametreler
- config (LayoutLMv2Config) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Üstünde bir dizi sınıflandırma başlığı bulunan LayoutLMv2 Modeli (örneğin RVL-CDIP veri seti gibi belge görüntüsü sınıflandırma görevleri için; [CLS] token'ının son gizli durumu, ortalama havuzlanmış başlangıç görsel gömme değerleri ve ortalama havuzlanmış son görsel gömme değerlerinin birleştirilmesi üzerine yerleştirilen doğrusal bir katman).
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Nonebbox: typing.Optional[torch.LongTensor] = Noneimage: typing.Optional[torch.FloatTensor] = Noneattention_mask: typing.Optional[torch.FloatTensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → SequenceClassifierOutput or tuple(torch.FloatTensor)
Parametreler
- input_ids (
torch.LongTensorşeklindebatch_size, sequence_length) — Giriş dizisi belirteçlerinin sözlükteki indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- bbox (
torch.LongTensor, şekli(batch_size, sequence_length, 4), isteğe bağlı) — Girdi dizisindeki her token'ın sınırlayıcı kutuları.[0, config.max_2d_position_embeddings-1]aralığında seçilir. Her sınırlayıcı kutu, (x0, y0, x1, y1) biçiminde normalize edilmiş bir versiyon olmalıdır; burada (x0, y0) sınırlayıcı kutunun sol üst köşesinin konumuna, (x1, y1) ise sağ alt köşesinin konumuna karşılık gelir. - image (
torch.FloatTensorbiçimi(batch_size, num_channels, height, width)veyatensorsbiçimi(batch_size, num_channels, height, width)olandetectron.structures.ImageList) — Belge görüntülerinin bir partisi. - attention_mask (
torch.FloatTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- token_type_ids (
torch.LongTensorşeklindebatch_size, sequence_length, isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler[0, 1]:- 0, sentence A belirteci ile eşleşir,
- 1, sentence B belirteçlerine karşılık gelir.
- position_ids (
torch.LongTensorşeklindebatch_size, sequence_length, isteğe bağlı) — Girdi dizisindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı[0, config.max_position_embeddings - 1]. - inputs_embeds (
torch.FloatTensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - labels (
torch.LongTensor, şekli(batch_size,), isteğe bağlı) — Sınıflandırma/geri dönüş kaybını hesaplamak için etiketler. Endeksler[0, ..., config.num_labels - 1]aralığında olmalıdır.config.num_labels == 1ise bir geri dönüş kaybı (Ortalama Kare kaybı) hesaplanır,config.num_labels > 1ise bir sınıflandırma kaybı (Çapraz Entropi) hesaplanır.
Dönüş değeri
SequenceClassifierOutput veya tuple(torch.FloatTensor)
Bir SequenceClassifierOutput veya
torch.FloatTensor bir demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (LayoutLMv2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
LayoutLMv2ForSequenceClassification forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
loss (
torch.FloatTensor, şekli(1,), opsiyonel,labelssağlandığında döndürülür) — Sınıflandırma (config.num_labels==1 ise regresyon) kaybı.logits (
torch.FloatTensor, şekli(batch_size, config.num_labels)) — Sınıflandırma (veya config.num_labels==1 ise regresyon) puanları (SoftMax öncesi).hidden_states (
tuple(torch.FloatTensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.FloatTensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.FloatTensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.FloatTensor(her katman için bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> 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
sınıf transformers.LayoutLMv2ForTokenClassification
< source >( config: LayoutLMv2Config )
Parametreler
- config (LayoutLMv2Config) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Üstünde bir token sınıflandırma başlığı bulunan (gizli durumların metin kısmının üzerine yerleştirilen doğrusal bir katman) FUNSD, SROIE, CORD ve Kleister-NDA gibi dizgi etiketleme (bilgi çıkarımı) görevleri için kullanılan LayoutLMv2 Modeli.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Nonebbox: typing.Optional[torch.LongTensor] = Noneimage: typing.Optional[torch.FloatTensor] = Noneattention_mask: typing.Optional[torch.FloatTensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → TokenClassifierOutput or tuple(torch.FloatTensor)
Parametreler
- input_ids (
torch.LongTensorşeklindebatch_size, sequence_length) — Giriş dizisi belirteçlerinin sözlükteki indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- bbox (
torch.LongTensor, şekli(batch_size, sequence_length, 4), isteğe bağlı) — Girdi dizisindeki her token'ın sınırlayıcı kutuları.[0, config.max_2d_position_embeddings-1]aralığında seçilir. Her sınırlayıcı kutu, (x0, y0, x1, y1) biçiminde normalize edilmiş bir versiyon olmalıdır; burada (x0, y0) sınırlayıcı kutunun sol üst köşesinin konumuna, (x1, y1) ise sağ alt köşesinin konumuna karşılık gelir. - image (
torch.FloatTensorbiçimi(batch_size, num_channels, height, width)veyatensorsbiçimi(batch_size, num_channels, height, width)olandetectron.structures.ImageList) — Belge görüntülerinin bir partisi. - attention_mask (
torch.FloatTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- token_type_ids (
torch.LongTensorşeklindebatch_size, sequence_length, isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler[0, 1]:- 0, sentence A belirteci ile eşleşir,
- 1, sentence B belirteçlerine karşılık gelir.
- position_ids (
torch.LongTensorşeklindebatch_size, sequence_length, isteğe bağlı) — Girdi dizisindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı[0, config.max_position_embeddings - 1]. - inputs_embeds (
torch.FloatTensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - labels (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Token sınıflandırma kaybını hesaplamak için etiketler. Endeksler[0, ..., config.num_labels - 1]aralığında olmalıdır.
Dönüş değeri
TokenClassifierOutput veya tuple(torch.FloatTensor)
A TokenClassifierOutput veya
torch.FloatTensor bir demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (LayoutLMv2Config) ve girdilere bağlı olarak çeşitli
öğelerden oluşur.
LayoutLMv2ForTokenClassification forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
loss (
torch.FloatTensor, şekli(1,), isteğe bağlı,labelssağlandığında döndürülür) — Sınıflandırma kaybı.logits (
torch.FloatTensor, şekli(batch_size, sequence_length, config.num_labels)) — Sınıflandırma puanları (SoftMax öncesi).hidden_states (
tuple(torch.FloatTensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.FloatTensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.FloatTensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.FloatTensor(her katman için bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> 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
sınıf transformers.LayoutLMv2ForQuestionAnswering
< source >( config: LayoutLMv2Confighas_visual_segment_embedding = True )
Parametreler
- config (LayoutLMv2Config) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
- has_visual_segment_embedding (
bool, isteğe bağlı, varsayılanTrue) — Görsel segment gömme eklenip eklenmeyeceğini belirtir.
SQuAD gibi çıkarımsal soru-cevap görevleri için üstünde bir aralık sınıflandırma kafası bulunan Layoutlmv2 dönüştürücüsü (gizli durum çıktısının üzerine, span start logits ve span end logits hesaplamak için bir doğrusal katman).
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Nonebbox: typing.Optional[torch.LongTensor] = Noneimage: typing.Optional[torch.FloatTensor] = Noneattention_mask: typing.Optional[torch.FloatTensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonestart_positions: typing.Optional[torch.LongTensor] = Noneend_positions: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → QuestionAnsweringModelOutput or tuple(torch.FloatTensor)
Parametreler
- input_ids (
torch.LongTensorşeklindebatch_size, sequence_length) — Giriş dizisi belirteçlerinin sözlükteki indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- bbox (
torch.LongTensor, şekli(batch_size, sequence_length, 4), isteğe bağlı) — Girdi dizisindeki her token'ın sınırlayıcı kutuları.[0, config.max_2d_position_embeddings-1]aralığında seçilir. Her sınırlayıcı kutu, (x0, y0, x1, y1) biçiminde normalize edilmiş bir versiyon olmalıdır; burada (x0, y0) sınırlayıcı kutunun sol üst köşesinin konumuna, (x1, y1) ise sağ alt köşesinin konumuna karşılık gelir. - image (
torch.FloatTensorbiçimi(batch_size, num_channels, height, width)veyatensorsbiçimi(batch_size, num_channels, height, width)olandetectron.structures.ImageList) — Belge görüntülerinin bir partisi. - attention_mask (
torch.FloatTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- token_type_ids (
torch.LongTensorşeklindebatch_size, sequence_length, isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler[0, 1]:- 0, sentence A belirteci ile eşleşir,
- 1, sentence B belirteçlerine karşılık gelir.
- position_ids (
torch.LongTensorşeklindebatch_size, sequence_length, isteğe bağlı) — Girdi dizisindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı[0, config.max_position_embeddings - 1]. - inputs_embeds (
torch.FloatTensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - start_positions (
torch.LongTensor, şekli(batch_size,), isteğe bağlı) — Token sınıflandırma kaybını hesaplamak için etiketli aralığın başlangıç konumunun (indeksinin) etiketleri. Konumlar, dizinin uzunluğuna (sequence_length) göre sınırlandırılır. Dizi dışındaki konumlar, kayıp hesabında dikkate alınmaz. - end_positions (
torch.LongTensor, şekli(batch_size,), isteğe bağlı) — Token sınıflandırma kaybını hesaplamak için etiketli aralığın sonundaki konumun (indeksin) etiketleri. Konumlar, dizinin uzunluğuna (sequence_length) göre sınırlandırılır. Dizi dışındaki konumlar, kaybın hesaplanmasında dikkate alınmaz.
Dönüş değeri
QuestionAnsweringModelOutput veya tuple(torch.FloatTensor)
A QuestionAnsweringModelOutput veya bir torch.FloatTensor tuple'ı (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (LayoutLMv2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
LayoutLMv2ForQuestionAnswering sınıfının forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
loss (
torch.FloatTensor, şekli(1,), opsiyonel,labelssağlandığında döndürülür) — Toplam span çıkarım kaybı, başlangıç ve bitiş konumları için Çapraz Entropinin (Cross-Entropy) toplamıdır.start_logits (
torch.FloatTensor, şekli(batch_size, sequence_length)) — Span başlangıç puanları (SoftMax öncesi).end_logits (
torch.FloatTensor, şekli(batch_size, sequence_length)) — Span sonu skorları (SoftMax öncesi).hidden_states (
tuple(torch.FloatTensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.FloatTensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.FloatTensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.FloatTensor(her katman için bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
Aşağıdaki örnekte, LayoutLMv2 modeline bir görsel (metinler) veriyor ve ona bir soru soruyoruz. Model, görselden çıkarılan metinler içindeki cevabın aralığını (span) tahmin ederek bize ne olduğunu düşündüğü cevabı verir.
>>> 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'>>> 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)