Transformers 4.37 中文文档(七十三)(4)https://developer.aliyun.com/article/1564200
TFViTMAEModel
class transformers.TFViTMAEModel
( config: ViTMAEConfig *inputs **kwargs )
参数
config
(ViTMAEConfig)—具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只加载配置。查看 from_pretrained()方法以加载模型权重。
裸 ViTMAE 模型变压器输出原始隐藏状态,没有任何特定的头部。该模型继承自 TFPreTrainedModel。查看超类文档以了解库为所有模型实现的通用方法(如下载或保存、调整输入嵌入、修剪头等)。
该模型也是tf.keras.Model子类。将其用作常规的 TF 2.0 Keras 模型,并参考 TF 2.0 文档以获取与一般用法和行为相关的所有内容。
transformers
中的 TensorFlow 模型和层接受两种格式的输入:
- 所有输入都作为关键字参数(类似于 PyTorch 模型),或者
- 所有输入都作为列表、元组或字典的第一个位置参数。
支持第二种格式的原因是,Keras 方法在将输入传递给模型和层时更喜欢这种格式。由于这种支持,当使用model.fit()
等方法时,应该“只需工作” - 只需以model.fit()
支持的任何格式传递输入和标签!但是,如果您想在 Keras 方法之外使用第二种格式,例如在使用 KerasFunctional
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 函数一样传递输入!
call
( pixel_values: TFModelInputType | None = None noise: 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 ) → export const metadata = 'undefined';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
(形状为(num_heads,)
或(num_layers, num_heads)
的np.ndarray
或tf.Tensor
,可选)— 用于使自注意力模块中的选定头部失效的掩码。掩码值选定在[0, 1]
中:
- 1 表示头部未被屏蔽,
- 0 表示头部被屏蔽。
output_attentions
(bool
,可选)— 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量下的attentions
。此参数仅可在急切模式下使用,在图模式下将使用配置中的值。output_hidden_states
(bool
,可选)— 是否返回所有层的隐藏状态。有关更多详细信息,请参见返回张量下的hidden_states
。此参数仅可在急切模式下使用,在图模式下将使用配置中的值。return_dict
(bool
,可选)— 是否返回 ModelOutput 而不是普通元组。此参数可以在急切模式下使用,在图模式下该值将始终设置为 True。training
(bool
,可选,默认为False
)— 是否在训练模式下使用模型(一些模块,如 dropout 模块,在训练和评估之间具有不同的行为)。
返回
transformers.models.vit_mae.modeling_tf_vit_mae.TFViTMAEModelOutput
或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
(形状为(batch_size, sequence_length, hidden_size)
的tf.Tensor
)— 模型最后一层的隐藏状态序列的输出。mask
(形状为(batch_size, sequence_length)
的tf.Tensor
)— 指示哪些补丁被屏蔽(1)哪些未被屏蔽(0)的张量。ids_restore
(形状为(batch_size, sequence_length)
的tf.Tensor
)— 包含(打乱的)蒙版补丁的原始索引的张量。hidden_states
(tuple(tf.Tensor)
,可选,当传递output_hidden_states=True
或config.output_hidden_states=True
时返回)— 形状为(batch_size, sequence_length, hidden_size)
的tf.Tensor
元组(一个用于嵌入的输出 + 一个用于每个层的输出)。模型在每层的输出隐藏状态加上初始嵌入输出。attentions
(tuple(tf.Tensor)
,可选,当传递output_attentions=True
或config.output_attentions=True
时返回)— 形状为(batch_size, num_heads, sequence_length, sequence_length)
的tf.Tensor
元组(每层一个)。注意力 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 模型变压器,顶部带有解码器,用于自监督预训练。此模型继承自 TFPreTrainedModel。查看超类文档以了解库为所有模型实现的通用方法(例如下载或保存,调整输入嵌入,修剪头等)。
此模型还是一个tf.keras.Model子类。将其用作常规 TF 2.0 Keras 模型,并参考 TF 2.0 文档以获取有关一般用法和行为的所有相关信息。
transformers
中的 TensorFlow 模型和层接受两种格式的输入:
- 将所有输入作为关键字参数(类似于 PyTorch 模型),或
- 将所有输入作为列表、元组或字典的第一个位置参数。
支持第二种格式的原因是 Keras 方法在将输入传递给模型和层时更喜欢这种格式。由于这种支持,当使用model.fit()
等方法时,应该“只需工作” - 只需传递model.fit()
支持的任何格式的输入和标签!但是,如果您想在 Keras 方法之外使用第二种格式,例如在使用 KerasFunctional
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 函数一样传递输入!
call
( pixel_values: TFModelInputType | None = None noise: 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 ) → export const metadata = 'undefined';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
(形状为(num_heads,)
或(num_layers, num_heads)
的np.ndarray
或tf.Tensor
,可选)—用于使自注意力模块中选择的头部失效的掩码。掩码值选择在[0, 1]
中:
- 1 表示头部未被
屏蔽
, - 0 表示头部被
屏蔽
。
output_attentions
(bool
,可选)—是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions
。此参数仅可在急切模式下使用,在图模式中将使用配置中的值。output_hidden_states
(bool
,可选)—是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states
。此参数仅可在急切模式下使用,在图模式中将使用配置中的值。return_dict
(bool
,可选)—是否返回一个 ModelOutput 而不是一个普通元组。此参数可在急切模式下使用,在图模式中该值将始终设置为 True。training
(bool
,可选,默认为False
)—是否在训练模式下使用模型(一些模块如 dropout 模块在训练和评估之间有不同的行为)。
返回结果
transformers.models.vit_mae.modeling_tf_vit_mae.TFViTMAEForPreTrainingOutput
或tuple(tf.Tensor)
一个transformers.models.vit_mae.modeling_tf_vit_mae.TFViTMAEForPreTrainingOutput
或一个tf.Tensor
元组(如果传递return_dict=False
或config.return_dict=False
)包含根据配置(ViTMAEConfig)和输入的各种元素。
loss
(形状为(1,)
的tf.Tensor
)—像素重建损失。logits
(形状为(batch_size, sequence_length, patch_size ** 2 * num_channels)
的tf.Tensor
)—像素重建 logits。mask
(形状为(batch_size, sequence_length)
的tf.Tensor
)—指示哪些补丁被屏蔽(1)哪些没有被屏蔽(0)的张量。ids_restore
(形状为(batch_size, sequence_length)
的tf.Tensor
)—包含(打乱的)被屏蔽补丁的原始索引的张量。hidden_states
(tuple(tf.Tensor)
,可选,当传递output_hidden_states=True
或config.output_hidden_states=True
时返回)—形状为(batch_size, sequence_length, hidden_size)
的tf.Tensor
元组。模型在每一层输出的隐藏状态加上初始嵌入输出。attentions
(tuple(tf.Tensor)
,可选,当传递output_attentions=True
或config.output_attentions=True
时返回)—形状为(batch_size, num_heads, sequence_length, sequence_length)
的tf.Tensor
元组。注意力 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
ViTMatte
原文链接:
huggingface.co/docs/transformers/v4.37.2/en/model_doc/vitmatte
概述
ViTMatte 模型是由姚景峰、王兴刚、杨树生、王宝元在使用预训练的普通视觉 Transformer 增强图像抠图中提出的。ViTMatte 利用普通的视觉 Transformer 来进行图像抠图任务,即准确估计图像和视频中的前景对象的过程。
论文摘要如下:
最近,普通视觉 Transformer(ViTs)在各种计算机视觉任务中表现出色,这要归功于它们强大的建模能力和大规模预训练。然而,它们尚未征服图像抠图问题。我们假设图像抠图也可以通过 ViTs 得到提升,并提出了一种新的高效且稳健的基于 ViT 的抠图系统,名为 ViTMatte。我们的方法利用了(i)混合注意力机制结合卷积颈部,帮助 ViTs 在抠图任务中实现出色的性能-计算折衷。 (ii)此外,我们引入了细节捕获模块,它只由简单轻量级卷积组成,以补充抠图所需的详细信息。据我们所知,ViTMatte 是第一个通过简洁的适应性释放 ViT 在图像抠图中潜力的工作。它从 ViT 到抠图继承了许多优越的特性,包括各种预训练策略、简洁的架构设计和灵活的推断策略。我们在 Composition-1k 和 Distinctions-646 上评估了 ViTMatte,这是图像抠图最常用的基准,我们的方法取得了最先进的性能,并大幅超越了先前的抠图作品。
ViTMatte 高层概述。摘自原始论文。
资源
提供一份官方 Hugging Face 和社区(由🌎表示)资源列表,以帮助您开始使用 ViTMatte。
- 关于使用 VitMatteForImageMatting 进行推断的演示笔记本,包括背景替换,可以在这里找到。
模型期望图像和 trimap(连接在一起)作为输入。为此目的使用ViTMatteImageProcessor
。
VitMatteConfig
class transformers.VitMatteConfig
( backbone_config: PretrainedConfig = None hidden_size: int = 384 batch_norm_eps: float = 1e-05 initializer_range: float = 0.02 convstream_hidden_sizes: List = [48, 96, 192] fusion_hidden_sizes: List = [256, 128, 64, 32] **kwargs )
参数
backbone_config
(PretrainedConfig
ordict
, optional, defaults toVitDetConfig()
) — 主干模型的配置。hidden_size
(int
, optional, defaults to 384) — 解码器的输入通道数。batch_norm_eps
(float
, optional, defaults to 1e-05) — 批量归一化层使用的 epsilon。initializer_range
(float
, optional, defaults to 0.02) — 用于初始化所有权重矩阵的截断正态初始化器的标准差。convstream_hidden_sizes
(List[int]
, optional, defaults to[48, 96, 192]
) — ConvStream 模块的输出通道数。fusion_hidden_sizes
(List[int]
, optional, defaults to[256, 128, 64, 32]
) — Fusion 块的输出通道数。
这是用于存储 VitMatteForImageMatting 配置的配置类。它用于根据指定的参数实例化一个 ViTMatte 模型,定义模型架构。使用默认值实例化配置将产生类似于 ViTMatte hustvl/vitmatte-small-composition-1k 架构的配置。
配置对象继承自 PretrainedConfig,可用于控制模型输出。阅读来自 PretrainedConfig 的文档以获取更多信息。
示例:
>>> from transformers import VitMatteConfig, VitMatteForImageMatting >>> # Initializing a ViTMatte hustvl/vitmatte-small-composition-1k style configuration >>> configuration = VitMatteConfig() >>> # Initializing a model (with random weights) from the hustvl/vitmatte-small-composition-1k style configuration >>> model = VitMatteForImageMatting(configuration) >>> # Accessing the model configuration >>> configuration = model.config
to_dict
( )
将此实例序列化为 Python 字典。覆盖默认的 to_dict()。返回:Dict[str, any]
:构成此配置实例的所有属性的字典,
VitMatteImageProcessor
class transformers.VitMatteImageProcessor
( do_rescale: bool = True rescale_factor: Union = 0.00392156862745098 do_normalize: bool = True image_mean: Union = None image_std: Union = None do_pad: bool = True size_divisibility: int = 32 **kwargs )
参数
do_rescale
(bool
, optional, 默认为True
) — 是否按指定比例rescale_factor
重新缩放图像。可以被preprocess
方法中的do_rescale
参数覆盖。rescale_factor
(int
或float
, optional, 默认为1/255
) — 如果重新缩放图像,则使用的缩放因子。可以被preprocess
方法中的rescale_factor
参数覆盖。do_normalize
(bool
, optional, 默认为True
) — 是否对图像进行规范化。可以被preprocess
方法中的do_normalize
参数覆盖。image_mean
(float
或List[float]
, optional, 默认为IMAGENET_STANDARD_MEAN
) — 如果规范化图像,则使用的均值。这是一个浮点数或与图像中通道数相同长度的浮点数列表。可以被preprocess
方法中的image_mean
参数覆盖。image_std
(float
或List[float]
, optional, 默认为IMAGENET_STANDARD_STD
) — 如果规范化图像,则使用的标准差。这是一个浮点数或与图像中通道数相同长度的浮点数列表。可以被preprocess
方法中的image_std
参数覆盖。do_pad
(bool
, optional, 默认为True
) — 是否填充图像以使宽度和高度可被size_divisibility
整除。可以被preprocess
方法中的do_pad
参数覆盖。size_divisibility
(int
, optional, 默认为 32) — 图像的宽度和高度将被填充为可被此数字整除。
构建一个 ViTMatte 图像处理器。
preprocess
( images: Union trimaps: Union do_rescale: Optional = None rescale_factor: Optional = None do_normalize: Optional = None image_mean: Union = None image_std: Union = None do_pad: Optional = None size_divisibility: Optional = None return_tensors: Union = None data_format: Union = <ChannelDimension.FIRST: 'channels_first'> input_data_format: Union = None **kwargs )
参数
images
(ImageInput
) — 预处理的图像。期望单个图像或批量图像,像素值范围为 0 到 255。如果传入像素值在 0 到 1 之间的图像,请设置do_rescale=False
。trimaps
(ImageInput
) — 预处理的 Trimap。do_rescale
(bool
, optional, 默认为self.do_rescale
) — 是否将图像值重新缩放到 [0 - 1]。rescale_factor
(float
, optional, 默认为self.rescale_factor
) — 如果do_rescale
设置为True
,则用于重新缩放图像的重新缩放因子。do_normalize
(bool
, optional, 默认为self.do_normalize
) — 是否对图像进行规范化。image_mean
(float
或List[float]
, optional, 默认为self.image_mean
) — 如果设置do_normalize
为True
,则使用的图像均值。image_std
(float
或List[float]
,可选,默认为self.image_std
)-如果do_normalize
设置为True
,要使用的图像标准差。do_pad
(bool
,可选,默认为self.do_pad
)-是否填充图像。size_divisibility
(int
,可选,默认为self.size_divisibility
)-如果do_pad
设置为True
,则填充图像的大小可被整除。return_tensors
(str
或TensorType
,可选)-要返回的张量类型。可以是以下之一:
- 未设置:返回一个
np.ndarray
列表。 TensorType.TENSORFLOW
或'tf'
:返回类型为tf.Tensor
的批次。TensorType.PYTORCH
或'pt'
:返回类型为torch.Tensor
的批次。TensorType.NUMPY
或'np'
:返回类型为np.ndarray
的批次。TensorType.JAX
或'jax'
:返回类型为jax.numpy.ndarray
的批次。
data_format
(ChannelDimension
或str
,可选,默认为ChannelDimension.FIRST
)-输出图像的通道维度格式。可以是以下之一:
"channels_first"
或ChannelDimension.FIRST
:图像以(通道数,高度,宽度)格式。"channels_last"
或ChannelDimension.LAST
:图像以(高度,宽度,通道数)格式。- 未设置:使用输入图像的通道维度格式。
input_data_format
(ChannelDimension
或str
,可选)-输入图像的通道维度格式。如果未设置,则从输入图像中推断通道维度格式。可以是以下之一:
"channels_first"
或ChannelDimension.FIRST
:图像以(通道数,高度,宽度)格式。"channels_last"
或ChannelDimension.LAST
:图像以(高度,宽度,通道数)格式。"none"
或ChannelDimension.NONE
:图像以(高度,宽度)格式。
预处理一张图像或一批图像。
VitMatteForImageMatting
transformers.VitMatteForImageMatting
类
( config )
参数
- 此模型是 PyTorch torch.nn.Module子类。使用
- 作为常规 PyTorch 模块,并参考 PyTorch 文档以获取有关一般用法和行为的所有相关信息。-配置(UperNetConfig](/docs/transformers/v4.37.2/en/main_classes/model#transformers.PreTrainedModel.from_pretrained)方法以加载模型权重。
利用任何视觉骨干的 ViTMatte 框架,例如 ADE20k,CityScapes。
forward
( pixel_values: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None labels: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.models.vitmatte.modeling_vitmatte.ImageMattingOutput or tuple(torch.FloatTensor)
参数
pixel_values
(形状为(batch_size, num_channels, height, width)
的torch.FloatTensor
)-像素值。默认情况下,如果提供,将忽略填充。可以使用 AutoImageProcessor 获取像素值。有关详细信息,请参阅 VitMatteImageProcessor.call
()。output_attentions
(bool
,可选)-是否返回所有注意力层的注意力张量,如果骨干网络具有这些层。有关更多详细信息,请参阅返回的张量下的attentions
。output_hidden_states
(bool
,可选)-是否返回骨干网络所有层的隐藏状态。有关更多详细信息,请参阅返回的张量下的hidden_states
。return_dict
(bool
,可选)-是否返回 ModelOutput 而不是普通元组。labels
(形状为(batch_size, height, width)
的torch.LongTensor
,可选)-用于计算损失的地面实况图像抠图。
返回
transformers.models.vitmatte.modeling_vitmatte.ImageMattingOutput
或tuple(torch.FloatTensor)
一个transformers.models.vitmatte.modeling_vitmatte.ImageMattingOutput
或一个torch.FloatTensor
元组(如果传递return_dict=False
或config.return_dict=False
时)包含根据配置(VitMatteConfig)和输入而异的各种元素。
loss
(形状为(1,)
的torch.FloatTensor
,可选,当提供labels
时返回) — 损失。alphas
(形状为(batch_size, num_channels, height, width)
的torch.FloatTensor
) — 估计的 alpha 值。hidden_states
(tuple(torch.FloatTensor)
,可选,当传递output_hidden_states=True
或config.output_hidden_states=True
时返回) — 形状为(batch_size, sequence_length, hidden_size)
的torch.FloatTensor
元组。模型在每个阶段输出的隐藏状态(也称为特征图)。attentions
(tuple(torch.FloatTensor)
,可选,当传递output_attentions=True
或config.output_attentions=True
时返回) — 形状为(batch_size, num_heads, patch_size, sequence_length)
的torch.FloatTensor
元组。
注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。
VitMatteForImageMatting 的前向方法,覆盖了__call__
特殊方法。
尽管前向传递的配方需要在此函数内定义,但应该在此之后调用Module
实例,而不是这个,因为前者负责运行预处理和后处理步骤,而后者则默默地忽略它们。
示例:
>>> from transformers import VitMatteImageProcessor, VitMatteForImageMatting >>> import torch >>> from PIL import Image >>> from huggingface_hub import hf_hub_download >>> processor = VitMatteImageProcessor.from_pretrained("hustvl/vitmatte-small-composition-1k") >>> model = VitMatteForImageMatting.from_pretrained("hustvl/vitmatte-small-composition-1k") >>> filepath = hf_hub_download( ... repo_id="hf-internal-testing/image-matting-fixtures", filename="image.png", repo_type="dataset" ... ) >>> image = Image.open(filepath).convert("RGB") >>> filepath = hf_hub_download( ... repo_id="hf-internal-testing/image-matting-fixtures", filename="trimap.png", repo_type="dataset" ... ) >>> trimap = Image.open(filepath).convert("L") >>> # prepare image + trimap for the model >>> inputs = processor(images=image, trimaps=trimap, return_tensors="pt") >>> with torch.no_grad(): ... alphas = model(**inputs).alphas >>> print(alphas.shape) torch.Size([1, 1, 640, 960])
te.ImageMattingOutput或
tuple(torch.FloatTensor)`
一个transformers.models.vitmatte.modeling_vitmatte.ImageMattingOutput
或一个torch.FloatTensor
元组(如果传递return_dict=False
或config.return_dict=False
时)包含根据配置(VitMatteConfig)和输入而异的各种元素。
loss
(形状为(1,)
的torch.FloatTensor
,可选,当提供labels
时返回) — 损失。alphas
(形状为(batch_size, num_channels, height, width)
的torch.FloatTensor
) — 估计的 alpha 值。hidden_states
(tuple(torch.FloatTensor)
,可选,当传递output_hidden_states=True
或config.output_hidden_states=True
时返回) — 形状为(batch_size, sequence_length, hidden_size)
的torch.FloatTensor
元组。模型在每个阶段输出的隐藏状态(也称为特征图)。attentions
(tuple(torch.FloatTensor)
,可选,当传递output_attentions=True
或config.output_attentions=True
时返回) — 形状为(batch_size, num_heads, patch_size, sequence_length)
的torch.FloatTensor
元组。
注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。
VitMatteForImageMatting 的前向方法,覆盖了__call__
特殊方法。
尽管前向传递的配方需要在此函数内定义,但应该在此之后调用Module
实例,而不是这个,因为前者负责运行预处理和后处理步骤,而后者则默默地忽略它们。
示例:
>>> from transformers import VitMatteImageProcessor, VitMatteForImageMatting >>> import torch >>> from PIL import Image >>> from huggingface_hub import hf_hub_download >>> processor = VitMatteImageProcessor.from_pretrained("hustvl/vitmatte-small-composition-1k") >>> model = VitMatteForImageMatting.from_pretrained("hustvl/vitmatte-small-composition-1k") >>> filepath = hf_hub_download( ... repo_id="hf-internal-testing/image-matting-fixtures", filename="image.png", repo_type="dataset" ... ) >>> image = Image.open(filepath).convert("RGB") >>> filepath = hf_hub_download( ... repo_id="hf-internal-testing/image-matting-fixtures", filename="trimap.png", repo_type="dataset" ... ) >>> trimap = Image.open(filepath).convert("L") >>> # prepare image + trimap for the model >>> inputs = processor(images=image, trimaps=trimap, return_tensors="pt") >>> with torch.no_grad(): ... alphas = model(**inputs).alphas >>> print(alphas.shape) torch.Size([1, 1, 640, 960])