Transformers 4.37 中文文档(八十二)(2)https://developer.aliyun.com/article/1563225
AltCLIPTextModel
class transformers.AltCLIPTextModel
( config )
forward
( input_ids: Optional = None attention_mask: Optional = None token_type_ids: Optional = None position_ids: Optional = None head_mask: Optional = None inputs_embeds: Optional = None encoder_hidden_states: Optional = None encoder_attention_mask: Optional = None output_attentions: Optional = None return_dict: Optional = None output_hidden_states: Optional = None ) → export const metadata = 'undefined';transformers.modeling_outputs.BaseModelOutputWithPoolingAndProjection or tuple(torch.FloatTensor)
参数
input_ids
(形状为(batch_size,sequence_length)的 torch.LongTensor)— 词汇表中输入序列标记的索引。默认情况下将忽略填充。
可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.call
()。
什么是输入 ID?attention_mask
(形状为(batch_size,sequence_length)的 torch.Tensor,可选)— 避免在填充标记索引上执行注意力的掩码。掩码值选择在[0, 1]
之间:
- 1 表示“未被掩盖”的标记,
- 0 表示“被掩盖”的标记。
- 什么是注意力掩码?
position_ids
(形状为(batch_size,sequence_length)的 torch.LongTensor,可选)— 每个输入序列标记在位置嵌入中的位置索引。选择范围为[0, config.max_position_embeddings - 1]
。
什么是位置 ID?output_attentions
(布尔值,可选)— 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions
。output_hidden_states
(布尔值,可选)— 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states
。return_dict
(布尔值,可选)— 是否返回 ModelOutput 而不是普通元组。
返回
transformers.modeling_outputs.BaseModelOutputWithPoolingAndProjection
或tuple(torch.FloatTensor)
一个transformers.modeling_outputs.BaseModelOutputWithPoolingAndProjection
或一个torch.FloatTensor
元组(如果传递了return_dict=False
或config.return_dict=False
时)包含各种元素,取决于配置()和输入。
last_hidden_state
(形状为(batch_size,sequence_length,hidden_size)的 torch.FloatTensor)— 模型最后一层的隐藏状态序列输出。pooler_output
(torch.FloatTensor
,形状为(batch_size, hidden_size)
) — 经过用于辅助预训练任务的层进一步处理后,序列中第一个标记(分类标记)的最后一层隐藏状态。例如,对于 BERT 系列模型,这将返回经过线性层和 tanh 激活函数处理后的分类标记。线性层的权重是在预训练期间从下一个句子预测(分类)目标中训练的。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 后的注意力权重,用于计算自注意力头中的加权平均值。projection_state
(tuple(torch.FloatTensor)
,当传递output_attentions=True
或当config.output_attentions=True
时返回) — 形状为(batch_size,config.project_dim)
的torch.FloatTensor
元组。
投影层之前的文本嵌入,用于模仿教师编码器的最后隐藏状态。
AltCLIPTextModel 的前向方法,覆盖了__call__
特殊方法。
虽然前向传递的步骤需要在此函数内定义,但应该在此之后调用Module
实例,而不是这个,因为前者会处理运行预处理和后处理步骤,而后者会默默地忽略它们。
示例:
>>> from transformers import AutoProcessor, AltCLIPTextModel >>> model = AltCLIPTextModel.from_pretrained("BAAI/AltCLIP") >>> processor = AutoProcessor.from_pretrained("BAAI/AltCLIP") >>> texts = ["it's a cat", "it's a dog"] >>> inputs = processor(text=texts, padding=True, return_tensors="pt") >>> outputs = model(**inputs) >>> last_hidden_state = outputs.last_hidden_state >>> pooled_output = outputs.pooler_output # pooled CLS states
AltCLIPVisionModel
class transformers.AltCLIPVisionModel
( config: AltCLIPVisionConfig )
forward
( pixel_values: 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.FloatTensor
,形状为(batch_size, num_channels, height, width)
) — 像素值。默认情况下将忽略填充。可以使用 AutoImageProcessor 获取像素值。有关详细信息,请参阅 CLIPImageProcessor.call
()。output_attentions
(bool
,可选) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions
。output_hidden_states
(bool
,可选) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states
。return_dict
(bool
,可选) — 是否返回 ModelOutput 而不是普通元组。
返回
transformers.modeling_outputs.BaseModelOutputWithPooling 或 tuple(torch.FloatTensor)
一个 transformers.modeling_outputs.BaseModelOutputWithPooling 或一个torch.FloatTensor
元组(如果传递return_dict=False
或config.return_dict=False
)包括根据配置()和输入的不同元素。
last_hidden_state
(torch.FloatTensor
of shape(batch_size, sequence_length, hidden_size)
) — 模型最后一层的隐藏状态序列。pooler_output
(torch.FloatTensor
of shape(batch_size, hidden_size)
) — 经过用于辅助预训练任务的层进一步处理后,序列中第一个标记(分类标记)的最后一层隐藏状态。例如,对于 BERT 系列模型,这将返回经过线性层和 tanh 激活函数处理后的分类标记。线性层的权重是从下一个句子预测(分类)目标在预训练期间训练的。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 之后的注意力权重,用于计算自注意力头中的加权平均值。
AltCLIPVisionModel 的前向方法覆盖了__call__
特殊方法。
虽然前向传递的步骤需要在此函数内定义,但应该在此之后调用Module
实例,而不是这个函数,因为前者会负责运行前处理和后处理步骤,而后者会默默地忽略它们。
示例:
>>> from PIL import Image >>> import requests >>> from transformers import AutoProcessor, AltCLIPVisionModel >>> model = AltCLIPVisionModel.from_pretrained("BAAI/AltCLIP") >>> processor = AutoProcessor.from_pretrained("BAAI/AltCLIP") >>> url = "http://images.cocodataset.org/val2017/000000039769.jpg" >>> image = Image.open(requests.get(url, stream=True).raw) >>> inputs = processor(images=image, return_tensors="pt") >>> outputs = model(**inputs) >>> last_hidden_state = outputs.last_hidden_state >>> pooled_output = outputs.pooler_output # pooled CLS states
BLIP
原文链接:
huggingface.co/docs/transformers/v4.37.2/en/model_doc/blip
概述
BLIP 模型是由 Junnan Li、Dongxu Li、Caiming Xiong 和 Steven Hoi 在BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation中提出的。
BLIP 是一个能够执行各种多模态任务的模型,包括:
- 视觉问答
- 图像-文本检索(图像-文本匹配)
- 图像字幕生成
论文摘要如下:
视觉-语言预训练(VLP)已经提高了许多视觉-语言任务的性能。然而,大多数现有的预训练模型只擅长于理解型任务或生成型任务。此外,性能的提升主要是通过扩大数据集规模,使用从网络收集的带有噪声的图像-文本对来实现的,这是一种次优的监督来源。在本文中,我们提出了 BLIP,一种新的 VLP 框架,可以灵活地转移到视觉-语言理解和生成任务。BLIP 通过引导标题来有效利用嘈杂的网络数据,其中一个标题生成器生成合成标题,一个过滤器去除噪声标题。我们在各种视觉-语言任务上取得了最先进的结果,如图像-文本检索(平均召回率@1 提高了 2.7%)、图像字幕生成(CIDEr 提高了 2.8%)和 VQA(VQA 分数提高了 1.6%)。BLIP 还展示了在直接转移到视频-语言任务时的强大泛化能力。代码、模型和数据集已发布。
资源
- Jupyter 笔记本,介绍如何在自定义数据集上对 BLIP 进行图像字幕微调
BlipConfig
class transformers.BlipConfig
( text_config = None vision_config = None projection_dim = 512 logit_scale_init_value = 2.6592 image_text_hidden_size = 256 **kwargs )
参数
text_config
(dict
, optional) — 用于初始化 BlipTextConfig 的配置选项字典。vision_config
(dict
, optional) — 用于初始化 BlipVisionConfig 的配置选项字典。projection_dim
(int
, optional, 默认为 512) — 文本和视觉投影层的维度。logit_scale_init_value
(float
, optional, 默认为 2.6592) — logit_scale 参数的初始值。默认值与原始 BLIP 实现相同。image_text_hidden_size
(int
, optional, 默认为 256) — 图像文本融合层隐藏状态的维度。kwargs
(optional) — 关键字参数的字典。
BlipConfig 是存储 BlipModel 配置的配置类。它用于根据指定的参数实例化一个 BLIP 模型,定义文本模型和视觉模型配置。使用默认值实例化配置将产生类似于 BLIP-base Salesforce/blip-vqa-base架构的配置。
配置对象继承自 PretrainedConfig,可用于控制模型输出。阅读 PretrainedConfig 的文档以获取更多信息。
示例:
>>> from transformers import BlipConfig, BlipModel >>> # Initializing a BlipConfig with Salesforce/blip-vqa-base style configuration >>> configuration = BlipConfig() >>> # Initializing a BlipPModel (with random weights) from the Salesforce/blip-vqa-base style configuration >>> model = BlipModel(configuration) >>> # Accessing the model configuration >>> configuration = model.config >>> # We can also initialize a BlipConfig from a BlipTextConfig and a BlipVisionConfig >>> # Initializing a BLIPText and BLIPVision configuration >>> config_text = BlipTextConfig() >>> config_vision = BlipVisionConfig() >>> config = BlipConfig.from_text_vision_configs(config_text, config_vision)
from_text_vision_configs
( text_config: BlipTextConfig vision_config: BlipVisionConfig **kwargs ) → export const metadata = 'undefined';BlipConfig
返回
BlipConfig
配置对象的一个实例
从 blip 文本模型配置和 blip 视觉模型配置实例化一个 BlipConfig(或派生类)。
BlipTextConfig
class transformers.BlipTextConfig
( vocab_size = 30524 hidden_size = 768 encoder_hidden_size = 768 intermediate_size = 3072 projection_dim = 768 num_hidden_layers = 12 num_attention_heads = 8 max_position_embeddings = 512 hidden_act = 'gelu' layer_norm_eps = 1e-12 hidden_dropout_prob = 0.0 attention_probs_dropout_prob = 0.0 initializer_range = 0.02 bos_token_id = 30522 eos_token_id = 2 pad_token_id = 0 sep_token_id = 102 is_decoder = True use_cache = True **kwargs )
参数
vocab_size
(int
, optional, 默认为 30524) —Blip
文本模型的词汇量。定义了在调用 BlipModel 时可以表示的不同标记数量。hidden_size
(int
, optional, 默认为 768) — 编码器层和池化器层的维度。encoder_hidden_size
(int
, optional, 默认为 768) — 来自视觉模型的编码器层的维度。intermediate_size
(int
, optional, 默认为 3072) — Transformer 编码器中“中间”(即前馈)层的维度。num_hidden_layers
(int
, optional, 默认为 12) — Transformer 编码器中的隐藏层数量。num_attention_heads
(int
, optional, 默认为 8) — Transformer 编码器中每个注意力层的注意力头数量。max_position_embeddings
(int
, optional, 默认为 512) — 此模型可能使用的最大序列长度。通常将其设置为较大的值以防万一(例如,512、1024 或 2048)。hidden_act
(str
或function
, optional, 默认为"gelu"
) — 编码器和池化器中的非线性激活函数(函数或字符串)。如果是字符串,支持"gelu"
,"relu"
,"selu"
和"gelu_new"
"gelu"
。layer_norm_eps
(float
, optional, 默认为 1e-12) — 层归一化层使用的 epsilon。hidden_dropout_prob
(float
, optional, 默认为 0.0) — 嵌入层、编码器和池化器中所有全连接层的丢弃概率。attention_dropout
(float
, optional, 默认为 0.0) — 注意力概率的丢弃比率。initializer_range
(float
, optional, 默认为 0.02) — 用于初始化所有权重矩阵的截断正态初始化器的标准差。bos_token_id
(int
, optional, 默认为 30522) —beginning-of-sequence
标记的 id。eos_token_id
(int
, optional, 默认为 2) —end-of-sequence
标记的 id。pad_token_id
(int
, optional, 默认为 0) —padding
标记的 id。sep_token_id
(int
, optional, 默认为 102) —separator
标记的 id。is_decoder
(bool
, optional, 默认为True
) — 模型是否用作解码器。use_cache
(bool
, optional, 默认为True
) — 模型是否应返回最后的键/值注意力(并非所有模型都使用)。
这是用于存储 BlipTextModel 配置的配置类。它用于根据指定的参数实例化一个 BLIP 文本模型,定义模型架构。使用默认值实例化配置将产生类似于由 base architectures 使用的 BlipText
的配置。
配置对象继承自 PretrainedConfig,可用于控制模型输出。阅读来自 PretrainedConfig 的文档以获取更多信息。
示例:
>>> from transformers import BlipTextConfig, BlipTextModel >>> # Initializing a BlipTextConfig with Salesforce/blip-vqa-base style configuration >>> configuration = BlipTextConfig() >>> # Initializing a BlipTextModel (with random weights) from the Salesforce/blip-vqa-base style configuration >>> model = BlipTextModel(configuration) >>> # Accessing the model configuration >>> configuration = model.config
BlipVisionConfig
class transformers.BlipVisionConfig
( hidden_size = 768 intermediate_size = 3072 projection_dim = 512 num_hidden_layers = 12 num_attention_heads = 12 image_size = 384 patch_size = 16 hidden_act = 'gelu' layer_norm_eps = 1e-05 attention_dropout = 0.0 initializer_range = 1e-10 **kwargs )
参数
hidden_size
(int
, optional, defaults to 768) — 编码器层和池化层的维度。intermediate_size
(int
, optional, defaults to 3072) — Transformer 编码器中“中间”(即前馈)层的维度。num_hidden_layers
(int
, optional, defaults to 12) — Transformer 编码器中的隐藏层数。num_attention_heads
(int
, optional, defaults to 12) — 每个注意力层中的注意力头数。image_size
(int
, optional, defaults to 384) — 每个图像的大小(分辨率)。patch_size
(int
, optional, defaults to 16) — 每个 patch 的大小(分辨率)。hidden_act
(str
orfunction
, optional, defaults to"gelu"
) — 编码器和池化器中的非线性激活函数(函数或字符串)。如果是字符串,支持"gelu"
、"relu"
、"selu"
和"gelu_new"
。layer_norm_eps
(float
, optional, defaults to 1e-5) — 层归一化层使用的 epsilon。attention_dropout
(float
, optional, defaults to 0.0) — 注意力概率的 dropout 比率。initializer_range
(float
, optional, defaults to 1e-10) — 用于初始化所有权重矩阵的截断正态初始化器的标准差。
这是用于存储 BlipVisionModel 配置的配置类。它用于根据指定的参数实例化 BLIP 视觉模型,定义模型架构。实例化默认配置将产生类似于 Blip-base Salesforce/blip-vqa-base架构的配置。
配置对象继承自 PretrainedConfig,可用于控制模型输出。阅读 PretrainedConfig 的文档以获取更多信息。
示例:
>>> from transformers import BlipVisionConfig, BlipVisionModel >>> # Initializing a BlipVisionConfig with Salesforce/blip-vqa-base style configuration >>> configuration = BlipVisionConfig() >>> # Initializing a BlipVisionModel (with random weights) from the Salesforce/blip-vqa-base style configuration >>> model = BlipVisionModel(configuration) >>> # Accessing the model configuration >>> configuration = model.config
BlipProcessor
class transformers.BlipProcessor
( image_processor tokenizer )
参数
image_processor
(BlipImageProcessor
) — 一个 BlipImageProcessor 的实例。图像处理器是必需的输入。tokenizer
(BertTokenizerFast
) — 一个[‘BertTokenizerFast`]的实例。此 tokenizer 是必需的输入。
构建一个 BLIP 处理器,将 BERT tokenizer 和 BLIP 图像处理器包装成单个处理器。
BlipProcessor 提供了 BlipImageProcessor 和 BertTokenizerFast 的所有功能。有关更多信息,请参阅__call__()
和 decode()的文档字符串。
batch_decode
( *args **kwargs )
此方法将其所有参数转发给 BertTokenizerFast 的 batch_decode()。有关更多信息,请参阅此方法的文档字符串。
decode
( *args **kwargs )
此方法将所有参数转发给 BertTokenizerFast 的 decode()。请参考此方法的文档字符串以获取更多信息。
BlipImageProcessor
class transformers.BlipImageProcessor
( do_resize: bool = True size: Dict = None resample: Resampling = <Resampling.BICUBIC: 3> do_rescale: bool = True rescale_factor: Union = 0.00392156862745098 do_normalize: bool = True image_mean: Union = None image_std: Union = None do_convert_rgb: bool = True **kwargs )
参数
do_resize
(bool
, 可选, 默认为True
) — 是否将图像的(高度,宽度)尺寸调整为指定的size
。可以被preprocess
方法中的do_resize
参数覆盖。size
(dict
, 可选, 默认为{"height" -- 384, "width": 384}
): 调整大小后的输出图像尺寸。可以被preprocess
方法中的size
参数覆盖。resample
(PILImageResampling
, 可选, 默认为Resampling.BICUBIC
) — 如果调整图像大小,则要使用的重采样滤波器。仅在do_resize
设置为True
时才有效。可以被preprocess
方法中的resample
参数覆盖。do_rescale
(bool
, 可选, 默认为True
) — 是否按指定比例rescale_factor
对图像进行重新缩放。可以被preprocess
方法中的do_rescale
参数覆盖。rescale_factor
(int
或float
, 可选, 默认为1/255
) — 如果重新缩放图像,则要使用的比例因子。仅在do_rescale
设置为True
时才有效。可以被preprocess
方法中的rescale_factor
参数覆盖。do_normalize
(bool
, 可选, 默认为True
) — 是否对图像进行归一化。可以被preprocess
方法中的do_normalize
参数覆盖。可以被preprocess
方法中的do_normalize
参数覆盖。image_mean
(float
或List[float]
, 可选, 默认为IMAGENET_STANDARD_MEAN
) — 在归一化图像时使用的均值。这是一个浮点数或与图像通道数相同长度的浮点数列表。可以被preprocess
方法中的image_mean
参数覆盖。可以被preprocess
方法中的image_mean
参数覆盖。image_std
(float
或List[float]
, 可选, 默认为IMAGENET_STANDARD_STD
) — 在归一化图像时使用的标准差。这是一个浮点数或与图像通道数相同长度的浮点数列表。可以被preprocess
方法中的image_std
参数覆盖。可以被preprocess
方法中的image_std
参数覆盖。do_convert_rgb
(bool
, 可选, 默认为True
) — 是否将图像转换为 RGB。
构建一个 BLIP 图像处理器。
preprocess
( images: Union do_resize: Optional = None size: Optional = None resample: Resampling = None do_rescale: Optional = None rescale_factor: Optional = None do_normalize: Optional = None image_mean: Union = None image_std: Union = None return_tensors: Union = None do_convert_rgb: bool = 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
, 可选, 默认为self.do_resize
) — 是否调整图像。size
(Dict[str, int]
, 可选, 默认为self.size
) — 控制resize
后图像的大小。图像的最短边被调整为size["shortest_edge"]
,同时保持纵横比。如果此调整后图像的最长边 >int(size["shortest_edge"] * (1333 / 800))
,则再次调整图像大小,使最长边等于int(size["shortest_edge"] * (1333 / 800))
。resample
(PILImageResampling
, 可选, 默认为self.resample
) — 如果调整图像大小,则要使用的重采样滤波器。仅在do_resize
设置为True
时才有效。do_rescale
(bool
, 可选, 默认为self.do_rescale
) — 是否将图像值重新缩放在[0 - 1]之间。rescale_factor
(float
, 可选, 默认为self.rescale_factor
) — 如果do_rescale
设置为True
,则要按照此比例因子重新缩放图像。do_normalize
(bool
, 可选, 默认为self.do_normalize
) — 是否对图像进行归一化。image_mean
(float
或List[float]
, 可选, 默认为self.image_mean
) — 如果do_normalize
设置为True
,用于归一化图像的图像均值。image_std
(float
或List[float]
, 可选, 默认为self.image_std
) — 如果do_normalize
设置为True
,用于归一化图像的图像标准差。do_convert_rgb
(bool
, 可选, 默认为self.do_convert_rgb
) — 是否将图像转换为 RGB。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
: 图像格式为 (高度, 宽度)。
预处理图像或图像批次。
Pytorch 隐藏 Pytorch 内容
Transformers 4.37 中文文档(八十二)(4)https://developer.aliyun.com/article/1563227