Transformers 文件

ViTMAE

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

PyTorch TensorFlow FlashAttention SDPA

ViTMAE

ViTMAE 是一種自監督視覺模型,它透過遮蓋影像的大部分(約 75%)來進行預訓練。編碼器處理可見的影像塊,解碼器則從編碼後的影像塊和掩碼令牌中重建缺失的畫素。預訓練後,編碼器可用於下游任務,如影像分類或目標檢測,其效能通常優於使用監督學習訓練的模型。

drawing

您可以在 AI at Meta 組織下找到所有原始的 ViTMAE 檢查點。

點選右側邊欄中的 ViTMAE 模型,檢視更多關於如何將 ViTMAE 應用於視覺任務的示例。

下面的示例演示瞭如何使用 ViTMAEForPreTraining 類重建缺失的畫素。

自動模型
import torch
import requests
from PIL import Image
from transformers import ViTImageProcessor, ViTMAEForPreTraining

url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
image = Image.open(requests.get(url, stream=True).raw)

processor = ViTImageProcessor.from_pretrained("facebook/vit-mae-base")
inputs = processor(image, return_tensors="pt")
inputs = {k: v.to("cuda") for k, v in inputs.items()}

model = ViTMAEForPreTraining.from_pretrained("facebook/vit-mae-base", attn_implementation="sdpa").to("cuda")
with torch.no_grad():
    outputs = model(**inputs)

reconstruction = outputs.logits

說明

資源

ViTMAEConfig

class transformers.ViTMAEConfig

< >

( hidden_size = 768 num_hidden_layers = 12 num_attention_heads = 12 intermediate_size = 3072 hidden_act = 'gelu' hidden_dropout_prob = 0.0 attention_probs_dropout_prob = 0.0 initializer_range = 0.02 layer_norm_eps = 1e-12 image_size = 224 patch_size = 16 num_channels = 3 qkv_bias = True decoder_num_attention_heads = 16 decoder_hidden_size = 512 decoder_num_hidden_layers = 8 decoder_intermediate_size = 2048 mask_ratio = 0.75 norm_pix_loss = False **kwargs )

引數

  • hidden_size (int, 可選, 預設為 768) — 編碼器層和池化層的維度。
  • num_hidden_layers (int, 可選, 預設為 12) — Transformer 編碼器中的隱藏層數量。
  • num_attention_heads (int, 可選, 預設為 12) — Transformer 編碼器中每個注意力層的注意力頭數量。
  • intermediate_size (int, 可選, 預設為 3072) — Transformer 編碼器中“中間”(即前饋)層的維度。
  • hidden_act (str or function, 可選, 預設為 "gelu") — 編碼器和池化層中的非線性啟用函式(函式或字串)。如果為字串,支援 "gelu""relu""selu""gelu_new"
  • hidden_dropout_prob (float, 可選, 預設為 0.0) — 嵌入層、編碼器和池化層中所有全連線層的丟棄機率。
  • attention_probs_dropout_prob (float, 可選, 預設為 0.0) — 注意力機率的丟棄率。
  • initializer_range (float, 可選, 預設為 0.02) — 用於初始化所有權重矩陣的 truncated_normal_initializer 的標準差。
  • layer_norm_eps (float, 可選, 預設為 1e-12) — 層歸一化層使用的 epsilon 值。
  • image_size (int, 可選, 預設為 224) — 每張影像的尺寸(解析度)。
  • patch_size (int, 可選, 預設為 16) — 每個影像塊的尺寸(解析度)。
  • num_channels (int, 可選, 預設為 3) — 輸入通道的數量。
  • qkv_bias (bool, 可選, 預設為 True) — 是否為查詢、鍵和值新增偏置。
  • decoder_num_attention_heads (int, 可選, 預設為 16) — 解碼器中每個注意力層的注意力頭數量。
  • decoder_hidden_size (int, 可選, 預設為 512) — 解碼器的維度。
  • decoder_num_hidden_layers (int, 可選, 預設為 8) — 解碼器中的隱藏層數量。
  • decoder_intermediate_size (int, 可選, 預設為 2048) — 解碼器中“中間”(即前饋)層的維度。
  • mask_ratio (float, 可選, 預設為 0.75) — 輸入序列中被遮蓋的令牌的比例。
  • norm_pix_loss (bool, 可選, 預設為 False) — 是否使用歸一化畫素進行訓練(見論文中的表3)。在作者的實驗中,使用歸一化畫素提高了表示質量。

這是用於儲存 ViTMAEModel 配置的配置類。它用於根據指定的引數例項化一個 ViT MAE 模型,定義模型架構。使用預設值例項化配置將產生與 ViT facebook/vit-mae-base 架構類似的配置。

配置物件繼承自 PretrainedConfig,可用於控制模型輸出。有關更多資訊,請閱讀 PretrainedConfig 的文件。

示例

>>> from transformers import ViTMAEConfig, ViTMAEModel

>>> # Initializing a ViT MAE vit-mae-base style configuration
>>> configuration = ViTMAEConfig()

>>> # Initializing a model (with random weights) from the vit-mae-base style configuration
>>> model = ViTMAEModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
Pytorch
隱藏 Pytorch 內容

ViTMAEModel

class transformers.ViTMAEModel

< >

( config )

引數

  • config (ViTMAEModel) — 包含模型所有引數的模型配置類。使用配置檔案進行初始化不會載入與模型相關的權重,只會載入配置。請檢視 from_pretrained() 方法來載入模型權重。

基礎的 Vit Mae 模型,輸出原始的隱藏狀態,沒有任何特定的頭部。

該模型繼承自 PreTrainedModel。請檢視超類的文件,瞭解該庫為所有模型實現的通用方法(例如下載或儲存、調整輸入嵌入大小、修剪注意力頭等)。

該模型也是 PyTorch 的 torch.nn.Module 子類。可以像常規 PyTorch 模組一樣使用它,並參考 PyTorch 文件瞭解所有與通用用法和行為相關的事項。

forward

< >

( pixel_values: typing.Optional[torch.FloatTensor] = None noise: typing.Optional[torch.FloatTensor] = None head_mask: typing.Optional[torch.FloatTensor] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None interpolate_pos_encoding: bool = False ) transformers.models.vit_mae.modeling_vit_mae.ViTMAEModelOutputtuple(torch.FloatTensor)

引數

  • pixel_values (torch.FloatTensor, 形狀為 (batch_size, num_channels, image_size, image_size), 可選) — 對應於輸入影像的張量。畫素值可以使用 {image_processor_class} 獲取。詳情請參閱 {image_processor_class}.__call__ ({processor_class} 使用 {image_processor_class} 處理影像)。
  • noise (torch.FloatTensor, 形狀為 (batch_size, sequence_length), 可選) — 主要用於測試目的,以控制隨機性並保持可復現性
  • head_mask (torch.FloatTensor, 形狀為 (num_heads,)(num_layers, num_heads), 可選) — 用於使自注意力模組的選定頭無效的掩碼。掩碼值在 [0, 1] 中選擇:

    • 1 表示該頭未被遮蓋
    • 0 表示該頭已被遮蓋
  • output_attentions (bool, 可選) — 是否返回所有注意力層的注意力張量。有關更多詳細資訊,請參閱返回張量下的 attentions
  • output_hidden_states (bool, 可選) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的 hidden_states
  • return_dict (bool, 可選) — 是否返回 ModelOutput 而不是普通的元組。
  • interpolate_pos_encoding (bool, 可選, 預設為 False) — 是否對預訓練的位置編碼進行插值。這主要用於在更高解析度的影像上使用模型。

返回

transformers.models.vit_mae.modeling_vit_mae.ViTMAEModelOutputtuple(torch.FloatTensor)

一個 transformers.models.vit_mae.modeling_vit_mae.ViTMAEModelOutput 或一個 torch.FloatTensor 的元組(如果傳入 return_dict=False 或當 config.return_dict=False 時),包含各種元素,具體取決於配置(ViTMAEConfig)和輸入。

  • last_hidden_state (形狀為 (batch_size, sequence_length, hidden_size)torch.FloatTensor, 可選,預設為 None) — 模型最後一層輸出的隱藏狀態序列。

  • mask (torch.FloatTensor, 形狀為 (batch_size, sequence_length)) — 張量,指示哪些影像塊被遮蓋 (1),哪些未被遮蓋 (0)。

  • ids_restore (torch.LongTensor, 形狀為 (batch_size, sequence_length)) — 包含(打亂的)被遮蓋影像塊的原始索引的張量。

  • hidden_states (tuple[torch.FloatTensor], 可選, 在傳入 output_hidden_states=Trueconfig.output_hidden_states=True 時返回) — torch.FloatTensor 的元組(如果模型有嵌入層,則一個用於嵌入層的輸出,另外每個層各一個輸出),形狀為 (batch_size, sequence_length, hidden_size)

    模型在每個層輸出的隱藏狀態以及可選的初始嵌入輸出。

  • attentions (tuple[torch.FloatTensor], 可選, 在傳入 output_attentions=Trueconfig.output_attentions=True 時返回) — torch.FloatTensor 的元組(每層一個),形狀為 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 後的注意力權重,用於計算自注意力頭中的加權平均值。

ViTMAEModel 的 forward 方法,覆蓋了 __call__ 特殊方法。

儘管前向傳播的流程需要在這個函式中定義,但之後應該呼叫 `Module` 例項而不是這個函式,因為前者會處理前處理和後處理步驟,而後者會默默地忽略它們。

示例

>>> from transformers import AutoImageProcessor, ViTMAEModel
>>> from PIL import Image
>>> import requests

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = Image.open(requests.get(url, stream=True).raw)

>>> image_processor = AutoImageProcessor.from_pretrained("facebook/vit-mae-base")
>>> model = ViTMAEModel.from_pretrained("facebook/vit-mae-base")

>>> inputs = image_processor(images=image, return_tensors="pt")
>>> outputs = model(**inputs)
>>> last_hidden_states = outputs.last_hidden_state

ViTMAEForPreTraining

class transformers.ViTMAEForPreTraining

< >

( config )

引數

  • config (ViTMAEForPreTraining) — 包含模型所有引數的模型配置類。使用配置檔案進行初始化不會載入與模型相關的權重,只會載入配置。請查閱 from_pretrained() 方法以載入模型權重。

帶有解碼器頂部的 ViTMAE 模型 Transformer,用於自監督預訓練。

請注意,我們在 examples directory 中提供了一個指令碼,用於在自定義資料上預訓練此模型。

該模型繼承自 PreTrainedModel。請檢視超類的文件,瞭解該庫為所有模型實現的通用方法(例如下載或儲存、調整輸入嵌入大小、修剪注意力頭等)。

該模型也是 PyTorch 的 torch.nn.Module 子類。可以像常規 PyTorch 模組一樣使用它,並參考 PyTorch 文件瞭解所有與通用用法和行為相關的事項。

forward

< >

( pixel_values: typing.Optional[torch.FloatTensor] = None noise: typing.Optional[torch.FloatTensor] = None head_mask: typing.Optional[torch.FloatTensor] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None interpolate_pos_encoding: bool = False ) transformers.models.vit_mae.modeling_vit_mae.ViTMAEForPreTrainingOutput or tuple(torch.FloatTensor)

引數

  • pixel_values (torch.FloatTensor,形狀為 (batch_size, num_channels, image_size, image_size)可選) — 與輸入影像對應的張量。畫素值可以使用 {image_processor_class} 獲得。有關詳細資訊,請參閱 {image_processor_class}.__call__{processor_class} 使用 {image_processor_class} 處理影像)。
  • noise (torch.FloatTensor,形狀為 (batch_size, sequence_length)可選) — 主要用於測試目的,以控制隨機性並保持可復現性。
  • head_mask (torch.FloatTensor,形狀為 (num_heads,)(num_layers, num_heads)可選) — 用於將自注意力模組中選定的頭置為零的掩碼。掩碼值選自 [0, 1]

    • 1 表示頭未被掩碼
    • 0 表示頭被掩碼
  • output_attentions (bool可選) — 是否返回所有注意力層的注意力張量。有關更多詳細資訊,請參閱返回張量下的 attentions
  • output_hidden_states (bool可選) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的 hidden_states
  • return_dict (bool可選) — 是否返回 ModelOutput 而不是普通的元組。
  • interpolate_pos_encoding (bool可選,預設為 False) — 是否對預訓練的位置編碼進行插值。這主要用於在更高解析度的影像上使用模型。

返回

transformers.models.vit_mae.modeling_vit_mae.ViTMAEForPreTrainingOutput or tuple(torch.FloatTensor)

一個 transformers.models.vit_mae.modeling_vit_mae.ViTMAEForPreTrainingOutput 或一個 torch.FloatTensor 的元組(如果傳遞了 return_dict=False 或當 config.return_dict=False 時),根據配置(ViTMAEConfig)和輸入,包含各種元素。

  • loss (torch.FloatTensor,形狀為 (1,)) — 畫素重建損失。

  • logits (torch.FloatTensor,形狀為 (batch_size, sequence_length, patch_size ** 2 * num_channels)) — 畫素重建 logits。

  • mask (torch.FloatTensor, 形狀為 (batch_size, sequence_length)) — 張量,指示哪些影像塊被遮蓋 (1),哪些未被遮蓋 (0)。

  • ids_restore (torch.LongTensor, 形狀為 (batch_size, sequence_length)) — 包含(打亂的)被遮蓋影像塊的原始索引的張量。

  • hidden_states (tuple[torch.FloatTensor], 可選, 在傳入 output_hidden_states=Trueconfig.output_hidden_states=True 時返回) — torch.FloatTensor 的元組(如果模型有嵌入層,則一個用於嵌入層的輸出,另外每個層各一個輸出),形狀為 (batch_size, sequence_length, hidden_size)

    模型在每個層輸出的隱藏狀態以及可選的初始嵌入輸出。

  • attentions (tuple[torch.FloatTensor], 可選, 在傳入 output_attentions=Trueconfig.output_attentions=True 時返回) — torch.FloatTensor 的元組(每層一個),形狀為 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 後的注意力權重,用於計算自注意力頭中的加權平均值。

ViTMAEForPreTraining 的前向方法,重寫了 __call__ 特殊方法。

儘管前向傳播的流程需要在這個函式中定義,但之後應該呼叫 `Module` 例項而不是這個函式,因為前者會處理前處理和後處理步驟,而後者會默默地忽略它們。

示例

>>> from transformers import AutoImageProcessor, ViTMAEForPreTraining
>>> from PIL import Image
>>> import requests

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = Image.open(requests.get(url, stream=True).raw)

>>> image_processor = AutoImageProcessor.from_pretrained("facebook/vit-mae-base")
>>> model = ViTMAEForPreTraining.from_pretrained("facebook/vit-mae-base")

>>> inputs = image_processor(images=image, return_tensors="pt")
>>> outputs = model(**inputs)
>>> loss = outputs.loss
>>> mask = outputs.mask
>>> ids_restore = outputs.ids_restore
TensorFlow
隱藏 TensorFlow 內容

TFViTMAEModel

class transformers.TFViTMAEModel

< >

( config: ViTMAEConfig *inputs **kwargs )

引數

  • config (ViTMAEConfig) — 包含模型所有引數的模型配置類。使用配置檔案進行初始化不會載入與模型相關的權重,只會載入配置。請查閱 from_pretrained() 方法以載入模型權重。

基礎的 ViTMAE 模型 Transformer,輸出原始隱藏狀態,頂部沒有任何特定的頭。該模型繼承自 TFPreTrainedModel。請查閱超類文件,瞭解庫為所有模型實現的通用方法(例如下載或儲存、調整輸入嵌入大小、修剪頭等)。

此模型也是 keras.Model 的子類。可以像常規的 TF 2.0 Keras 模型一樣使用它,並參考 TF 2.0 文件瞭解所有與通用用法和行為相關的事項。

transformers 中的 TensorFlow 模型和層接受兩種輸入格式

  • 所有輸入作為關鍵字引數(如 PyTorch 模型),或
  • 所有輸入作為第一個位置引數中的列表、元組或字典。

支援第二種格式的原因是,Keras 方法在向模型和層傳遞輸入時更喜歡這種格式。由於這種支援,當使用像 model.fit() 這樣的方法時,事情應該能“順利進行”——只需以 model.fit() 支援的任何格式傳遞你的輸入和標籤!但是,如果你想在 Keras 方法(如 fit()predict())之外使用第二種格式,例如在使用 Keras Functional API 建立自己的層或模型時,有三種可能性可以將所有輸入張量收集到第一個位置引數中。

  • 一個只包含 pixel_values 的獨立張量:model(pixel_values)
  • 一個長度可變的列表,其中包含一個或多個輸入張量,按文件字串中給定的順序排列:model([pixel_values, attention_mask])model([pixel_values, attention_mask, token_type_ids])
  • 一個字典,包含一個或多個與文件字串中給定的輸入名稱相關聯的輸入張量:model({"pixel_values": pixel_values, "token_type_ids": token_type_ids})

請注意,當使用子類化建立模型和層時,您無需擔心任何這些問題,因為您可以像呼叫任何其他 Python 函式一樣傳遞輸入!

呼叫

< >

( pixel_values: TFModelInputType | None = None noise: Optional[tf.Tensor] = None head_mask: np.ndarray | tf.Tensor | None = None output_attentions: Optional[bool] = None output_hidden_states: Optional[bool] = None return_dict: Optional[bool] = None training: bool = False interpolate_pos_encoding: bool = False ) transformers.models.vit_mae.modeling_tf_vit_mae.TFViTMAEModelOutput or tuple(tf.Tensor)

引數

  • pixel_values (np.ndarray, tf.Tensor, list[tf.Tensor] `dict[str, tf.Tensor]dict[str, np.ndarray],且每個示例的形狀必須為 (batch_size, num_channels, height, width)) — 畫素值。畫素值可以透過 AutoImageProcessor 獲得。詳情請參閱 ViTImageProcessor.__call__()
  • head_mask (np.ndarraytf.Tensor,形狀為 (num_heads,)(num_layers, num_heads)可選) — 用於將自注意力模組中選定的頭置為零的掩碼。掩碼值選自 [0, 1]

    • 1 表示頭未被掩碼
    • 0 表示頭被掩碼
  • output_attentions (bool可選) — 是否返回所有注意力層的注意力張量。有關更多詳細資訊,請參閱返回張量下的 attentions。此引數只能在即時模式下使用,在圖模式下將使用配置中的值。
  • output_hidden_states (bool可選) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的 hidden_states。此引數只能在即時模式下使用,在圖模式下將使用配置中的值。
  • return_dict (bool可選) — 是否返回 ModelOutput 而不是普通的元組。此引數可以在即時模式下使用,在圖模式下該值將始終設定為 True。
  • training (bool可選,預設為 `False`) — 是否在訓練模式下使用模型(某些模組如 dropout 模組在訓練和評估之間有不同的行為)。
  • interpolate_pos_encoding (bool可選,預設為 False) — 是否在編碼器和解碼器處插值位置編碼。

返回

transformers.models.vit_mae.modeling_tf_vit_mae.TFViTMAEModelOutput or tuple(tf.Tensor)

一個 transformers.models.vit_mae.modeling_tf_vit_mae.TFViTMAEModelOutput 或一個 tf.Tensor 的元組(如果傳遞了 return_dict=False 或當 config.return_dict=False 時),根據配置(ViTMAEConfig)和輸入,包含各種元素。

  • last_hidden_state (tf.Tensor of shape (batch_size, sequence_length, hidden_size)) — 模型最後一層輸出的隱藏狀態序列。
  • mask (tf.Tensor,形狀為 (batch_size, sequence_length)) — 表示哪些補丁被掩碼(1)以及哪些未被掩碼(0)的張量。
  • ids_restore (tf.Tensor,形狀為 (batch_size, sequence_length)) — 包含(已打亂的)被掩碼補丁的原始索引的張量。
  • hidden_states (tuple(tf.Tensor)可選,當傳遞 output_hidden_states=True 或當 config.output_hidden_states=True 時返回) — tf.Tensor 的元組(一個用於嵌入層的輸出,一個用於每層的輸出),形狀為 (batch_size, sequence_length, hidden_size)。模型在每層輸出處的隱藏狀態以及初始嵌入輸出。
  • attentions (tuple(tf.Tensor)可選,當傳遞 output_attentions=True 或當 config.output_attentions=True 時返回) — tf.Tensor 的元組(每層一個),形狀為 (batch_size, num_heads, sequence_length, sequence_length)。注意力 softmax 之後的注意力權重,用於在自注意力頭中計算加權平均值。

TFViTMAEModel 的前向方法,重寫了 __call__ 特殊方法。

儘管前向傳播的流程需要在這個函式中定義,但之後應該呼叫 `Module` 例項而不是這個函式,因為前者會處理前處理和後處理步驟,而後者會默默地忽略它們。

示例

>>> from transformers import AutoImageProcessor, TFViTMAEModel
>>> from PIL import Image
>>> import requests

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = Image.open(requests.get(url, stream=True).raw)

>>> image_processor = AutoImageProcessor.from_pretrained("facebook/vit-mae-base")
>>> model = TFViTMAEModel.from_pretrained("facebook/vit-mae-base")

>>> inputs = image_processor(images=image, return_tensors="tf")
>>> outputs = model(**inputs)
>>> last_hidden_states = outputs.last_hidden_state

TFViTMAEForPreTraining

class transformers.TFViTMAEForPreTraining

< >

( config )

引數

  • config (ViTMAEConfig) — 包含模型所有引數的模型配置類。使用配置檔案進行初始化不會載入與模型相關的權重,只會載入配置。請查閱 from_pretrained() 方法以載入模型權重。

帶有解碼器頂部的 ViTMAE 模型 Transformer,用於自監督預訓練。該模型繼承自 TFPreTrainedModel。請查閱超類文件,瞭解庫為所有模型實現的通用方法(例如下載或儲存、調整輸入嵌入大小、修剪頭等)。

此模型也是 keras.Model 的子類。可以像常規的 TF 2.0 Keras 模型一樣使用它,並參考 TF 2.0 文件瞭解所有與通用用法和行為相關的事項。

transformers 中的 TensorFlow 模型和層接受兩種輸入格式

  • 所有輸入作為關鍵字引數(如 PyTorch 模型),或
  • 所有輸入作為第一個位置引數中的列表、元組或字典。

支援第二種格式的原因是,Keras 方法在向模型和層傳遞輸入時更喜歡這種格式。由於這種支援,當使用像 model.fit() 這樣的方法時,事情應該能“順利進行”——只需以 model.fit() 支援的任何格式傳遞你的輸入和標籤!但是,如果你想在 Keras 方法(如 fit()predict())之外使用第二種格式,例如在使用 Keras Functional API 建立自己的層或模型時,有三種可能性可以將所有輸入張量收集到第一個位置引數中。

  • 一個只包含 pixel_values 的獨立張量:model(pixel_values)
  • 一個長度可變的列表,其中包含一個或多個輸入張量,按文件字串中給定的順序排列:model([pixel_values, attention_mask])model([pixel_values, attention_mask, token_type_ids])
  • 一個字典,包含一個或多個與文件字串中給定的輸入名稱相關聯的輸入張量:model({"pixel_values": pixel_values, "token_type_ids": token_type_ids})

請注意,當使用子類化建立模型和層時,您無需擔心任何這些問題,因為您可以像呼叫任何其他 Python 函式一樣傳遞輸入!

呼叫

< >

( pixel_values: TFModelInputType | None = None noise: Optional[tf.Tensor] = None head_mask: np.ndarray | tf.Tensor | None = None output_attentions: Optional[bool] = None output_hidden_states: Optional[bool] = None return_dict: Optional[bool] = None training: bool = False interpolate_pos_encoding: bool = False ) transformers.models.vit_mae.modeling_tf_vit_mae.TFViTMAEForPreTrainingOutput or tuple(tf.Tensor)

引數

  • pixel_values (np.ndarray, tf.Tensor, list[tf.Tensor] `dict[str, tf.Tensor]dict[str, np.ndarray],且每個示例的形狀必須為 (batch_size, num_channels, height, width)) — 畫素值。畫素值可以透過 AutoImageProcessor 獲得。詳情請參閱 ViTImageProcessor.__call__()
  • head_mask (np.ndarraytf.Tensor,形狀為 (num_heads,)(num_layers, num_heads)可選) — 用於將自注意力模組中選定的頭置為零的掩碼。掩碼值選自 [0, 1]

    • 1 表示頭未被掩碼
    • 0 表示頭被掩碼
  • output_attentions (bool可選) — 是否返回所有注意力層的注意力張量。有關更多詳細資訊,請參閱返回張量下的 attentions。此引數只能在即時模式下使用,在圖模式下將使用配置中的值。
  • output_hidden_states (bool可選) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的 hidden_states。此引數只能在即時模式下使用,在圖模式下將使用配置中的值。
  • return_dict (bool可選) — 是否返回 ModelOutput 而不是普通的元組。此引數可以在即時模式下使用,在圖模式下該值將始終設定為 True。
  • training (bool可選,預設為 `False`) — 是否在訓練模式下使用模型(某些模組如 dropout 模組在訓練和評估之間有不同的行為)。
  • interpolate_pos_encoding (bool可選,預設為 False) — 是否在編碼器和解碼器處插值位置編碼。

返回

transformers.models.vit_mae.modeling_tf_vit_mae.TFViTMAEForPreTrainingOutput or tuple(tf.Tensor)

一個 transformers.models.vit_mae.modeling_tf_vit_mae.TFViTMAEForPreTrainingOutput 或一個 tf.Tensor 的元組(如果傳遞了 return_dict=False 或當 config.return_dict=False 時),根據配置(ViTMAEConfig)和輸入,包含各種元素。

  • loss (tf.Tensor,形狀為 (1,)) — 畫素重建損失。
  • logits (tf.Tensor,形狀為 (batch_size, sequence_length, patch_size ** 2 * num_channels)) — 畫素重建 logits。
  • mask (tf.Tensor,形狀為 (batch_size, sequence_length)) — 表示哪些補丁被掩碼(1)以及哪些未被掩碼(0)的張量。
  • ids_restore (tf.Tensor,形狀為 (batch_size, sequence_length)) — 包含(已打亂的)被掩碼補丁的原始索引的張量。
  • hidden_states (tuple(tf.Tensor)可選,當傳遞 output_hidden_states=True 或當 config.output_hidden_states=True 時返回) — tf.Tensor 的元組(一個用於嵌入層的輸出,一個用於每層的輸出),形狀為 (batch_size, sequence_length, hidden_size)。模型在每層輸出處的隱藏狀態以及初始嵌入輸出。
  • attentions (tuple(tf.Tensor)可選,當傳遞 output_attentions=True 或當 config.output_attentions=True 時返回) — tf.Tensor 的元組(每層一個),形狀為 (batch_size, num_heads, sequence_length, sequence_length)。注意力 softmax 之後的注意力權重,用於在自注意力頭中計算加權平均值。

TFViTMAEForPreTraining 的前向方法,重寫了 __call__ 特殊方法。

儘管前向傳播的流程需要在這個函式中定義,但之後應該呼叫 `Module` 例項而不是這個函式,因為前者會處理前處理和後處理步驟,而後者會默默地忽略它們。

示例

>>> from transformers import AutoImageProcessor, TFViTMAEForPreTraining
>>> from PIL import Image
>>> import requests

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = Image.open(requests.get(url, stream=True).raw)

>>> image_processor = AutoImageProcessor.from_pretrained("facebook/vit-mae-base")
>>> model = TFViTMAEForPreTraining.from_pretrained("facebook/vit-mae-base")

>>> inputs = image_processor(images=image, return_tensors="pt")
>>> outputs = model(**inputs)
>>> loss = outputs.loss
>>> mask = outputs.mask
>>> ids_restore = outputs.ids_restore
< > 在 GitHub 上更新

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