Transformers documentation
Hiera
Model ini dipublikasikan di HF papers pada 2023-06-01 dan disumbangkan ke Hugging Face Transformers pada 2024-07-12.
Hiera
Ikhtisar
Hiera diusulkan dalam Hiera: A Hierarchical Vision Transformer without the Bells-and-Whistles oleh Chaitanya Ryali, Yuan-Ting Hu, Daniel Bolya, Chen Wei, Haoqi Fan, Po-Yao Huang, Vaibhav Aggarwal, Arkabandhu Chowdhury, Omid Poursaeed, Judy Hoffman, Jitendra Malik, Yanghao Li, Christoph Feichtenhofer
Paper ini memperkenalkan “Hiera,” sebuah Vision Transformer hierarkis yang menyederhanakan arsitektur vision transformer hierarkis modern dengan menghapus komponen yang tidak diperlukan tanpa mengorbankan akurasi atau efisiensi. Berbeda dengan transformer tradisional yang menambahkan komponen spesifik visi yang kompleks untuk meningkatkan kinerja klasifikasi terawasi, Hiera menunjukkan bahwa penambahan semacam itu, yang sering disebut “bells-and-whistles,” tidak esensial untuk akurasi tinggi. Dengan memanfaatkan tugas prateks visual yang kuat (MAE) untuk prapelatihan, Hiera mempertahankan kesederhanaan dan mencapai akurasi serta kecepatan yang unggul baik dalam inferensi maupun pelatihan di berbagai tugas pengenalan gambar dan video. Pendekatan ini menunjukkan bahwa bias spasial yang diperlukan untuk tugas visi dapat dipelajari secara efektif melalui prapelatihan yang tepat, sehingga menghilangkan kebutuhan akan kompleksitas arsitektur tambahan.
Abstrak dari makalah tersebut adalah sebagai berikut:
Transformers hierarkis modern untuk visi telah menambahkan beberapa komponen khusus visi dalam upaya meningkatkan kinerja klasifikasi berlabel. Meskipun komponen-komponen ini menghasilkan akurasi yang efektif dan jumlah FLOP yang menarik, kompleksitas tambahan yang ditambahkan justru membuat transformer ini lebih lambat dibandingkan dengan varian ViT polosnya. Dalam makalah ini, kami berargumen bahwa tambahan tersebut tidak diperlukan. Dengan melakukan pra-pelatihan menggunakan tugas prateks visual yang kuat (MAE), kami dapat menghilangkan semua fitur tambahan dari transformer visi multi-tahap state-of-the-art tanpa kehilangan akurasi. Dalam prosesnya, kami menciptakan Hiera, sebuah transformer visi hierarkis yang sangat sederhana yang lebih akurat daripada model-model sebelumnya sekaligus jauh lebih cepat baik saat inferensi maupun selama pelatihan. Kami mengevaluasi Hiera pada berbagai tugas untuk pengenalan gambar dan video. Kode dan model kami tersedia di https://github.com/facebookresearch/hiera.
Hiera architecture. Taken from the original paper. Model ini merupakan kontribusi bersama dari EduardoPacheco dan namangarg110. Kode aslinya dapat ditemukan [di sini] (https://github.com/facebookresearch/hiera).
Sumber daya
Daftar sumber resmi Hugging Face dan komunitas (ditandai dengan 🌎) untuk membantu Anda memulai dengan Hiera. Jika Anda tertarik untuk mengirimkan sumber agar disertakan di sini, silakan buka Pull Request dan kami akan meninjaunya! Sumber tersebut sebaiknya mendemonstrasikan sesuatu yang baru, bukan menduplikasi sumber yang sudah ada.
- HieraForImageClassification didukung oleh notebook ini.
- Lihat juga: Panduan tugas klasifikasi gambar
HieraConfig
kelas transformers.HieraConfig
< 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 = Noneembed_dim: int = 96image_size: list[int] | tuple[int, ...] = (224, 224)patch_size: list[int] | tuple[int, ...] = (7, 7)patch_stride: list[int] | tuple[int, ...] = (4, 4)patch_padding: list[int] | tuple[int, ...] = (3, 3)mlp_ratio: float = 4.0depths: list[int] | tuple[int, ...] = (2, 3, 16, 3)num_heads: list[int] | tuple[int, ...] = (1, 2, 4, 8)embed_dim_multiplier: float | int = 2.0num_query_pool: int = 3query_stride: list[int] | tuple[int, ...] = (2, 2)masked_unit_size: list[int] | tuple[int, ...] = (8, 8)masked_unit_attention: list[bool] | tuple[bool, ...] = (True, True, False, False)drop_path_rate: float | int = 0.0num_channels: int = 3hidden_act: str = 'gelu'initializer_range: float = 0.02layer_norm_init: float = 1.0layer_norm_eps: float = 1e-06decoder_hidden_size: int | None = Nonedecoder_depth: int | None = Nonedecoder_num_heads: int | None = Nonenormalize_pixel_loss: bool | None = Truemask_ratio: float = 0.6_out_features: list[str] | None = None_out_indices: list[int] | None = None )
Parameter
- embed_dim (
int, opsional, default96) — Dimensi dari embeddings dan hidden states. - image_size (
Union[list[int], tuple[int, ...]], opsional, defaultnya(224, 224)) — Ukuran (resolusi) dari setiap gambar. - patch_size (
Union[list[int], tuple[int, ...]], opsional, defaultnya(7, 7)) — Ukuran (resolusi) dari setiap patch. - patch_stride (
list(int), opsional, defaultnya[4, 4]) — Stride dari patch. - patch_padding (
list(int), opsional, defaultnya[3, 3]) — Padding dari patch. - mlp_ratio (
float, opsional, default4.0) — Rasio dimensi tersembunyi MLP terhadap dimensi embedding. - depths (
Union[list[int], tuple[int, ...]], opsional, defaultnya(2, 3, 16, 3)) — Kedalaman setiap layer dalam Transformer. - num_heads (
list(int), opsional, default[1, 2, 4, 8]) — Jumlah attention head di setiap layer encoder Transformer. - embed_dim_multiplier (
float, opsional, default 2.0) — Pengali untuk dimensi patch embedding di setiap lapisan encoder Transformer. - num_query_pool (
int, opsional, defaultnya 3) — Jumlah tahap query pool. - query_stride (
list(int), opsional, defaultnya[2, 2]) — Stride dari query pool. - masked_unit_size (
list(int), opsional, defaultnya[8, 8]) — Ukuran unit yang dimasker. - masked_unit_attention (
list(bool), opsional, default[True, True, False, False]) — Apakah akan menggunakan masked unit attention di setiap lapisan encoder Transformer. - drop_path_rate (
Union[float, int], opsional, defaultnya0.0) — Tingkat drop path untuk fusi patch. - num_channels (
int, opsional, defaultnya3) — Jumlah saluran input. - hidden_act (
str, opsional, defaultnyagelu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - initializer_range (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - layer_norm_init (
float, opsional, default 1.0) — Nilai bobot awal untuk lapisan normalisasi lapisan. - layer_norm_eps (
float, opsional, defaultnya1e-06) — Epsilon yang digunakan oleh lapisan normalisasi lapisan. - decoder_hidden_size (
int, opsional) — Dimensi dari representasi tersembunyi. - decoder_depth (
int, opsional) — Kedalaman decoder untuk pra-pelatihan MAE. - decoder_num_heads (
int, opsional) — Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder Transformer. - normalize_pixel_loss (
bool, opsional, defaultTrue) — Apakah loss piksel akan dinormalisasi berdasarkan jumlah piksel. - mask_ratio (
float, opsional, default 0.6) — Rasio token yang di-mask pada input.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari HieraModel. Kelas ini digunakan untuk membuat instans model Hiera sesuai dengan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari facebook/hiera-base-224
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Contoh:
>>> from transformers import HieraConfig, HieraModel
>>> # Initializing a Hiera hiera-base-patch16-224 style configuration
>>> configuration = HieraConfig()
>>> # Initializing a model (with random weights) from the hiera-base-patch16-224 style configuration
>>> model = HieraModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configHieraModel
kelas transformers.HieraModel
< source >( config: HieraConfigadd_pooling_layer: bool = Trueis_mae: bool = False )
Parameter
- config (HieraConfig) — 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.
- add_pooling_layer (
bool, opsional, defaultTrue) — Apakah akan menerapkan lapisan pooling. - is_mae (
bool, opsional, defaultFalse) — Apakah model akan dijalankan dalam mode MAE.
Model Hiera polos yang menghasilkan hidden-states mentah tanpa head spesifik 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: typing.Optional[torch.Tensor] = Nonenoise: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Noneinterpolate_pos_encoding: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
Parameter
- pixel_values (
torch.Tensordengan bentuk(batch_size, num_channels, image_size, image_size), opsional) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan BitImageProcessor. Lihat BitImageProcessor.call() untuk detailnya (processor_classmenggunakan BitImageProcessor untuk memproses gambar). - noise (
torch.Tensordengan bentuk(batch_size, num_mask_units), opsional) — Terutama digunakan untuk keperluan pengujian guna mengendalikan keacakan dan menjaga reproduktibilitas - output_attentions (
bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihatattentionsdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - interpolate_pos_encoding (
bool, opsional) — Apakah akan menginterpolasi encoding posisi yang telah dilatih sebelumnya. - return_dict (
bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.
Mengembalikan
BaseModelOutputWithPooling atau tuple(torch.Tensor)
A BaseModelOutputWithPooling atau tuple dari
torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (HieraConfig) dan input.
Metode forward dari HieraModel 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, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.pooler_output (
torch.Tensordengan bentuk(batch_size, hidden_size)) — Hidden-state lapisan terakhir dari token pertama dalam urutan (token klasifikasi) setelah diproses lebih lanjut melalui lapisan yang digunakan untuk tugas pra-pelatihan tambahan. Misalnya, untuk keluarga model BERT, ini mengembalikan token klasifikasi setelah diproses melalui lapisan linear dan fungsi aktivasi tanh. Bobot lapisan linear dilatih dari tujuan prediksi kalimat berikutnya (klasifikasi) selama pra-pelatihan.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 model pada output setiap layer ditambah output embedding awal yang opsional.
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 setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
HieraForPreTraining
kelas transformers.HieraForPreTraining
< source >( config: HieraConfig )
Parameter
- config (HieraConfig) — 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.
Transformer Model Hiera dengan decoder di bagian atas untuk pra-pelatihan tanpa pengawasan.
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: typing.Optional[torch.Tensor] = Nonenoise: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Noneinterpolate_pos_encoding: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → HieraForPreTrainingOutput or tuple(torch.Tensor)
Parameter
- pixel_values (
torch.Tensordengan bentuk(batch_size, num_channels, image_size, image_size), opsional) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan BitImageProcessor. Lihat BitImageProcessor.call() untuk detailnya (processor_classmenggunakan BitImageProcessor untuk memproses gambar). - noise (
torch.Tensordengan bentuk(batch_size, num_mask_units), opsional) — Terutama digunakan untuk keperluan pengujian guna mengendalikan keacakan dan menjaga reproduktibilitas - output_attentions (
bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihatattentionsdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - interpolate_pos_encoding (
bool, opsional) — Apakah akan menginterpolasi encoding posisi yang telah dilatih sebelumnya. - return_dict (
bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.
Mengembalikan
HieraForPreTrainingOutput atau tuple(torch.Tensor)
HieraForPreTrainingOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (HieraConfig) dan input.
Metode forward dari HieraForPreTraining 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.
loss (
torch.Tensordengan bentuk(1,)) — Loss rekonstruksi piksel.logits (
torch.Tensordengan bentuk(batch_size, sequence_length, patch_size ** 2 * num_channels)) — Logits rekonstruksi piksel.bool_masked_pos (
torch.BoolTensordengan bentuk(batch_size, sequence_length)) — Tensor yang menunjukkan patch mana yang di-mask (0) dan mana yang tidak (1).ids_restore (
torch.LongTensordengan bentuk(batch_size, sequence_length)) — Tensor yang berisi indeks asli dari patch (yang diacak) yang dimasker.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 model pada output setiap layer ditambah output embedding awal yang opsional.
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 setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
reshaped_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output embeddings + satu untuk output setiap layer) dengan bentuk(batch_size, height, width, hidden_size). Hidden-states model pada output setiap layer ditambah output embedding awal yang di-reshape untuk mencakup dimensi spasial.
Contoh:
>>> from transformers import AutoImageProcessor, HieraForPreTraining
>>> import torch
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/hiera-tiny-224-mae-hf")
>>> model = HieraForPreTraining.from_pretrained("facebook/hiera-tiny-224-mae-hf")
>>> inputs = image_processor(images=image, return_tensors="pt")
>>> outputs = model(**inputs)
>>> logits = outputs.logits
>>> loss = outputs.loss
>>> print(list(logits.shape))
[1, 196, 768]HieraForImageClassification
kelas transformers.HieraForImageClassification
< source >( config: HieraConfig )
Parameter
- config (HieraConfig) — 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 transformer Hiera dengan kepala klasifikasi gambar di atasnya (lapisan linear di atas keadaan tersembunyi akhir dengan pooling rata-rata) misalnya untuk ImageNet.
Perlu dicatat bahwa dimungkinkan untuk melakukan fine-tuning Hiera pada gambar dengan resolusi lebih tinggi daripada yang digunakan saat pelatihan, dengan mengatur
interpolate_pos_encodingmenjadiTruedi forward model. Hal ini akan menginterpolasi position embeddings yang telah dilatih ke resolusi yang lebih tinggi.
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_valueslabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Noneinterpolate_pos_encoding: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → HieraForImageClassificationOutput or tuple(torch.Tensor)
Parameter
- pixel_values (`
of shape(batch_size, num_channels, image_size, image_size)) -- The tensors corresponding to the input images. Pixel values can be obtained using [BitImageProcessor](/docs/transformers/main/en/model_doc/bit#transformers.BitImageProcessor). See [BitImageProcessor.__call__()](/docs/transformers/main/en/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) for details (processor_class` uses BitImageProcessor for processing images). - labels (
torch.LongTensordengan bentuk(batch_size,), opsional) — Label untuk menghitung loss klasifikasi/regresi gambar. Indeks harus berada dalam[0, ..., config.num_labels - 1]. Jikaconfig.num_labels == 1, loss regresi dihitung (Mean-Square loss). Jikaconfig.num_labels > 1, loss klasifikasi dihitung (Cross-Entropy). - output_attentions (
bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihatattentionsdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - interpolate_pos_encoding (
bool, opsional) — Apakah akan menginterpolasi encoding posisi yang telah dilatih sebelumnya. - return_dict (
bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.
Mengembalikan
HieraForImageClassificationOutput atau tuple(torch.Tensor)
HieraForImageClassificationOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (HieraConfig) dan input.
Metode forward dari HieraForImageClassification 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.
loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Loss klasifikasi (atau regresi jika config.num_labels==1).logits (
torch.Tensordengan bentuk(batch_size, config.num_labels)) — Skor klasifikasi (atau regresi jika config.num_labels==1) (sebelum SoftMax).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 tahap) dengan bentuk(batch_size, sequence_length, hidden_size). Hidden-states (juga disebut feature maps) dari model pada output dari setiap tahap.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, patch_size, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
reshaped_hidden_states (
tuple(torch.Tensor),optional) — Tuple daritorch.Tensor(satu untuk output embeddings + satu untuk output setiap stage) dengan bentuk(batch_size, height, width, hidden_size). Ini adalah hidden states model yang telah di-reshape dan di-roll ulang.Hidden-states model pada output setiap lapisan ditambah output embedding awal yang di-reshape untuk mencakup dimensi spasial.
Contoh:
>>> from transformers import AutoImageProcessor, HieraForImageClassification
>>> import torch
>>> from datasets import load_dataset
>>> dataset = load_dataset("huggingface/cats-image")
>>> image = dataset["test"]["image"][0]
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/hiera-base-224")
>>> model = HieraForImageClassification.from_pretrained("facebook/hiera-base-224")
>>> inputs = image_processor(image, return_tensors="pt")
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> # model predicts one of the 1000 ImageNet classes
>>> predicted_label = logits.argmax(-1).item()
>>> print(model.config.id2label[predicted_label])
...