Transformers 4.37 中文文档(七十一)(3)https://developer.aliyun.com/article/1564223
SwinForMaskedImageModeling
class transformers.SwinForMaskedImageModeling
( config )
参数
config
(SwinConfig) — 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只加载配置。查看 from_pretrained()方法以加载模型权重。
Swin 模型在顶部带有解码器,用于对图像进行掩码建模,如SimMIM中提出的。
请注意,我们在我们的示例目录中提供了一个脚本,用于在自定义数据上预训练此模型。
这个模型是一个 PyTorch torch.nn.Module子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取与一般用法和行为相关的所有内容。
forward
( pixel_values: Optional = None bool_masked_pos: Optional = None head_mask: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.models.swin.modeling_swin.SwinMaskedImageModelingOutput or tuple(torch.FloatTensor)
参数
pixel_values
(torch.FloatTensor
,形状为(batch_size, num_channels, height, width)
) — 像素值。可以使用 AutoImageProcessor 获取像素值。有关详细信息,请参阅 ViTImageProcessor.call
()。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 而不是一个普通的元组。bool_masked_pos
(torch.BoolTensor
,形状为(batch_size, num_patches)
) — 布尔掩码位置。指示哪些补丁被掩盖(1),哪些没有(0)。
返回
transformers.models.swin.modeling_swin.SwinMaskedImageModelingOutput
或tuple(torch.FloatTensor)
一个transformers.models.swin.modeling_swin.SwinMaskedImageModelingOutput
或一个torch.FloatTensor
元组(如果传递return_dict=False
或config.return_dict=False
)包括根据配置(SwinConfig)和输入的各种元素。
loss
(torch.FloatTensor
,形状为(1,)
,可选,当提供bool_masked_pos
时返回) — 掩码图像建模(MLM)损失。reconstruction
(torch.FloatTensor
,形状为(batch_size, num_channels, height, width)
) — 重建的像素值。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, sequence_length, sequence_length)
的torch.FloatTensor
元组(每个阶段一个)。
在注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。reshaped_hidden_states
(tuple(torch.FloatTensor)
,可选,当传递output_hidden_states=True
或config.output_hidden_states=True
时返回) — 形状为(batch_size, hidden_size, height, width)
的torch.FloatTensor
元组(一个用于嵌入的输出 + 一个用于每个阶段的输出)。
模型在每一层输出的隐藏状态加上初始嵌入输出,重塑以包括空间维度。
SwinForMaskedImageModeling 的前向方法,覆盖了__call__
特殊方法。
虽然前向传递的配方需要在此函数内定义,但应该在此之后调用Module
实例,而不是这个,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。
示例:
>>> from transformers import AutoImageProcessor, SwinForMaskedImageModeling >>> import torch >>> 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("microsoft/swin-base-simmim-window6-192") >>> model = SwinForMaskedImageModeling.from_pretrained("microsoft/swin-base-simmim-window6-192") >>> num_patches = (model.config.image_size // model.config.patch_size) ** 2 >>> pixel_values = image_processor(images=image, return_tensors="pt").pixel_values >>> # create random boolean mask of shape (batch_size, num_patches) >>> bool_masked_pos = torch.randint(low=0, high=2, size=(1, num_patches)).bool() >>> outputs = model(pixel_values, bool_masked_pos=bool_masked_pos) >>> loss, reconstructed_pixel_values = outputs.loss, outputs.reconstruction >>> list(reconstructed_pixel_values.shape) [1, 3, 192, 192]
SwinForImageClassification
class transformers.SwinForImageClassification
( config )
参数
config
(SwinConfig) — 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,只加载配置。查看 from_pretrained()方法以加载模型权重。
Swin 模型变压器,顶部带有图像分类头(在[CLS]标记的最终隐藏状态上的线性层),例如用于 ImageNet。
这个模型是 PyTorch 的torch.nn.Module子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取有关一般用法和行为的所有相关信息。
forward
( pixel_values: Optional = None head_mask: Optional = None labels: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.models.swin.modeling_swin.SwinImageClassifierOutput or tuple(torch.FloatTensor)
参数
pixel_values
(torch.FloatTensor
,形状为(batch_size, num_channels, height, width)
) — 像素值。像素值可以使用 AutoImageProcessor 获取。有关详细信息,请参阅 ViTImageProcessor.call
()。head_mask
(torch.FloatTensor
,形状为(num_heads,)
或(num_layers, num_heads)
,optional) — 用于使自注意力模块中选择的头部失效的掩码。掩码值选在[0, 1]
范围内:
- 1 表示头部未被
masked
。 - 0 表示头部被
masked
。
output_attentions
(bool
, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions
。output_hidden_states
(bool
, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states
。return_dict
(bool
, optional) — 是否返回一个 ModelOutput 而不是一个普通元组。labels
(torch.LongTensor
,形状为(batch_size,)
,optional) — 用于计算图像分类/回归损失的标签。索引应在[0, ..., config.num_labels - 1]
范围内。如果config.num_labels == 1
,则计算回归损失(均方损失),如果config.num_labels > 1
,则计算分类损失(交叉熵)。
返回
transformers.models.swin.modeling_swin.SwinImageClassifierOutput
或tuple(torch.FloatTensor)
一个transformers.models.swin.modeling_swin.SwinImageClassifierOutput
或一个torch.FloatTensor
元组(如果传递return_dict=False
或config.return_dict=False
时)包含各种元素,这取决于配置(SwinConfig)和输入。
loss
(torch.FloatTensor
,形状为(1,)
,optional, 当提供labels
时返回) — 分类(如果config.num_labels==1
则为回归)损失。logits
(torch.FloatTensor
,形状为(batch_size, config.num_labels)
) — 分类(如果config.num_labels==1
则为回归)得分(SoftMax 之前)。hidden_states
(tuple(torch.FloatTensor)
, optional, 当传递output_hidden_states=True
或config.output_hidden_states=True
时返回) — 形状为(batch_size, sequence_length, hidden_size)
的torch.FloatTensor
元组。
模型在每一层输出的隐藏状态以及初始嵌入输出。attentions
(tuple(torch.FloatTensor)
, optional, 当传递output_attentions=True
或config.output_attentions=True
时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)
的torch.FloatTensor
元组(每个阶段一个)。
在注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。reshaped_hidden_states
(tuple(torch.FloatTensor)
, optional, 当传递output_hidden_states=True
或config.output_hidden_states=True
时返回) — 形状为(batch_size, hidden_size, height, width)
的torch.FloatTensor
元组。
模型在每一层输出的隐藏状态以及初始嵌入输出,重塑以包括空间维度。
SwinForImageClassification 的前向方法,覆盖__call__
特殊方法。
虽然前向传递的方法需要在此函数内定义,但应该在此之后调用Module
实例,而不是在此处调用,因为前者会负责运行预处理和后处理步骤,而后者会默默地忽略它们。
示例:
>>> from transformers import AutoImageProcessor, SwinForImageClassification >>> import torch >>> from datasets import load_dataset >>> dataset = load_dataset("huggingface/cats-image") >>> image = dataset["test"]["image"][0] >>> image_processor = AutoImageProcessor.from_pretrained("microsoft/swin-tiny-patch4-window7-224") >>> model = SwinForImageClassification.from_pretrained("microsoft/swin-tiny-patch4-window7-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]) tabby, tabby cat
TensorFlow 隐藏 TensorFlow 内容
TFSwinModel
class transformers.TFSwinModel
( config: SwinConfig add_pooling_layer: bool = True use_mask_token: bool = False **kwargs )
参数
config
(SwinConfig) — 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只加载配置。查看 from_pretrained()方法以加载模型权重。
裸 Swin 模型变压器输出原始隐藏状态,没有特定的头部。此模型是 Tensorflow tf.keras.layers.Layer子类。将其用作常规 Tensorflow 模块,并参考 Tensorflow 文档以获取有关一般用法和行为的所有相关信息。
call
( pixel_values: tf.Tensor | None = None bool_masked_pos: tf.Tensor | None = None head_mask: 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.swin.modeling_tf_swin.TFSwinModelOutput or tuple(tf.Tensor)
参数
pixel_values
(tf.Tensor
,形状为(batch_size, num_channels, height, width)
) — 像素值。可以使用 AutoImageProcessor 获取像素值。有关详细信息,请参阅 ViTImageProcessor.call
()。head_mask
(tf.Tensor
,形状为(num_heads,)
或(num_layers, num_heads)
,optional) — 用于使自注意力模块中的选定头部失效的掩码。掩码值选定在[0, 1]
之间:
- 1 表示头部未被
masked
。 - 0 表示头部被
masked
。
output_attentions
(bool
, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions
。output_hidden_states
(bool
, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states
。return_dict
(bool
, optional) — 是否返回 ModelOutput 而不是普通元组。bool_masked_pos
(tf.Tensor
,形状为(batch_size, num_patches)
,optional) — 布尔掩码位置。指示哪些补丁被掩盖(1)哪些没有(0)。
返回
transformers.models.swin.modeling_tf_swin.TFSwinModelOutput
或tuple(tf.Tensor)
一个transformers.models.swin.modeling_tf_swin.TFSwinModelOutput
或一个tf.Tensor
元组(如果传递return_dict=False
或config.return_dict=False
)包含根据配置(SwinConfig)和输入的不同元素。
last_hidden_state
(tf.Tensor
,形状为(batch_size, sequence_length, hidden_size)
) — 模型最后一层的隐藏状态序列。pooler_output
(tf.Tensor
,形状为(batch_size, hidden_size)
,optional,当传递add_pooling_layer=True
时返回) — 最后一层隐藏状态的平均池化。hidden_states
(tuple(tf.Tensor)
, optional, 当传递output_hidden_states=True
或config.output_hidden_states=True
时返回) — 形状为(batch_size, sequence_length, hidden_size)
的tf.Tensor
元组(一个用于嵌入的输出 + 一个用于每个阶段的输出)。
每层模型的隐藏状态加上初始嵌入输出。attentions
(tuple(tf.Tensor)
, optional, 当传递output_attentions=True
或config.output_attentions=True
时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)
的tf.Tensor
元组(每个阶段一个)。
在注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。reshaped_hidden_states
(tuple(tf.Tensor)
, optional, 当传递output_hidden_states=True
或当config.output_hidden_states=True
时返回) — 形状为(batch_size, hidden_size, height, width)
的tf.Tensor
元组(一个用于嵌入的输出 + 一个用于每个阶段的输出)。
模型在每个层的输出处的隐藏状态加上初始嵌入输出,重塑以包括空间维度。
TFSwinModel 前向方法,覆盖 __call__
特殊方法。
尽管前向传递的配方需要在此函数内定义,但应该在此之后调用 Module
实例,而不是在此之后调用,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。
示例:
>>> from transformers import AutoImageProcessor, TFSwinModel >>> from datasets import load_dataset >>> dataset = load_dataset("huggingface/cats-image") >>> image = dataset["test"]["image"][0] >>> image_processor = AutoImageProcessor.from_pretrained("microsoft/swin-tiny-patch4-window7-224") >>> model = TFSwinModel.from_pretrained("microsoft/swin-tiny-patch4-window7-224") >>> inputs = image_processor(image, return_tensors="tf") >>> outputs = model(**inputs) >>> last_hidden_states = outputs.last_hidden_state >>> list(last_hidden_states.shape) [1, 49, 768]
TFSwinForMaskedImageModeling
class transformers.TFSwinForMaskedImageModeling
( config: SwinConfig )
参数
config
(SwinConfig) — 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只加载配置。查看 from_pretrained() 方法以加载模型权重。
带有解码器的 Swin 模型,用于掩盖图像建模,如 SimMIM 中提出的。此模型是一个 Tensorflow tf.keras.layers.Layer 子类。将其用作常规的 Tensorflow 模块,并参考 Tensorflow 文档以获取与一般用法和行为相关的所有事项。
call
( pixel_values: tf.Tensor | None = None bool_masked_pos: tf.Tensor | None = None head_mask: 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.swin.modeling_tf_swin.TFSwinMaskedImageModelingOutput or tuple(tf.Tensor)
参数
pixel_values
(tf.Tensor
of shape(batch_size, num_channels, height, width)
) — 像素值。可以使用 AutoImageProcessor 获取像素值。有关详细信息,请参阅 ViTImageProcessor.call
()。head_mask
(tf.Tensor
of shape(num_heads,)
or(num_layers, num_heads)
, optional) — 用于使自注意力模块中选择的头部失效的掩码。掩码值在[0, 1]
中选择:
- 1 表示头部未被
掩盖
, - 0 表示头部被
掩盖
。
output_attentions
(bool
, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量中的attentions
。output_hidden_states
(bool
, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量中的hidden_states
。return_dict
(bool
, optional) — 是否返回 ModelOutput 而不是普通元组。bool_masked_pos
(tf.Tensor
of shape(batch_size, num_patches)
) — 布尔掩码位置。指示哪些补丁被掩盖(1)哪些没有(0)。
返回
transformers.models.swin.modeling_tf_swin.TFSwinMaskedImageModelingOutput
或 tuple(tf.Tensor)
一个 transformers.models.swin.modeling_tf_swin.TFSwinMaskedImageModelingOutput
或一个 tf.Tensor
元组(如果传递 return_dict=False
或当 config.return_dict=False
时)包含根据配置(SwinConfig)和输入的不同元素。
loss
(tf.Tensor
of shape(1,)
, optional, 当提供bool_masked_pos
时返回) — 掩盖图像建模(MLM)损失。reconstruction
(tf.Tensor
,形状为(batch_size, num_channels, height, width)
) — 重构的像素值。hidden_states
(tuple(tf.Tensor)
, optional, 当传递output_hidden_states=True
或config.output_hidden_states=True
时返回) — 形状为(batch_size, sequence_length, hidden_size)
的tf.Tensor
元组。
模型在每一层输出的隐藏状态以及初始嵌入输出的隐藏状态。attentions
(tuple(tf.Tensor)
, optional, 当传递output_attentions=True
或config.output_attentions=True
时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)
的tf.Tensor
元组。
在注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。reshaped_hidden_states
(tuple(tf.Tensor)
, optional, 当传递output_hidden_states=True
或config.output_hidden_states=True
时返回) — 形状为(batch_size, hidden_size, height, width)
的tf.Tensor
元组。
模型在每一层输出的隐藏状态以及初始嵌入输出的隐藏状态,重塑以包括空间维度。
TFSwinForMaskedImageModeling 的前向方法,覆盖了__call__
特殊方法。
尽管前向传递的方法需要在此函数内定义,但应该在此之后调用Module
实例,而不是这个,因为前者会处理运行前后处理步骤,而后者会默默地忽略它们。
示例:
>>> from transformers import AutoImageProcessor, TFSwinForMaskedImageModeling >>> import tensorflow as tf >>> 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("microsoft/swin-tiny-patch4-window7-224") >>> model = TFSwinForMaskedImageModeling.from_pretrained("microsoft/swin-tiny-patch4-window7-224") >>> num_patches = (model.config.image_size // model.config.patch_size) ** 2 >>> pixel_values = image_processor(images=image, return_tensors="tf").pixel_values >>> # create random boolean mask of shape (batch_size, num_patches) >>> bool_masked_pos = tf.random.uniform((1, num_patches)) >= 0.5 >>> outputs = model(pixel_values, bool_masked_pos=bool_masked_pos) >>> loss, reconstructed_pixel_values = outputs.loss, outputs.reconstruction >>> list(reconstructed_pixel_values.shape) [1, 3, 224, 224]
TFSwinForImageClassification
class transformers.TFSwinForImageClassification
( config: SwinConfig )
参数
config
(SwinConfig) — 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,只加载配置。查看 from_pretrained()方法以加载模型权重。
在顶部具有图像分类头部的 Swin 模型变换器(在[CLS]标记的最终隐藏状态之上的线性层),例如用于 ImageNet。
这个模型是一个 Tensorflow tf.keras.layers.Layer子类。将其用作常规的 Tensorflow 模块,并参考 Tensorflow 文档以获取有关一般用法和行为的所有相关信息。
call
( pixel_values: tf.Tensor | None = None head_mask: tf.Tensor | None = None labels: 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.swin.modeling_tf_swin.TFSwinImageClassifierOutput or tuple(tf.Tensor)
参数
pixel_values
(tf.Tensor
,形状为(batch_size, num_channels, height, width)
) — 像素值。像素值可以使用 AutoImageProcessor 获取。有关详细信息,请参阅 ViTImageProcessor.call
()。head_mask
(tf.Tensor
,形状为(num_heads,)
或(num_layers, num_heads)
,optional) — 用于使自注意力模块中的选定头部失效的掩码。掩码值选定在[0, 1]
之间:
- 1 表示头部未被
masked
, - 0 表示头部被
masked
。
output_attentions
(bool
,optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions
。output_hidden_states
(bool
, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states
。return_dict
(bool
,可选) — 是否返回一个 ModelOutput 而不是一个普通的元组。labels
(tf.Tensor
,形状为(batch_size,)
,可选) — 用于计算图像分类/回归损失的标签。索引应在[0, ..., config.num_labels - 1]
范围内。如果config.num_labels == 1
,则计算回归损失(均方损失),如果config.num_labels > 1
,则计算分类损失(交叉熵)。
返回
transformers.models.swin.modeling_tf_swin.TFSwinImageClassifierOutput
或 tuple(tf.Tensor)
一个 transformers.models.swin.modeling_tf_swin.TFSwinImageClassifierOutput
或一个 tf.Tensor
元组(如果传递了 return_dict=False
或当 config.return_dict=False
时)包含根据配置(SwinConfig)和输入的不同元素。
loss
(tf.Tensor
,形状为(1,)
,可选,在提供labels
时返回) — 分类(如果config.num_labels==1
则为回归)损失。logits
(tf.Tensor
,形状为(batch_size, config.num_labels)
) — 分类(如果config.num_labels==1
则为回归)得分(SoftMax 之前)。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 后的注意力权重,用于计算自注意力头中的加权平均值。reshaped_hidden_states
(tuple(tf.Tensor)
,可选,当传递output_hidden_states=True
或当config.output_hidden_states=True
时返回) — 形状为(batch_size, hidden_size, height, width)
的tf.Tensor
元组(一个用于嵌入的输出 + 一个用于每个阶段的输出)。
模型在每一层输出的隐藏状态以及包含空间维度的初始嵌入输出的重塑。
TFSwinForImageClassification 的前向方法,覆盖了 __call__
特殊方法。
虽然前向传递的步骤需要在这个函数内定义,但应该在此之后调用 Module
实例,而不是在此处调用,因为前者会负责运行预处理和后处理步骤,而后者会默默地忽略它们。
示例:
>>> from transformers import AutoImageProcessor, TFSwinForImageClassification >>> import tensorflow as tf >>> from datasets import load_dataset >>> dataset = load_dataset("huggingface/cats-image") >>> image = dataset["test"]["image"][0] >>> image_processor = AutoImageProcessor.from_pretrained("microsoft/swin-tiny-patch4-window7-224") >>> model = TFSwinForImageClassification.from_pretrained("microsoft/swin-tiny-patch4-window7-224") >>> inputs = image_processor(image, return_tensors="tf") >>> logits = model(**inputs).logits >>> # model predicts one of the 1000 ImageNet classes >>> predicted_label = int(tf.math.argmax(logits, axis=-1)) >>> print(model.config.id2label[predicted_label]) tabby, tabby cat
Transformers 4.37 中文文档(七十一)(5)https://developer.aliyun.com/article/1564228