Transformers 4.37 中文文档(六十六)(1)https://developer.aliyun.com/article/1564106
DeiTFeatureExtractor
class transformers.DeiTFeatureExtractor
( *args **kwargs )
__call__
( images **kwargs )
预处理图像或一批图像。
DeiTImageProcessor
class transformers.DeiTImageProcessor
( do_resize: bool = True size: Dict = None resample: Resampling = 3 do_center_crop: bool = True crop_size: Dict = None rescale_factor: Union = 0.00392156862745098 do_rescale: bool = True do_normalize: bool = True image_mean: Union = None image_std: Union = None **kwargs )
参数
do_resize(bool, optional, 默认为True) — 是否将图像的 (height, width) 尺寸调整为指定的size。可以被preprocess中的do_resize覆盖。size(Dict[str, int]optional, 默认为{"height" -- 256, "width": 256}):resize后的图像尺寸。可以被preprocess中的size覆盖。resample(PILImageResampling过滤器, optional, 默认为Resampling.BICUBIC) — 如果调整图像大小,要使用的重采样滤波器。可以被preprocess中的resample覆盖。do_center_crop(bool, optional, 默认为True) — 是否对图像进行中心裁剪。如果输入尺寸在任一边小于crop_size,则图像将用 0 填充,然后进行中心裁剪。可以被preprocess中的do_center_crop覆盖。crop_size(Dict[str, int], optional, 默认为{"height" -- 224, "width": 224}): 应用中心裁剪时的期望输出尺寸。可以被preprocess中的crop_size覆盖。rescale_factor(int或float, optional, 默认为1/255) — 如果重新缩放图像,要使用的缩放因子。可以被preprocess方法中的rescale_factor参数覆盖。do_rescale(bool, optional, 默认为True) — 是否按指定比例rescale_factor重新缩放图像。可以被preprocess方法中的do_rescale参数覆盖。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参数覆盖。
构建一个 DeiT 图像处理器。
preprocess
( images: Union do_resize: bool = None size: Dict = None resample = None do_center_crop: bool = None crop_size: Dict = None do_rescale: bool = None rescale_factor: float = None do_normalize: bool = None image_mean: Union = None image_std: Union = None return_tensors: Union = None data_format: ChannelDimension = <ChannelDimension.FIRST: 'channels_first'> input_data_format: Union = None **kwargs )
参数
images(ImageInput) — 要预处理的图像。期望单个图像或图像批次,像素值范围为 0 到 255。如果传入像素值在 0 到 1 之间的图像,请设置do_rescale=False。do_resize(bool, optional, 默认为self.do_resize) — 是否调整图像大小。size(Dict[str, int], optional, 默认为self.size) —resize后的图像大小。resample(PILImageResampling, optional, 默认为self.resample) — 如果调整图像大小,则使用的 PILImageResampling 过滤器。仅在do_resize设置为True时有效。do_center_crop(bool, optional, 默认为self.do_center_crop) — 是否对图像进行中心裁剪。crop_size(Dict[str, int], optional, 默认为self.crop_size) — 居中裁剪后的图像大小。如果图像的一条边小于crop_size,则将用零填充,然后裁剪。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) — 图像均值。image_std(float或List[float], optional, 默认为self.image_std) — 图像标准差。return_tensors(str或TensorType, optional) — 要返回的张量类型。可以是以下之一:
None: 返回一个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, optional, 默认为ChannelDimension.FIRST) — 输出图像的通道维度格式。可以是以下之一:
ChannelDimension.FIRST: 图像以 (num_channels, height, width) 格式。ChannelDimension.LAST: 图像以 (height, width, num_channels) 格式。
input_data_format(ChannelDimension或str, optional) — 输入图像的通道维度格式。如果未设置,则从输入图像中推断通道维度格式。可以是以下之一:
"channels_first"或ChannelDimension.FIRST: 图像以 (num_channels, height, width) 格式。"channels_last"或ChannelDimension.LAST: 图像以 (height, width, num_channels) 格式。"none"或ChannelDimension.NONE: 图像以 (height, width) 格式。
预处理图像或图像批次。
PytorchHide Pytorch content
DeiTModel
class transformers.DeiTModel
( config: DeiTConfig add_pooling_layer: bool = True use_mask_token: bool = False )
参数
config(DeiTConfig) — 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只加载配置。查看 from_pretrained() 方法以加载模型权重。
裸 DeiT 模型变换器输出原始隐藏状态,没有特定的顶部头。此模型是 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.modeling_outputs.BaseModelOutputWithPooling or tuple(torch.FloatTensor)
参数
pixel_values(torch.FloatTensorof shape(batch_size, num_channels, height, width)) — 像素值。可以使用 AutoImageProcessor 获取像素值。有关详细信息,请参阅 DeiTImageProcessor.call()。head_mask(torch.FloatTensorof 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(torch.BoolTensorof shape(batch_size, num_patches), optional) — 布尔掩码位置。指示哪些补丁被遮蔽(1)哪些没有(0)。
返回
transformers.modeling_outputs.BaseModelOutputWithPooling 或 tuple(torch.FloatTensor)
一个 transformers.modeling_outputs.BaseModelOutputWithPooling 或一个 torch.FloatTensor 元组(如果传递了 return_dict=False 或当 config.return_dict=False 时)包含根据配置(DeiTConfig)和输入不同元素。
last_hidden_state(torch.FloatTensorof shape(batch_size, sequence_length, hidden_size)) — 模型最后一层的隐藏状态序列。pooler_output(torch.FloatTensorof shape(batch_size, hidden_size)) — 序列第一个标记(分类标记)的最后一层隐藏状态,在通过用于辅助预训练任务的层进一步处理后。例如,对于 BERT 系列模型,这将返回经过线性层和双曲正切激活函数处理后的分类标记。线性层权重是从预训练期间的下一个句子预测(分类)目标中训练的。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 后的注意力权重,用于计算自注意力头中的加权平均值。
DeiTModel 的前向方法,覆盖了 __call__ 特殊方法。
虽然前向传递的步骤需要在此函数内定义,但应该在此之后调用 Module 实例,而不是在此处调用,因为前者会处理运行前处理和后处理步骤,而后者会默默地忽略它们。
示例:
>>> from transformers import AutoImageProcessor, DeiTModel >>> import torch >>> from datasets import load_dataset >>> dataset = load_dataset("huggingface/cats-image") >>> image = dataset["test"]["image"][0] >>> image_processor = AutoImageProcessor.from_pretrained("facebook/deit-base-distilled-patch16-224") >>> model = DeiTModel.from_pretrained("facebook/deit-base-distilled-patch16-224") >>> inputs = image_processor(image, return_tensors="pt") >>> with torch.no_grad(): ... outputs = model(**inputs) >>> last_hidden_states = outputs.last_hidden_state >>> list(last_hidden_states.shape) [1, 198, 768]
DeiTForMaskedImageModeling
class transformers.DeiTForMaskedImageModeling
( config: DeiTConfig )
参数
config(DeiTConfig) — 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,只加载配置。查看 from_pretrained()方法以加载模型权重。
带有顶部解码器的 DeiT 模型,用于遮罩图像建模,如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.modeling_outputs.MaskedImageModelingOutput or tuple(torch.FloatTensor)
参数
pixel_values(torch.FloatTensor,形状为(batch_size, num_channels, height, width)) — 像素值。像素值可以使用 AutoImageProcessor 获取。有关详细信息,请参阅 DeiTImageProcessor.call()。head_mask(torch.FloatTensor,形状为(num_heads,)或(num_layers, num_heads),optional) — 用于使自注意力模块中选择的头部失效的掩码。在[0, 1]中选择的掩码值:
- 1 表示头部是
not masked, - 0 表示头部是
masked。
output_attentions(bool, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions。output_hidden_states(bool, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states。return_dict(bool, optional) — 是否返回一个 ModelOutput 而不是一个普通的元组。bool_masked_pos(torch.BoolTensor,形状为(batch_size, num_patches)) — 布尔掩码位置。指示哪些补丁被掩盖(1)哪些没有(0)。
返回
transformers.modeling_outputs.MaskedImageModelingOutput或tuple(torch.FloatTensor)
一个transformers.modeling_outputs.MaskedImageModelingOutput或一个torch.FloatTensor元组(如果传递return_dict=False或config.return_dict=False时)包含各种元素,具体取决于配置(DeiTConfig)和输入。
loss(torch.FloatTensor,形状为(1,),optional,当提供bool_masked_pos时返回) — 重建损失。reconstruction(torch.FloatTensor,形状为(batch_size, num_channels, height, width)) — 重建/完成的图像。hidden_states(tuple(torch.FloatTensor), optional, 当传递output_hidden_states=True时返回whenconfig.output_hidden_states=True) — 形状为(batch_size, sequence_length, hidden_size)的torch.FloatTensor元组(如果模型有嵌入层,则为嵌入的输出+每个阶段的输出)。模型在每个阶段输出的隐藏状态(也称为特征图)。attentions(tuple(torch.FloatTensor),optional,当传递output_attentions=True或config.output_attentions=True时返回config.output_attentions=True):形状为(batch_size, num_heads, patch_size, sequence_length)的torch.FloatTensor元组(每层一个)。自注意力头中的注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。
DeiTForMaskedImageModeling 的前向方法,覆盖了__call__特殊方法。
虽然前向传递的步骤需要在此函数内定义,但应该在此之后调用Module实例,而不是在此处调用,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。
示例:
>>> from transformers import AutoImageProcessor, DeiTForMaskedImageModeling >>> 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("facebook/deit-base-distilled-patch16-224") >>> model = DeiTForMaskedImageModeling.from_pretrained("facebook/deit-base-distilled-patch16-224") >>> 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, 224, 224]
DeiTForImageClassification
class transformers.DeiTForImageClassification
( config: DeiTConfig )
参数
config(DeiTConfig)- 模型的所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只会加载配置。查看 from_pretrained()方法以加载模型权重。
带有图像分类头部的 DeiT 模型变换器(在[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.modeling_outputs.ImageClassifierOutput or tuple(torch.FloatTensor)
参数
pixel_values(形状为(batch_size, num_channels, height, width)的torch.FloatTensor)- 像素值。可以使用 AutoImageProcessor 获取像素值。有关详细信息,请参阅 DeiTImageProcessor.call()。head_mask(形状为(num_heads,)或(num_layers, num_heads)的torch.FloatTensor,可选)- 用于使自注意力模块中选择的头部失效的掩码。掩码值选择在[0, 1]范围内:
- 1 表示头部未被
masked, - 0 表示头部是
masked。
output_attentions(bool,可选)- 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions。output_hidden_states(bool,可选)- 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states。return_dict(bool,可选)- 是否返回 ModelOutput 而不是普通元组。labels(形状为(batch_size,)的torch.LongTensor,可选)- 用于计算图像分类/回归损失的标签。索引应在[0, ..., config.num_labels - 1]范围内。如果config.num_labels == 1,则计算回归损失(均方损失),如果config.num_labels > 1,则计算分类损失(交叉熵)。
返回
transformers.modeling_outputs.ImageClassifierOutput 或tuple(torch.FloatTensor)
一个 transformers.modeling_outputs.ImageClassifierOutput 或一个torch.FloatTensor元组(如果传递了return_dict=False或config.return_dict=False时)包含根据配置(DeiTConfig)和输入不同元素。
loss(形状为(1,)的torch.FloatTensor,可选,当提供labels时返回)— 分类(如果config.num_labels==1则为回归)损失。logits(形状为(batch_size, config.num_labels)的torch.FloatTensor)— 分类(如果config.num_labels==1则为回归)分数(SoftMax 之前)。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 之后。
DeiTForImageClassification 的前向方法,覆盖__call__特殊方法。
虽然前向传递的步骤需要在此函数内定义,但应该在此之后调用Module实例,而不是在此处调用,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。
示例:
>>> from transformers import AutoImageProcessor, DeiTForImageClassification >>> import torch >>> from PIL import Image >>> import requests >>> torch.manual_seed(3) >>> url = "http://images.cocodataset.org/val2017/000000039769.jpg" >>> image = Image.open(requests.get(url, stream=True).raw) >>> # note: we are loading a DeiTForImageClassificationWithTeacher from the hub here, >>> # so the head will be randomly initialized, hence the predictions will be random >>> image_processor = AutoImageProcessor.from_pretrained("facebook/deit-base-distilled-patch16-224") >>> model = DeiTForImageClassification.from_pretrained("facebook/deit-base-distilled-patch16-224") >>> inputs = image_processor(images=image, return_tensors="pt") >>> outputs = model(**inputs) >>> logits = outputs.logits >>> # model predicts one of the 1000 ImageNet classes >>> predicted_class_idx = logits.argmax(-1).item() >>> print("Predicted class:", model.config.id2label[predicted_class_idx]) Predicted class: magpie
DeiTForImageClassificationWithTeacher
class transformers.DeiTForImageClassificationWithTeacher
( config: DeiTConfig )
参数
config(DeiTConfig)— 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只加载配置。查看 from_pretrained()方法以加载模型权重。
DeiT 模型变压器,顶部带有图像分类头(在[CLS]令牌的最终隐藏状态顶部有一个线性层,在蒸馏令牌的最终隐藏状态顶部有一个线性层),例如用于 ImageNet。
… 警告::
这个模型仅支持推理。尚不支持使用蒸馏(即使用教师)进行微调。
这个模型是 PyTorch torch.nn.Module子类。将其用作常规 PyTorch 模块,并参考 PyTorch 文档以获取与一般用法和行为相关的所有事项。
forward
( pixel_values: 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.deit.modeling_deit.DeiTForImageClassificationWithTeacherOutput or tuple(torch.FloatTensor)
参数
pixel_values(形状为(batch_size, num_channels, height, width)的torch.FloatTensor)— 像素值。像素值可以使用 AutoImageProcessor 获取。有关详细信息,请参阅 DeiTImageProcessor.call()。head_mask(形状为(num_heads,)或(num_layers, num_heads)的torch.FloatTensor,可选)— 用于使自注意力模块中选择的头部失效的掩码。掩码值在[0, 1]中选择:
- 1 表示头部未被遮蔽,
- 0 表示头部是
masked。
output_attentions(bool,可选)- 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions。output_hidden_states(bool,可选)- 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states。return_dict(bool,可选)- 是否返回 ModelOutput 而不是普通元组。
返回
transformers.models.deit.modeling_deit.DeiTForImageClassificationWithTeacherOutput或tuple(torch.FloatTensor)
一个transformers.models.deit.modeling_deit.DeiTForImageClassificationWithTeacherOutput或一个torch.FloatTensor元组(如果传递return_dict=False或config.return_dict=False)包含各种元素,取决于配置(DeiTConfig)和输入。
logits(形状为(batch_size, config.num_labels)的torch.FloatTensor)- 预测分数,作为cls_logits和蒸馏logits的平均值。cls_logits(形状为(batch_size, config.num_labels)的torch.FloatTensor)- 分类头部的预测分数(即类令牌最终隐藏状态顶部的线性层)。distillation_logits(形状为(batch_size, config.num_labels)的torch.FloatTensor)- 蒸馏头部的预测分数(即蒸馏令牌最终隐藏状态顶部的线性层)。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 后的注意力权重,用于计算自注意力头中的加权平均值。
DeiTForImageClassificationWithTeacher 的前向方法,覆盖__call__特殊方法。
虽然前向传递的方法需要在此函数内定义,但应该在此之后调用Module实例,而不是在此处调用,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。
示例:
>>> from transformers import AutoImageProcessor, DeiTForImageClassificationWithTeacher >>> import torch >>> from datasets import load_dataset >>> dataset = load_dataset("huggingface/cats-image") >>> image = dataset["test"]["image"][0] >>> image_processor = AutoImageProcessor.from_pretrained("facebook/deit-base-distilled-patch16-224") >>> model = DeiTForImageClassificationWithTeacher.from_pretrained("facebook/deit-base-distilled-patch16-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 内容
TFDeiTModel
class transformers.TFDeiTModel
( config: DeiTConfig add_pooling_layer: bool = True use_mask_token: bool = False **kwargs )
参数
config(DeiTConfig)- 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,只加载配置。查看 from_pretrained()方法以加载模型权重。
裸 DeiT 模型变压器输出原始隐藏状态,没有特定头部。此模型是一个 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.modeling_tf_outputs.TFBaseModelOutputWithPooling or tuple(tf.Tensor)
参数
pixel_values(形状为(batch_size, num_channels, height, width)的tf.Tensor)— 像素值。像素值可以使用 AutoImageProcessor 获取。有关详细信息,请参见 DeiTImageProcessor.call()。head_mask(形状为(num_heads,)或(num_layers, num_heads)的tf.Tensor,可选)— 用于使自注意力模块的选定头部失效的掩码。掩码值选定在[0, 1]中:
- 1 表示头部
未被掩盖, - 0 表示头部
被掩盖。
output_attentions(bool,可选)— 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量下的attentions。output_hidden_states(bool,可选)— 是否返回所有层的隐藏状态。有关更多详细信息,请参见返回张量下的hidden_states。return_dict(bool,可选)— 是否返回 ModelOutput 而不是普通元组。
返回
transformers.modeling_tf_outputs.TFBaseModelOutputWithPooling 或tuple(tf.Tensor)
transformers.modeling_tf_outputs.TFBaseModelOutputWithPooling 或一个tf.Tensor元组(如果传递return_dict=False或config.return_dict=False)包含根据配置(DeiTConfig)和输入的各种元素。
last_hidden_state(形状为(batch_size, sequence_length, hidden_size)的tf.Tensor)— 模型最后一层的隐藏状态序列。pooler_output(形状为(batch_size, hidden_size)的tf.Tensor)— 序列第一个标记(分类标记)的最后一层隐藏状态,经过线性层和 Tanh 激活函数进一步处理。线性层的权重是在预训练期间从下一个句子预测(分类)目标中训练的。
这个输出通常不是输入的语义内容的好摘要,通常最好对整个输入序列的隐藏状态进行平均或池化。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 后的注意力权重,用于计算自注意力头中的加权平均值。
TFDeiTModel 的前向方法,覆盖了__call__特殊方法。
虽然前向传递的步骤需要在此函数内定义,但应该在此之后调用Module实例,而不是这个,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。
示例:
>>> from transformers import AutoImageProcessor, TFDeiTModel >>> from datasets import load_dataset >>> dataset = load_dataset("huggingface/cats-image") >>> image = dataset["test"]["image"][0] >>> image_processor = AutoImageProcessor.from_pretrained("facebook/deit-base-distilled-patch16-224") >>> model = TFDeiTModel.from_pretrained("facebook/deit-base-distilled-patch16-224") >>> inputs = image_processor(image, return_tensors="tf") >>> outputs = model(**inputs) >>> last_hidden_states = outputs.last_hidden_state >>> list(last_hidden_states.shape) [1, 198, 768]
TFDeiTForMaskedImageModeling
class transformers.TFDeiTForMaskedImageModeling
( config: DeiTConfig )
参数
config(DeiTConfig) — 包含模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只会加载配置。查看 from_pretrained() 方法以加载模型权重。
DeiT 模型在顶部带有解码器,用于遮蔽图像建模,如 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.modeling_tf_outputs.TFMaskedImageModelingOutput or tuple(tf.Tensor)
参数
pixel_values(tf.Tensorof shape(batch_size, num_channels, height, width)) — 像素值。可以使用 AutoImageProcessor 获取像素值。有关详细信息,请参阅 DeiTImageProcessor.call()。head_mask(tf.Tensorof shape(num_heads,)or(num_layers, num_heads), optional) — 用于使自注意力模块中选择的头部失效的掩码。掩码值在[0, 1]中选择:
- 1 表示头部是
not masked, - 0 表示头部是
masked。
output_attentions(bool, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions。output_hidden_states(bool, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states。return_dict(bool, optional) — 是否返回 ModelOutput 而不是普通元组。bool_masked_pos(tf.Tensorof type bool and shape(batch_size, num_patches)) — 布尔掩码位置。指示哪些补丁被遮蔽(1)哪些没有(0)。
返回
transformers.modeling_tf_outputs.TFMaskedImageModelingOutput 或 tuple(tf.Tensor)
一个 transformers.modeling_tf_outputs.TFMaskedImageModelingOutput 或一个 tf.Tensor 元组(如果传递了 return_dict=False 或当 config.return_dict=False 时)包含根据配置(DeiTConfig)和输入的各种元素。
loss(tf.Tensorof shape(1,), optional, returned whenbool_masked_posis provided) — Reconstruction loss.reconstruction(tf.Tensorof shape(batch_size, num_channels, height, width)) — 重建/完成的图像。hidden_states(tuple(tf.Tensor), optional, returned whenoutput_hidden_states=Trueis passed or whenconfig.output_hidden_states=True):tf.Tensor元组(如果模型具有嵌入层,则一个用于嵌入的输出 + 一个用于每个阶段的输出)的形状为(batch_size, sequence_length, hidden_size)。模型在每个阶段输出的隐藏状态(也称为特征图)。attentions(tuple(tf.Tensor), optional, 当传递output_attentions=True或config.output_attentions=True):tf.Tensor元组(每个层一个)的形状为(batch_size, num_heads, patch_size, sequence_length)。注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。
TFDeiTForMaskedImageModeling 的前向方法,覆盖了 __call__ 特殊方法。
虽然前向传递的步骤需要在此函数内定义,但应该在此之后调用 Module 实例,而不是在此处调用,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。
示例:
>>> from transformers import AutoImageProcessor, TFDeiTForMaskedImageModeling >>> 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("facebook/deit-base-distilled-patch16-224") >>> model = TFDeiTForMaskedImageModeling.from_pretrained("facebook/deit-base-distilled-patch16-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.cast(tf.random.uniform((1, num_patches), minval=0, maxval=2, dtype=tf.int32), tf.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, 224, 224]
Transformers 4.37 中文文档(六十六)(3)