Transformers documentation
PP-DocLayoutV4
Model ini disumbangkan ke Hugging Face Transformers pada 2026-10-08.
PP-DocLayoutV4
Ikhtisar
PP-DocLayoutV4 adalah model analisis tata letak dokumen end-to-end yang memprediksi, dalam satu langkah maju, apa elemen tata letak masing-masing, kuadrilateral yang mengelilinginya, dan logits yang digunakan untuk mendekode urutan baca.
Arsitektur Model
PP-DocLayoutV4 mempertahankan kerangka RT-DETR dari pendahulunya — backbone HGNetV2, encoder hibrida AIFI, dan decoder deformable — dan mengubah tiga hal:
- Bentuk segiempat alih-alih mask. PPDocLayoutV3ForObjectDetection memprediksi mask segmentasi per query dan
menyesuaikan poligon ke mask tersebut. PP-DocLayoutV4 menghapus cabang mask sepenuhnya dan langsung meregresi quad empat titik,
yang dikodekan sebagai
[center_x, center_y, dx1, dy1, ..., dx4, dy4]dalam ruang sigmoid. Pendekatan ini menangani dokumen yang miring dan terdistorsi perspektif tanpa perlu membayar biaya head mask, dan fitur backbone dengan stride 4 tidak lagi diperlukan. - Head per-lapisan yang tidak terikat. Setiap lapisan decoder memiliki head box dan klasifikasinya sendiri, bukan berbagi satu head tunggal dengan encoder.
- Dua kepala urutan baca plus langkah fusi. Di samping kepala urutan relatif dari V3 (antisimetris: “apakah
idibaca sebelumj?”), terdapat kepala suksesor (ROOR: “apakahjlangsung mengikutii?”).PPDocLayoutV4S2RFusionmelipat penutupan transitif yang diredam dari matriks suksesor kembali ke dalam logit urutan relatif.
Urutan baca tidak didekode di dalam model. PPDocLayoutV4ForObjectDetection mengembalikan relative_order_logits dan successor_order_logits mentah, dan post_process_object_detection() mengubahnya menjadi peringkat dengan melakukan thresholding matriks successor menjadi directed acyclic graph (DAG), memutus siklus, mengurutkan setiap komponen terhubung secara topologis, dan mengurutkan komponen-komponen tersebut berdasarkan suara urutan relatif mereka.
Penggunaan
Hasil yang dikembalikan oleh post_process_object_detection() sudah diurutkan berdasarkan urutan baca. Setiap hasil membawa polygon_points — tensor (num_boxes, 4, 2) dari sudut yang diregresi dalam urutan kiri-atas, kanan-atas, kanan-bawah, kiri-bawah — ditambah boxes, persegi panjang sejajar sumbu yang membungkus setiap kuad, dan order_seq, peringkat berbasis 0 dari setiap kotak. Contoh AutoModel di bawah ini mencetak order_seq secara langsung, sedangkan yang lainnya mencetak posisi berbasis 1 dalam daftar terurut, yaitu order_seq + 1 kecuali satu query dipertahankan di bawah beberapa label.
Pipeline mempertahankan urutan baca sesuai urutan daftar yang dikembalikan, tetapi meratakan setiap deteksi menjadi skor, label, dan kotak pembatas bilangan bulat. Gunakan jalur AutoModel di bawah untuk mendapatkan segi empat dan order_seq.
from transformers import pipeline
from transformers.image_utils import load_image
image = load_image("https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/layout_demo.jpg")
layout_detector = pipeline("object-detection", model="PaddlePaddle/PP-DocLayoutV4_safetensors")
results = layout_detector(image)
for idx, res in enumerate(results):
print(f"Order {idx + 1}: {res}")from transformers import AutoImageProcessor, AutoModelForObjectDetection
from transformers.image_utils import load_image
model_path = "PaddlePaddle/PP-DocLayoutV4_safetensors"
model = AutoModelForObjectDetection.from_pretrained(model_path, device_map="auto")
image_processor = AutoImageProcessor.from_pretrained(model_path)
image = load_image("https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/layout_demo.jpg")
inputs = image_processor(images=image, return_tensors="pt").to(device=model.device, dtype=model.dtype)
outputs = model(**inputs)
results = image_processor.post_process_object_detection(outputs, target_sizes=[image.size[::-1]])
for result in results:
for score, label_id, box, quad, rank in zip(
result["scores"], result["labels"], result["boxes"], result["polygon_points"], result["order_seq"]
):
box = [round(i, 2) for i in box.tolist()]
print(f"Order {rank.item()}: {model.config.id2label[label_id.item()]}, score: {score.item():.2f}, box: {box}")
print(f" corners: {[[round(x, 2) for x in point] for point in quad.tolist()]}")Inferensi berbatch
Lewatkan daftar gambar dan satu ukuran target per gambar. Urutan pembacaan didekodekan per gambar.
from transformers import AutoImageProcessor, AutoModelForObjectDetection
from transformers.image_utils import load_image
model_path = "PaddlePaddle/PP-DocLayoutV4_safetensors"
model = AutoModelForObjectDetection.from_pretrained(model_path, device_map="auto")
image_processor = AutoImageProcessor.from_pretrained(model_path)
image = load_image("https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/layout_demo.jpg")
inputs = image_processor(images=[image, image], return_tensors="pt").to(device=model.device, dtype=model.dtype)
outputs = model(**inputs)
results = image_processor.post_process_object_detection(outputs, target_sizes=[image.size[::-1]] * 2)
for result in results:
print("result:")
for idx, (score, label_id, box) in enumerate(zip(result["scores"], result["labels"], result["boxes"])):
box = [round(i, 2) for i in box.tolist()]
print(f"Order {idx + 1}: {model.config.id2label[label_id.item()]}, score: {score.item():.2f}, box: {box}")PPDocLayoutV4ForObjectDetection
kelas transformers.PPDocLayoutV4ForObjectDetection
< source >( config: PPDocLayoutV4Config )
Parameter
- config (PPDocLayoutV4Config) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model PP-DocLayoutV4 (terdiri dari backbone dan encoder-decoder) yang menghasilkan kuadrilateral, class logits, dan reading order logits, untuk tugas seperti analisis tata letak dokumen.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( pixel_values: Tensorpixel_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Nonelabels: list[dict] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → PPDocLayoutV4ForObjectDetectionOutput or tuple(torch.Tensor)
Parameter
- pixel_values (
torch.Tensordengan bentuk(batch_size, num_channels, image_size, image_size)) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakanimage_processor_class. Lihatimage_processor_class.__call__untuk detailnya (processor_classmenggunakanimage_processor_classuntuk memproses gambar). - pixel_mask (
torch.LongTensordengan bentuk(batch_size, height, width), opsional) — Mask untuk menghindari penerapan attention pada nilai piksel padding. Nilai mask dipilih dari[0, 1]:- 1 untuk piksel yang asli (yaitu tidak dimasker),
- 0 untuk piksel yang merupakan padding (yaitu masked).
- encoder_outputs (
torch.Tensor, opsional) — Tuple terdiri dari (last_hidden_state, opsional:hidden_states, opsional:attentions)last_hidden_statedengan bentuk(batch_size, sequence_length, hidden_size), opsional) adalah rangkaian hidden-states pada keluaran lapisan terakhir encoder. Digunakan dalam cross-attention decoder. - labels (
list[Dict]dengan panjang(batch_size,), opsional) — Tidak didukung: PP-DocLayoutV4 hanya untuk inferensi di Transformers.
Mengembalikan
PPDocLayoutV4ForObjectDetectionOutput atau tuple(torch.Tensor)
PPDocLayoutV4ForObjectDetectionOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (None) dan input.
Metode forward dari PPDocLayoutV4ForObjectDetection menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
logits (
torch.Tensordengan bentuk(batch_size, num_queries, config.num_labels)) — Logit klasifikasi (tanpa no-object) untuk semua query.pred_boxes (
torch.Tensordengan bentuk(batch_size, num_queries, config.num_coords)) — Quad ternormalisasi untuk semua query, dikodekan sebagai[center_x, center_y, dx1, dy1, ..., dx4, dy4]di mana offset sudut digeser sebesar+0.5. Gunakan post_process_object_detection() untuk mengambil sudut yang tidak ternormalisasi beserta kotak pembatasnya.last_hidden_state (
torch.Tensordengan bentuk(batch_size, num_queries, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir dari decoder model.intermediate_hidden_states (
torch.Tensordengan bentuk(batch_size, config.decoder_layers, num_queries, hidden_size)) — State tersembunyi antara yang ditumpuk (output dari setiap layer decoder).intermediate_reference_points (
torch.Tensordengan bentuk(batch_size, config.decoder_layers, num_queries, config.num_coords)) — Titik referensi antara yang ditumpuk (kuadra yang disempurnakan dari setiap lapisan decoder).decoder_hidden_states (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari decoder pada output setiap layer ditambah output embedding awal.
decoder_attentions (
tuple[torch.Tensor], opsional, dikembalikan ketikaoutput_attentions=Truedilewatkan atau ketikaconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap lapisan) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
cross_attentions (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari lapisan cross-attention decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala cross-attention.
encoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-states pada keluaran lapisan terakhir dari encoder model.encoder_hidden_states (
tuple[torch.Tensor], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari encoder pada output setiap layer ditambah output embedding awal.
encoder_attentions (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari encoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
init_reference_points (
torch.Tensordengan bentuk(batch_size, num_queries, config.num_coords)) — Titik referensi awal berbentuk kuad yang dikirim melalui decoder Transformer.enc_topk_logits (
torch.Tensordengan bentuk(batch_size, num_queries, config.num_labels)) — Logits kelas dari proposal encoder yang dipilih sebagai query decoder.enc_topk_bboxes (
torch.Tensordengan bentuk(batch_size, num_queries, config.num_coords)) — Quad dari proposal encoder yang dipilih sebagai query decoder.enc_outputs_class (
torch.Tensordengan bentuk(batch_size, sequence_length, config.num_labels)) — Logit kelas untuk setiap proposal encoder.enc_outputs_coord_logits (
torch.Tensordengan bentuk(batch_size, sequence_length, config.num_coords)) — Logit kuad untuk setiap proposal encoder.denoising_meta_values (
dict, opsional) — Kamus tambahan untuk nilai-nilai yang terkait dengan denoising.relative_order_logits (
torch.Tensordengan bentuk(batch_size, config.num_queries, config.num_queries)) — Logit urutan baca relatif pairwise, setelah fusi S2R opsional. Nilai positif padarelative_order_logits[i, j]berarti queryidibaca sebelum queryj.successor_order_logits (
torch.Tensordengan bentuk(batch_size, config.num_queries, config.num_queries)) — Logit penerus langsung pairwise (ROOR). Nilai positif padasuccessor_order_logits[i, j]berarti queryjlangsung mengikuti queryi.
Contoh:
>>> from transformers import AutoImageProcessor, AutoModelForObjectDetection
>>> from PIL import Image
>>> import httpx
>>> from io import BytesIO
>>> url = "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/layout_demo.jpg"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> model_path = "PaddlePaddle/PP-DocLayoutV4_safetensors"
>>> image_processor = AutoImageProcessor.from_pretrained(model_path)
>>> model = AutoModelForObjectDetection.from_pretrained(model_path)
>>> inputs = image_processor(images=[image], return_tensors="pt")
>>> outputs = model(**inputs)
>>> # results are already sorted by reading order
>>> results = image_processor.post_process_object_detection(outputs, target_sizes=[image.size[::-1]])
>>> for result in results:
... for idx, (score, label_id, box) in enumerate(zip(result["scores"], result["labels"], result["boxes"])):
... box = [round(i, 2) for i in box.tolist()]
... print(f"Order {idx + 1}: {model.config.id2label[label_id.item()]}: {score.item():.2f} {box}")
Order 1: text: 0.99 [336.07, 182.04, 894.17, 652.62]
Order 2: paragraph_title: 0.98 [336.45, 681.88, 868.78, 796.91]
Order 3: text: 0.99 [334.01, 840.84, 889.11, 1452.29]
Order 4: text: 0.99 [920.65, 183.62, 1476.75, 462.75]
Order 5: text: 0.99 [919.55, 482.55, 1479.85, 763.41]
Order 6: text: 0.98 [919.34, 844.48, 1481.28, 1219.44]
Order 7: text: 0.98 [920.84, 1238.61, 1467.66, 1374.54]
Order 8: text: 0.90 [334.24, 1612.85, 1478.79, 1730.92]
Order 9: text: 0.95 [334.25, 1755.98, 1467.34, 1845.6]
Order 10: text: 0.65 [337.14, 1909.47, 659.78, 1938.2]
Order 11: footnote: 0.78 [338.73, 2114.87, 1448.16, 2172.06]
Order 12: number: 0.98 [106.08, 2257.42, 134.76, 2281.3]
Order 13: footer: 0.93 [339.27, 2255.7, 984.16, 2282.81]PPDocLayoutV4Model
kelas transformers.PPDocLayoutV4Model
< source >( config: PPDocLayoutV4Config )
Parameter
- config (PPDocLayoutV4Config) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model PP-DocLayoutV4 (terdiri dari backbone dan encoder-decoder) yang menghasilkan raw hidden states tanpa head di atasnya.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( pixel_values: Tensorpixel_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Nonelabels: list[dict] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → PPDocLayoutV4ModelOutput or tuple(torch.Tensor)
Parameter
- pixel_values (
torch.Tensordengan bentuk(batch_size, num_channels, image_size, image_size)) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakanimage_processor_class. Lihatimage_processor_class.__call__untuk detailnya (processor_classmenggunakanimage_processor_classuntuk memproses gambar). - pixel_mask (
torch.LongTensordengan bentuk(batch_size, height, width), opsional) — Mask untuk menghindari penerapan attention pada nilai piksel padding. Nilai mask dipilih dari[0, 1]:- 1 untuk piksel yang asli (yaitu tidak dimasker),
- 0 untuk piksel yang merupakan padding (yaitu masked).
- encoder_outputs (
torch.Tensor, opsional) — Tuple terdiri dari (last_hidden_state, opsional:hidden_states, opsional:attentions)last_hidden_statedengan bentuk(batch_size, sequence_length, hidden_size), opsional) adalah rangkaian hidden-states pada keluaran lapisan terakhir encoder. Digunakan dalam cross-attention decoder. - labels (
list[Dict]dengan panjang(batch_size,), opsional) — Tidak didukung: PP-DocLayoutV4 hanya untuk inferensi di Transformers.
Mengembalikan
PPDocLayoutV4ModelOutput atau tuple(torch.Tensor)
PPDocLayoutV4ModelOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (None) dan input.
Metode forward dari PPDocLayoutV4Model menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
last_hidden_state (
torch.Tensordengan bentuk(batch_size, num_queries, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir dari decoder model.intermediate_hidden_states (
torch.Tensordengan bentuk(batch_size, config.decoder_layers, num_queries, hidden_size)) — State tersembunyi antara yang ditumpuk (output dari setiap layer decoder).intermediate_reference_points (
torch.Tensordengan bentuk(batch_size, config.decoder_layers, num_queries, config.num_coords)) — Titik referensi antara yang ditumpuk (kuadra yang disempurnakan dari setiap lapisan decoder).decoder_hidden_states (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari decoder pada output setiap layer ditambah output embedding awal.
decoder_attentions (
tuple[torch.Tensor], opsional, dikembalikan ketikaoutput_attentions=Truedilewatkan atau ketikaconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap lapisan) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
cross_attentions (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari lapisan cross-attention decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala cross-attention.
encoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-states pada keluaran lapisan terakhir dari encoder model.encoder_hidden_states (
tuple[torch.Tensor], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari encoder pada output setiap layer ditambah output embedding awal.
encoder_attentions (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari encoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
init_reference_points (
torch.Tensordengan bentuk(batch_size, num_queries, config.num_coords)) — Titik referensi awal berbentuk kuad yang dikirim melalui decoder Transformer.enc_topk_logits (
torch.Tensordengan bentuk(batch_size, num_queries, config.num_labels)) — Logits kelas dari proposal encoder yang dipilih sebagai query decoder.enc_topk_bboxes (
torch.Tensordengan bentuk(batch_size, num_queries, config.num_coords)) — Quad dari proposal encoder yang dipilih sebagai query decoder.enc_outputs_class (
torch.Tensordengan bentuk(batch_size, sequence_length, config.num_labels)) — Logit kelas untuk setiap proposal encoder.enc_outputs_coord_logits (
torch.Tensordengan bentuk(batch_size, sequence_length, config.num_coords)) — Logit kuad untuk setiap proposal encoder.denoising_meta_values (
dict, opsional) — Kamus tambahan untuk nilai-nilai yang terkait dengan denoising.logits (
torch.Tensordengan bentuk(batch_size, num_queries, config.num_labels)) — Logits klasifikasi dari lapisan decoder terakhir.relative_order_logits (
torch.Tensordengan bentuk(batch_size, config.num_queries, config.num_queries)) — Logit urutan baca relatif pairwise, setelah fusi S2R opsional.successor_order_logits (
torch.Tensordengan bentuk(batch_size, config.num_queries, config.num_queries)) — Logit penerus langsung berpasangan (ROOR).
PPDocLayoutV4Config
kelas transformers.PPDocLayoutV4Config
< 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Trueinitializer_range: float = 0.01initializer_bias_prior_prob: float | None = Nonelayer_norm_eps: float = 1e-05batch_norm_eps: float = 1e-05tie_word_embeddings: bool = Truebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonefreeze_backbone_batch_norms: bool = Trueencoder_hidden_dim: int = 256encoder_in_channels: list[int] | tuple[int, ...] = (512, 1024, 2048)feat_strides: list[int] | tuple[int, ...] = (8, 16, 32)encoder_layers: int = 1encoder_ffn_dim: int = 1024encoder_attention_heads: int = 8dropout: float | int = 0.0activation_dropout: float | int = 0.0encode_proj_layers: list[int] | tuple[int, ...] = (2,)positional_encoding_temperature: int = 10000encoder_activation_function: str = 'gelu'activation_function: str = 'silu'eval_size: list[int] | tuple[int, int] | None = Nonenormalize_before: bool = Falsehidden_expansion: float = 1.0num_queries: int = 300decoder_in_channels: list[int] | tuple[int, ...] = (256, 256, 256)decoder_ffn_dim: int = 1024num_feature_levels: int = 3decoder_n_points: int = 4decoder_layers: int = 6decoder_attention_heads: int = 8decoder_activation_function: str = 'relu'attention_dropout: float | int = 0.0num_denoising: int = 100anchor_image_size: list[int] | tuple[int, int] | None = Nonedisable_custom_kernels: bool = Trueglobal_pointer_head_size: int = 64gp_dropout_value: float | int = 0.1hidden_size: int = 256num_coords: int = 10s2r_steps: int = 3s2r_damping: float = 0.5s2r_closure_weight_init: float = 0.0 )
Parameter
- is_encoder_decoder (
bool, opsional, defaultnyaTrue) — Apakah model digunakan sebagai encoder/decoder atau tidak. - initializer_range (
float, opsional, defaultnya0.01) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - initializer_bias_prior_prob (
float, opsional) — Probabilitas prior yang digunakan oleh bias initializer untuk menginisialisasi bias padaenc_score_headdanclass_embed. JikaNone, nilainya secara default adalah1 / (num_labels + 1). - layer_norm_eps (
float, opsional, defaultnya1e-05) — Epsilon yang digunakan oleh lapisan normalisasi lapisan. - batch_norm_eps (
float, opsional, defaultnya1e-05) — Epsilon yang digunakan oleh lapisan normalisasi batch. - tie_word_embeddings (
bool, opsional, defaultTrue) — Apakah akan mengikat bobot embedding sesuai dengan pemetaantied_weights_keysmodel. - backbone_config (
Union[dict, ~configuration_utils.PreTrainedConfig], opsional) — Konfigurasi dari model backbone. - freeze_backbone_batch_norms (
bool, opsional, defaultTrue) — Apakah akan membekukan lapisan batch normalization di backbone. - encoder_hidden_dim (
int, opsional, defaultnya256) — Dimensi dari representasi tersembunyi. - encoder_in_channels (
list, opsional, defaultnya[512, 1024, 2048]) — Input fitur multi-level untuk encoder. - feat_strides (
list[int], opsional, default[8, 16, 32]) — Strides yang digunakan pada setiap feature map. - encoder_layers (
int, opsional, default1) — Jumlah lapisan tersembunyi pada encoder Transformer. Akan menggunakan nilai yang sama dengannum_layersjika tidak diatur. - encoder_ffn_dim (
int, opsional, defaultnya1024) — Dimensi dari lapisan “intermediate” (sering disebut feed-forward) di encoder. - encoder_attention_heads (
int, opsional, default8) — Jumlah kepala perhatian untuk setiap lapisan perhatian dalam encoder Transformer. - dropout (
Union[float, int], opsional, default0.0) — Rasio untuk semua lapisan dropout. - activation_dropout (
Union[float, int], opsional, defaultnya0.0) — Rasio dropout untuk aktivasi di dalam lapisan fully connected. - encode_proj_layers (
list[int], opsional, default[2]) — Indeks dari lapisan proyeksi yang akan digunakan dalam encoder. - positional_encoding_temperature (
int, opsional, default 10000) — Parameter suhu yang digunakan untuk membuat positional encoding. - encoder_activation_function (
str, opsional, defaultnya"gelu") — Fungsi aktivasi non-linear (fungsi atau string) di encoder dan pooler. Jika string,"gelu","relu","silu"dan"gelu_new"didukung. - activation_function (
str, opsional, defaultnyasilu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - eval_size (
tuple[int, int], opsional) — Tinggi dan lebar yang digunakan untuk menghitung tinggi dan lebar efektif dari position embeddings setelah memperhitungkan stride. Harus dibiarkan sebagaiNoneuntuk mereproduksi implementasi referensi, yang menghitung position embeddings secara dinamis. - normalize_before (
bool, opsional, defaultFalse) — Menentukan apakah layer normalization diterapkan pada lapisan encoder transformer sebelum modul self-attention dan feed-forward. - hidden_expansion (
float, opsional, default 1.0) — Rasio ekspansi untuk memperbesar ukuran dimensi RepVGGBlock dan CSPRepLayer. - num_queries (
int, opsional, default 300) — Jumlah query objek. - decoder_in_channels (
list, opsional, default[256, 256, 256]) — Dimensi fitur multi-level untuk decoder - decoder_ffn_dim (
int, opsional, default 1024) — Dimensi lapisan “intermediate” (sering disebut feed-forward) dalam decoder. - num_feature_levels (
int, opsional, defaultnya 3) — Jumlah level fitur input. - decoder_n_points (
int, opsional, defaultnya 4) — Jumlah kunci yang disampelkan di setiap tingkat fitur untuk setiap kepala perhatian dalam decoder. - decoder_layers (
int, opsional, default6) — Jumlah lapisan tersembunyi dalam decoder Transformer. Akan menggunakan nilai yang sama dengannum_layersjika tidak diatur. - decoder_attention_heads (
int, opsional, default8) — Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder Transformer. - decoder_activation_function (
str, opsional, defaultnya"relu") — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Jika string,"gelu","relu","silu"dan"gelu_new"didukung. - attention_dropout (
Union[float, int], opsional, default0.0) — Rasio dropout untuk probabilitas perhatian. - num_denoising (
int, opsional, default 100) — Jumlah total tugas atau kueri denoising yang akan digunakan untuk denoising kontrastif. - anchor_image_size (
tuple[int, int], opsional) — Tinggi dan lebar gambar input yang digunakan selama evaluasi untuk menghasilkan anchor kotak pembatas. Jika None, generasi anchor otomatis diterapkan. - disable_custom_kernels (
bool, opsional, defaultTrue) — Apakah akan menonaktifkan custom kernels. - global_pointer_head_size (
int, opsional, defaultnya 64) — Ukuran kepala pointer global. - gp_dropout_value (
float, opsional, default 0.1) — Probabilitas dropout pada kepala pointer global. - hidden_size (
int, opsional, default 256) — Dimensi dari lapisan decoder, tidak termasuk encoder hibrida. Dapat juga dibaca sebagaid_model, nama yang digunakan oleh garis keturunan RT-DETR yang menjadi asal model ini. - num_coords (
int, opsional, default 10) — Ukuran parameterisasi kotak yang diprediksi oleh bbox heads. PP-DocLayoutV4 meregreskan kuadrilateral empat titik yang dikodekan sebagai[center_x, center_y, dx1, dy1, dx2, dy2, dx3, dy3, dx4, dy4]dalam ruang sigmoid, di mana offset sudut digeser sebesar+0.5. Hanya10yang didukung. - s2r_steps (
int, opsional, default 3) — Jumlah langkah propagasi yang digunakan untuk mengaproksimasi penutupan transitif dari matriks penerus. - s2r_damping (
float, opsional, default 0.5) — Faktor peredaman yang diterapkan pada setiap langkah propagasi tambahan dari penutupan transitif. - s2r_closure_weight_init (
float, opsional, default 0.0) — Nilai awal dari gerbang yang dapat dipelajari (learnable gate) yang menimbang istilah closure. Default-nya adalah0.0sehingga modul fusion yang belum dilatih secara numerik identik dengan penggunaan logits urutan relatif saja.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari PPDocLayoutV4Model. Kelas ini digunakan untuk membuat instans model Pp Doclayout V4 sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari PaddlePaddle/PP-DocLayoutV4_safetensors
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Contoh:
>>> from transformers import PPDocLayoutV4Config, PPDocLayoutV4ForObjectDetection
>>> # Initializing a PP-DocLayoutV4 configuration
>>> configuration = PPDocLayoutV4Config()
>>> # Initializing a model (with random weights) from the configuration
>>> model = PPDocLayoutV4ForObjectDetection(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configPPDocLayoutV4ImageProcessor
kelas transformers.PPDocLayoutV4ImageProcessor
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
Parameter
- do_convert_rgb (
bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB. - do_resize (
bool, kwargs, opsional, defaultTrue) — Apakah akan mengubah ukuran gambar. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, defaultnya{'height' -- 800, 'width': 800}): Menggambarkan dimensi input maksimum untuk model. - default_to_square (
bool, kwargs, opsional, defaultnyaTrue) — Apakah akan menggunakan gambar persegi sebagai default saat melakukan resize, jika size berupa int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya3) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional, defaultTrue) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional, default0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional, defaultTrue) — Apakah akan menormalisasi gambar. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya[0, 0, 0]) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya[1, 1, 1]) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - do_pad (
bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam{"height": int, "width" int}untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jikapad_sizetidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketikado_pad=True. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.NONE: gambar dalam format (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang. Mengembalikan tensor bertumpuk jika diatur ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang. Mengembalikan tensor bertumpuk jika diatur ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang. - Returns tensor bertumpuk jika disetel ke
'pt', selain itu mengembalikan daftar tensor. —
Membangun pemroses gambar PPDocLayoutV4ImageProcessor.
disable_grouping (bool, kwargs, opsional):
Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch.
Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada
observasi empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 image_seq_length (int, kwargs, opsional):
Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input.
Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang.
praproses
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]*argsimage_like_kwargs: dict[str, typing.Any] | None = None**kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> ) → ~image_processing_base.BatchFeature
Parameter
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Gambar yang akan dipreprocess. Mengharapkan satu gambar atau batch gambar dengan nilai piksel berkisar dari 0 hingga 255. Jika mengirimkan gambar dengan nilai piksel antara 0 dan 1, aturdo_rescale=False. - image_like_kwargs (
dict[str, Any], opsional) — Flag pengembang untuk input tambahan yang mirip gambar yang juga akan dipreprocess. Gunakan ini hanya jika melewati input sebagai kwarg tidak berhasil. Misalnya,preprocess(images, masks=masks)adalah opsi yang lebih disukai, tetapi menyebabkan masalah prioritas argumen untuk beberapa model. Dalam kasus tersebut,preprocess(images, image_like_inputs={"masks": masks})dapat digunakan sebagai gantinya. - do_convert_rgb (
bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB. - do_resize (
bool, kwargs, opsional) — Apakah akan mengubah ukuran gambar. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Menggambarkan dimensi input maksimum untuk model. - default_to_square (
bool, kwargs, opsional) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini dapat berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional) — Apakah akan menormalisasi gambar. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - do_pad (
bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam{"height": int, "width" int}untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jikapad_sizetidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketikado_pad=True. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.NONE: gambar dalam format (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang.
Mengembalikan
~image_processing_base.BatchFeature
- data (
dict) — Kamus berisi daftar/array/tensor yang dikembalikan oleh metode call (‘pixel_values’, dll.). - tensor_type (
Union[None, str, TensorType], opsional) — Anda dapat memberikan tensor_type di sini untuk mengonversi daftar bilangan bulat menjadi Tensor PyTorch/Numpy saat inisialisasi.
Praproses sebuah gambar atau kumpulan gambar.
post_process_object_detection
< source >( outputsthreshold: float = 0.5target_sizes = None ) → list[Dict]
Parameter
- outputs (
PPDocLayoutV4ForObjectDetectionOutput) — Output mentah dari model. - threshold (
float, opsional, default 0.5) — Ambang batas skor untuk mempertahankan prediksi deteksi objek. - target_sizes (
torch.Tensorataulist[tuple[int, int]]) — Tensor dengan bentuk(batch_size, 2)atau daftar tuple ((height, width)) yang berisi ukuran target dari setiap gambar dalam batch.
Mengembalikan
list[Dict]
Daftar kamus, satu per gambar, masing-masing berisi scores, labels, boxes,
polygon_points dan order_seq yang diprediksi oleh model. Prediksi diurutkan berdasarkan urutan baca, sehingga
order_seq tidak menurun (kueri yang dipilih di bawah beberapa label mempertahankan satu peringkat).
Mengonversi output mentah dari PPDocLayoutV4ForObjectDetection menjadi kuadrilateral akhir, kotak pembatas dalam format (top_left_x, top_left_y, bottom_right_x, bottom_right_y), dan peringkat urutan baca. Hanya mendukung
PyTorch.