Transformers 4.37 中文文档(八十四)(1)https://developer.aliyun.com/article/1563253
ChineseCLIPTextModel
class transformers.ChineseCLIPTextModel
( config add_pooling_layer = True )
参数
config
(ChineseCLIPConfig) — 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只会加载配置。查看 from_pretrained() 方法以加载模型权重。
CHINESE_CLIP 的文本模型没有任何头部或顶部的投影。这个模型是 PyTorch torch.nn.Module 的子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取与一般用法和行为相关的所有事项。
该模型可以作为编码器(仅具有自注意力)以及解码器,此时在自注意力层之间添加了一层交叉注意力,遵循 Attention is all you need 中描述的架构,作者为 Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser 和 Illia Polosukhin。
为了作为解码器行为,模型需要使用配置中设置为 True
的 is_decoder
参数进行初始化。要在 Seq2Seq 模型中使用,模型需要使用设置为 True
的 is_decoder
参数和 add_cross_attention
进行初始化;然后预期将 encoder_hidden_states
作为前向传递的输入。
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 past_key_values: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions or tuple(torch.FloatTensor)
参数
input_ids
(torch.LongTensor
,形状为(batch_size, sequence_length)
) — 词汇表中输入序列标记的索引。默认情况下,如果提供了填充,则将忽略填充。
可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode() 和 PreTrainedTokenizer.call
()。
什么是输入 ID?attention_mask
(torch.Tensor
,形状为(batch_size, sequence_length)
,可选) — 用于避免在填充标记索引上执行注意力的掩码。掩码值选在[0, 1]
:
- 对于被
not masked
的标记为 1, - 对于被
masked
的标记为 0。
- 什么是注意力掩码?
token_type_ids
(torch.LongTensor
of shape(batch_size, sequence_length)
, optional) — 段标记索引,指示输入的第一部分和第二部分。索引在[0, 1]
中选择:
- 0 对应于一个 句子 A 的标记,
- 1 对应于一个 句子 B 的标记。
- 什么是标记类型 ID?
position_ids
(torch.LongTensor
of shape(batch_size, sequence_length)
, optional) — 每个输入序列标记在位置嵌入中的位置索引。在范围[0, config.max_position_embeddings - 1]
中选择。
什么是位置 ID?pixel_values
(torch.FloatTensor
of shape(batch_size, num_channels, height, width)
) — 像素值。默认情况下将忽略填充。可以使用 AutoImageProcessor 获取像素值。有关详细信息,请参阅 ChineseCLIPImageProcessor.call
()。return_loss
(bool
, optional) — 是否返回对比损失。output_attentions
(bool
, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量下的attentions
。output_hidden_states
(bool
, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参见返回张量下的hidden_states
。return_dict
(bool
, optional) — 是否返回一个 ModelOutput 而不是一个普通元组。encoder_hidden_states
(torch.FloatTensor
of shape(batch_size, sequence_length, hidden_size)
, optional) — 编码器最后一层的隐藏状态序列。如果模型配置为解码器,则在交叉注意力中使用。encoder_attention_mask
(torch.FloatTensor
of shape(batch_size, sequence_length)
, optional) — 用于避免在编码器输入的填充标记索引上执行注意力的掩码。如果模型配置为解码器,则在交叉注意力中使用此掩码。掩码值在[0, 1]
中选择:
- 1 表示未被屏蔽的标记,
- 0 表示被屏蔽的标记。
past_key_values
(tuple(tuple(torch.FloatTensor))
,长度为config.n_layers
,每个元组有 4 个形状为(batch_size, num_heads, sequence_length - 1, embed_size_per_head)
的张量) — 包含注意力块的预计算键和值隐藏状态。可用于加速解码。
如果使用了past_key_values
,用户可以选择仅输入最后一个decoder_input_ids
(那些没有将其过去的键值状态提供给此模型的)的形状为(batch_size, 1)
的张量,而不是形状为(batch_size, sequence_length)
的所有decoder_input_ids
。use_cache
(bool
, optional) — 如果设置为True
,将返回past_key_values
键值状态,可用于加速解码(参见past_key_values
)。
返回
transformers.modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions 或 tuple(torch.FloatTensor)
一个 transformers.modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions 或一个 torch.FloatTensor
元组(如果传递了 return_dict=False
或者 config.return_dict=False
时)包含各种元素,取决于配置(ChineseCLIPConfig)和输入。
last_hidden_state
(torch.FloatTensor
of shape(batch_size, sequence_length, hidden_size)
) — 模型最后一层的隐藏状态序列。pooler_output
(形状为(batch_size, hidden_size)
的torch.FloatTensor
)- 序列第一个标记(分类标记)的最后一层隐藏状态,在通过用于辅助预训练任务的层进一步处理后返回。例如,对于 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 之后的注意力权重,用于计算自注意力头中的加权平均值。cross_attentions
(tuple(torch.FloatTensor)
,可选,当传递output_attentions=True
和config.add_cross_attention=True
或config.output_attentions=True
时返回)- 形状为(batch_size, num_heads, sequence_length, sequence_length)
的torch.FloatTensor
元组(每个层一个)。
解码器的交叉注意力层的注意力权重,在注意力 softmax 之后,用于计算交叉注意力头中的加权平均值。past_key_values
(tuple(tuple(torch.FloatTensor))
,可选,当传递use_cache=True
或config.use_cache=True
时返回)- 长度为config.n_layers
的tuple(torch.FloatTensor)
元组,每个元组有 2 个形状为(batch_size, num_heads, sequence_length, embed_size_per_head)
的张量,如果config.is_encoder_decoder=True
还有 2 个额外的形状为(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)
的张量。
包含预先计算的隐藏状态(自注意力块中的键和值,以及如果config.is_encoder_decoder=True
还有交叉注意力块中的键和值),可用于加速顺序解码(查看past_key_values
输入)。
ChineseCLIPTextModel 的前向方法,覆盖__call__
特殊方法。
虽然前向传递的步骤需要在此函数内定义,但应该在此之后调用Module
实例,而不是在此处调用,因为前者会处理运行前后处理步骤,而后者会默默地忽略它们。
示例:
>>> from transformers import AutoTokenizer, ChineseCLIPTextModel >>> import torch >>> tokenizer = AutoTokenizer.from_pretrained("OFA-Sys/chinese-clip-vit-base-patch16") >>> model = ChineseCLIPTextModel.from_pretrained("OFA-Sys/chinese-clip-vit-base-patch16") >>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt") >>> outputs = model(**inputs) >>> last_hidden_states = outputs.last_hidden_state
ChineseCLIPVisionModel
class transformers.ChineseCLIPVisionModel
( config: ChineseCLIPVisionConfig )
参数
config
(ChineseCLIPConfig)- 模型的所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,只会加载配置。查看 from_pretrained()方法以加载模型权重。
CHINESE_CLIP 中的视觉模型,没有顶部头部或投影。此模型是 PyTorch torch.nn.Module子类。将其用作常规 PyTorch 模块,并参考 PyTorch 文档以获取与一般用法和行为相关的所有事项。
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
of shape(batch_size, num_channels, height, width)
) — 像素值。默认情况下将忽略填充。可以使用 AutoImageProcessor 获取像素值。有关详细信息,请参阅 ChineseCLIPImageProcessor.call
()。output_attentions
(bool
,可选) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions
。output_hidden_states
(bool
,可选) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states
。return_dict
(bool
,可选) — 是否返回 ModelOutput 而不是普通元组。
返回
transformers.modeling_outputs.BaseModelOutputWithPooling 或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 后,用于计算加权平均值。
ChineseCLIPVisionModel 的前向方法,覆盖了__call__
特殊方法。
尽管前向传递的步骤需要在此函数内定义,但应该在此之后调用Module
实例,而不是在此处调用,因为前者会负责运行预处理和后处理步骤,而后者会默默地忽略它们。
示例:
>>> from PIL import Image >>> import requests >>> from transformers import CLIPProcessor, ChineseCLIPVisionModel >>> model = ChineseCLIPVisionModel.from_pretrained("OFA-Sys/chinese-clip-vit-base-patch16") >>> processor = CLIPProcessor.from_pretrained("OFA-Sys/chinese-clip-vit-base-patch16") >>> url = "https://clip-cn-beijing.oss-cn-beijing.aliyuncs.com/pokemon.jpeg" >>> 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
CLIP
原文链接:
huggingface.co/docs/transformers/v4.37.2/en/model_doc/clip
概述
CLIP 模型是由 Alec Radford、Jong Wook Kim、Chris Hallacy、Aditya Ramesh、Gabriel Goh、Sandhini Agarwal、Girish Sastry、Amanda Askell、Pamela Mishkin、Jack Clark、Gretchen Krueger、Ilya Sutskever 在从自然语言监督中学习可转移的视觉模型中提出的。CLIP(对比语言-图像预训练)是一个在各种(图像,文本)对上训练的神经网络。它可以用自然语言指导来预测最相关的文本片段,给定一个图像,而不直接为任务进行优化,类似于 GPT-2 和 3 的零-shot 能力。
论文的摘要如下:
最先进的计算机视觉系统被训练来预测一组固定的预定对象类别。这种受限的监督形式限制了它们的普遍性和可用性,因为需要额外的标记数据来指定任何其他视觉概念。直接从关于图像的原始文本中学习是一个有前途的替代方案,它利用了更广泛的监督来源。我们证明了预测哪个标题与哪个图像相匹配的简单预训练任务是一种有效且可扩展的方式,可以从互联网收集的 4 亿(图像,文本)对数据集上从头开始学习 SOTA 图像表示。预训练后,自然语言用于引用学习的视觉概念(或描述新的概念),从而实现模型对下游任务的零-shot 转移。我们通过在超过 30 个不同的现有计算机视觉数据集上进行基准测试来研究这种方法的性能,涵盖了 OCR、视频中的动作识别、地理定位以及许多类型的细粒度对象分类等任务。该模型对大多数任务进行了非平凡的转移,并且通常与完全监督的基线具有竞争力,而无需进行任何特定数据集的训练。例如,我们在 ImageNet 零-shot 上匹配了原始 ResNet-50 的准确率,而无需使用其训练的 128 万个训练示例中的任何一个。我们在此 https URL 上发布我们的代码和预训练模型权重。
这个模型是由valhalla贡献的。原始代码可以在这里找到。
使用提示和示例
CLIP 是一个多模态视觉和语言模型。它可用于图像文本相似性和零-shot 图像分类。CLIP 使用类似 ViT 的 transformer 获取视觉特征,并使用因果语言模型获取文本特征。然后将文本和视觉特征投影到具有相同维度的潜在空间。然后使用投影图像和文本特征之间的点积作为相似分数。
为了将图像输入 Transformer 编码器,每个图像被分割成一系列固定大小且不重叠的补丁,然后进行线性嵌入。添加一个[CLS]标记作为整个图像的表示。作者还添加了绝对位置嵌入,并将结果向量序列馈送到标准 Transformer 编码器。CLIPImageProcessor 可用于调整(或重新缩放)和规范化图像以供模型使用。
使用 CLIPTokenizer 对文本进行编码。CLIPProcessor 将 CLIPImageProcessor 和 CLIPTokenizer 包装成单个实例,用于同时对文本进行编码和准备图像。以下示例展示了如何使用 CLIPProcessor 和 CLIPModel 获取图像文本相似度分数。
>>> from PIL import Image >>> import requests >>> from transformers import CLIPProcessor, CLIPModel >>> model = CLIPModel.from_pretrained("openai/clip-vit-base-patch32") >>> processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch32") >>> url = "http://images.cocodataset.org/val2017/000000039769.jpg" >>> image = Image.open(requests.get(url, stream=True).raw) >>> inputs = processor(text=["a photo of a cat", "a photo of a dog"], images=image, return_tensors="pt", padding=True) >>> outputs = model(**inputs) >>> logits_per_image = outputs.logits_per_image # this is the image-text similarity score >>> probs = logits_per_image.softmax(dim=1) # we can take the softmax to get the label probabilities
资源
官方 Hugging Face 和社区(🌎标志)资源列表,帮助您开始使用 CLIP。
- 使用遥感(卫星)图像和标题微调 CLIP,一篇关于如何使用RSICD 数据集微调 CLIP 并比较由于数据增强而导致的性能变化的博客文章。
- 这个示例脚本展示了如何使用预训练的视觉和文本编码器训练类似 CLIP 的视觉-文本双编码器模型,使用COCO 数据集。
图像到文本
- 使用预训练的 CLIP 进行推理,使用波束搜索进行图像字幕生成的笔记本。🌎
图像检索
- 使用预训练的 CLIP 进行图像检索并计算 MRR(平均倒数排名)分数的笔记本。🌎
- 关于图像检索和显示相似度分数的笔记本。🌎
- 使用 Multilingual CLIP 将图像和文本映射到相同向量空间的笔记本。🌎
- 关于如何在Unsplash和TMBD数据集上运行语义图像搜索的 CLIP 的笔记本。🌎
可解释性
- 关于如何可视化输入标记和图像段之间相似性的笔记本。🌎
如果您有兴趣提交资源以包含在此处,请随时提交拉取请求,我们将进行审核。资源应该尽可能展示新内容,而不是重复现有资源。
CLIPConfig
class transformers.CLIPConfig
( text_config = None vision_config = None projection_dim = 512 logit_scale_init_value = 2.6592 **kwargs )
参数
text_config
(dict
, 可选) — 用于初始化 CLIPTextConfig 的配置选项字典。vision_config
(dict
, 可选) — 用于初始化 CLIPVisionConfig 的配置选项字典。projection_dim
(int
, 可选, 默认为 512) — 文本和视觉投影层的维度。logit_scale_init_value
(float
, 可选, 默认为 2.6592) — logit_scale参数的初始值。默认值根据原始 CLIP 实现使用。kwargs
(可选) — 关键字参数字典。
CLIPConfig 是用于存储 CLIPModel 配置的类。它用于根据指定的参数实例化一个 CLIP 模型,定义文本模型和视觉模型配置。使用默认值实例化配置将产生与 CLIP openai/clip-vit-base-patch32 架构类似的配置。
配置对象继承自 PretrainedConfig,可用于控制模型输出。阅读 PretrainedConfig 的文档以获取更多信息。
示例:
>>> from transformers import CLIPConfig, CLIPModel >>> # Initializing a CLIPConfig with openai/clip-vit-base-patch32 style configuration >>> configuration = CLIPConfig() >>> # Initializing a CLIPModel (with random weights) from the openai/clip-vit-base-patch32 style configuration >>> model = CLIPModel(configuration) >>> # Accessing the model configuration >>> configuration = model.config >>> # We can also initialize a CLIPConfig from a CLIPTextConfig and a CLIPVisionConfig >>> from transformers import CLIPTextConfig, CLIPVisionConfig >>> # Initializing a CLIPText and CLIPVision configuration >>> config_text = CLIPTextConfig() >>> config_vision = CLIPVisionConfig() >>> config = CLIPConfig.from_text_vision_configs(config_text, config_vision
from_text_vision_configs
( text_config: CLIPTextConfig vision_config: CLIPVisionConfig **kwargs ) → export const metadata = 'undefined';CLIPConfig
返回
CLIPConfig
配置对象的一个实例
从 clip 文本模型配置和 clip 视觉模型配置实例化一个 CLIPConfig(或派生类)。
CLIPTextConfig
class transformers.CLIPTextConfig
( vocab_size = 49408 hidden_size = 512 intermediate_size = 2048 projection_dim = 512 num_hidden_layers = 12 num_attention_heads = 8 max_position_embeddings = 77 hidden_act = 'quick_gelu' layer_norm_eps = 1e-05 attention_dropout = 0.0 initializer_range = 0.02 initializer_factor = 1.0 pad_token_id = 1 bos_token_id = 49406 eos_token_id = 49407 **kwargs )
参数
vocab_size
(int
, optional, defaults to 49408) — CLIP 文本模型的词汇量。定义了在调用 CLIPModel 时可以表示的不同标记数量。hidden_size
(int
, optional, defaults to 512) — 编码器层和池化层的维度。intermediate_size
(int
, optional, defaults to 2048) — Transformer 编码器中“中间”(即前馈)层的维度。projection_dim
(int
, optional, defaults to 512) — 文本和视觉投影层的维度。num_hidden_layers
(int
, optional, defaults to 12) — Transformer 编码器中的隐藏层数。num_attention_heads
(int
, optional, defaults to 8) — Transformer 编码器中每个注意力层的注意力头数。max_position_embeddings
(int
, optional, defaults to 77) — 该模型可能使用的最大序列长度。通常将其设置为较大的值以防万一(例如,512 或 1024 或 2048)。hidden_act
(str
orfunction
, optional, defaults to"quick_gelu"
) — 编码器和池化器中的非线性激活函数(函数或字符串)。如果是字符串,支持"gelu"
、"relu"
、"selu"
和"gelu_new"
"quick_gelu"
。layer_norm_eps
(float
, optional, defaults to 1e-05) — 层归一化层使用的 epsilon。attention_dropout
(float
, optional, defaults to 0.0) — 注意力概率的 dropout 比率。initializer_range
(float
, optional, defaults to 0.02) — 用于初始化所有权重矩阵的截断正态初始化器的标准差。initializer_factor
(float
, optional, defaults to 1.0) — 用于初始化所有权重矩阵的因子(应保持为 1,用于内部初始化测试)。pad_token_id
(int
, optional, defaults to 1) — 填充标记 id。bos_token_id
(int
, optional, defaults to 49406) — 流开始标记 id。eos_token_id
(int
, optional, defaults to 49407) — 流结束标记 id。
这是用于存储 CLIPTextModel 配置的配置类。根据指定的参数实例化一个 CLIP 文本编码器,定义模型架构。使用默认值实例化配置将产生类似于 CLIP openai/clip-vit-base-patch32架构的文本编码器的配置。
配置对象继承自 PretrainedConfig,可用于控制模型输出。阅读 PretrainedConfig 的文档以获取更多信息。
示例:
>>> from transformers import CLIPTextConfig, CLIPTextModel >>> # Initializing a CLIPTextConfig with openai/clip-vit-base-patch32 style configuration >>> configuration = CLIPTextConfig() >>> # Initializing a CLIPTextModel (with random weights) from the openai/clip-vit-base-patch32 style configuration >>> model = CLIPTextModel(configuration) >>> # Accessing the model configuration >>> configuration = model.config
CLIPVisionConfig
class transformers.CLIPVisionConfig
( hidden_size = 768 intermediate_size = 3072 projection_dim = 512 num_hidden_layers = 12 num_attention_heads = 12 num_channels = 3 image_size = 224 patch_size = 32 hidden_act = 'quick_gelu' layer_norm_eps = 1e-05 attention_dropout = 0.0 initializer_range = 0.02 initializer_factor = 1.0 **kwargs )
参数
hidden_size
(int
, 可选, 默认为 768) — 编码器层和池化层的维度。intermediate_size
(int
, 可选, 默认为 3072) — Transformer 编码器中“中间”(即前馈)层的维度。projection_dim
(int
, 可选, 默认为 512) — 文本和视觉投影层的维度。num_hidden_layers
(int
, 可选, 默认为 12) — Transformer 编码器中的隐藏层数量。num_attention_heads
(int
, 可选, 默认为 12) — Transformer 编码器中每个注意力层的注意力头数。num_channels
(int
, 可选, 默认为 3) — 输入通道的数量。image_size
(int
, 可选, 默认为 224) — 每个图像的大小(分辨率)。patch_size
(int
, 可选, 默认为 32) — 每个补丁的大小(分辨率)。hidden_act
(str
或function
, 可选, 默认为"quick_gelu"
) — 编码器和池化器中的非线性激活函数(函数或字符串)。如果是字符串,支持"gelu"
、"relu"
、"selu"
和"gelu_new"
以及"quick_gelu"
。layer_norm_eps
(float
, 可选, 默认为 1e-05) — 层归一化层使用的 epsilon。attention_dropout
(float
, 可选, 默认为 0.0) — 注意力概率的 dropout 比率。initializer_range
(float
, 可选, 默认为 0.02) — 用于初始化所有权重矩阵的截断正态初始化器的标准差。initializer_factor
(float
, 可选, 默认为 1.0) — 用于初始化所有权重矩阵的因子(应保持为 1,用于内部初始化测试)。
这是用于存储 CLIPVisionModel 配置的配置类。根据指定的参数实例化一个 CLIP 视觉编码器,定义模型架构。使用默认值实例化配置将产生类似于 CLIP openai/clip-vit-base-patch32架构的视觉编码器的配置。
配置对象继承自 PretrainedConfig,可用于控制模型输出。阅读 PretrainedConfig 的文档以获取更多信息。
示例:
>>> from transformers import CLIPVisionConfig, CLIPVisionModel >>> # Initializing a CLIPVisionConfig with openai/clip-vit-base-patch32 style configuration >>> configuration = CLIPVisionConfig() >>> # Initializing a CLIPVisionModel (with random weights) from the openai/clip-vit-base-patch32 style configuration >>> model = CLIPVisionModel(configuration) >>> # Accessing the model configuration >>> configuration = model.config
CLIPTokenizer
class transformers.CLIPTokenizer
( vocab_file merges_file errors = 'replace' unk_token = '<|endoftext|>' bos_token = '<|startoftext|>' eos_token = '<|endoftext|>' pad_token = '<|endoftext|>' **kwargs )
参数
vocab_file
(str
) — 词汇表文件的路径。merges_file
(str
) — 合并文件的路径。errors
(str
,可选,默认为"replace"
)— 解码字节为 UTF-8 时要遵循的范例。有关更多信息,请参阅bytes.decode。unk_token
(str
,optional,默认为"<|endoftext|>"
)–未知令牌。词汇表中没有的令牌无法转换为 ID,而是设置为该令牌。bos_token
(str
,optional,默认为"<|startoftext|>"
)–序列标记的开头。eos_token
(str
,optional,默认为"<|endoftext|>"
)–序列结束标记。pad_token
(str
,optional,默认为"<|endoftext|>"
)–用于填充的令牌,例如,在批处理不同长度的序列时。
构建一个 CLIP 分词器。基于字节级字节对编码。
此分词器继承自 PreTrainedTokenizer,其中包含大部分主要方法。用户应参考此超类以获取有关这些方法的更多信息。
build_inputs_with_special_tokens
( token_ids_0: List token_ids_1: Optional = None ) → export const metadata = 'undefined';List[int]
参数
token_ids_0
(List[int]
)— 将添加特殊令牌的 ID 列表。token_ids_1
(List[int]
,可选)— 序列对的可选第二个 ID 列表。
返回
List[int]
具有适当特殊令牌的输入 ID 列表。
通过连接和添加特殊令牌,从序列或序列对构建用于序列分类任务的模型输入。CLIP 序列具有以下格式:
- 单个序列:
<|startoftext|> X <|endoftext|>
序列对不是预期的使用情况,但它们将在没有分隔符的情况下处理。
get_special_tokens_mask
( token_ids_0: List token_ids_1: Optional = None already_has_special_tokens: bool = False ) → export const metadata = 'undefined';List[int]
参数
token_ids_0
(List[int]
)— ID 列表。token_ids_1
(List[int]
,可选)— 序列对的可选第二个 ID 列表。already_has_special_tokens
(bool
,可选,默认为False
)— 令牌列表是否已经为模型格式化了特殊令牌。
返回
List[int]
一个整数列表,范围为[0, 1]:1 表示特殊令牌,0 表示序列令牌。
从没有添加特殊令牌的令牌列表中检索序列 id。当使用 tokenizer 的prepare_for_model
方法添加特殊令牌时,将调用此方法。
create_token_type_ids_from_sequences
( token_ids_0: List token_ids_1: Optional = None ) → export const metadata = 'undefined';List[int]
参数
token_ids_0
(List[int]
)— ID 列表。token_ids_1
(List[int]
,可选)— 序列对的可选第二个 ID 列表。
返回
List[int]
零列表。
从传递的两个序列创建一个掩码。CLIP 不使用令牌类型 id,因此返回一个零列表。
save_vocabulary
( save_directory: str filename_prefix: Optional = None )
CLIPTokenizerFast
class transformers.CLIPTokenizerFast
( vocab_file = None merges_file = None tokenizer_file = None unk_token = '<|endoftext|>' bos_token = '<|startoftext|>' eos_token = '<|endoftext|>' pad_token = '<|endoftext|>' **kwargs )
参数
vocab_file
(str
,可选)— 词汇文件的路径。merges_file
(str
,可选)— 合并文件的路径。tokenizer_file
(str
,可选)— 要使用的分词器文件的路径,而不是词汇文件。unk_token
(str
,optional,默认为"<|endoftext|>"
)–未知令牌。词汇表中没有的令牌无法转换为 ID,而是设置为该令牌。bos_token
(str
,optional,默认为"<|startoftext|>"
)–序列标记的开头。eos_token
(str
,optional,默认为"<|endoftext|>"
)–序列结束标记。pad_token
(str
,optional,默认为"<|endoftext|>"
)–用于填充的令牌,例如,在批处理不同长度的序列时。
构建一个“快速”CLIP 分词器(由 HuggingFace 的tokenizers库支持)。基于字节级字节对编码。
此分词器继承自 PreTrainedTokenizerFast,其中包含大部分主要方法。用户应参考此超类以获取有关这些方法的更多信息。
build_inputs_with_special_tokens
( token_ids_0: List token_ids_1: Optional = None ) → export const metadata = 'undefined';List[int]
参数
token_ids_0
(List[int]
)— 将添加特殊令牌的 ID 列表。token_ids_1
(List[int]
,可选)— 序列对的可选第二个 ID 列表。
返回
List[int]
具有适当特殊令牌的输入 ID 列表。
通过连接和添加特殊标记,从序列或序列对构建用于序列分类任务的模型输入。CLIP 序列的格式如下:
- 单个序列:
<|startoftext|> X <|endoftext|>
序列对不是预期的用例,但它们将被处理而无需分隔符。
create_token_type_ids_from_sequences
( token_ids_0: List token_ids_1: Optional = None ) → export const metadata = 'undefined';List[int]
参数
token_ids_0
(List[int]
) — ID 列表。token_ids_1
(List[int]
, 可选) — 序列对的可选第二个 ID 列表。
返回
List[int]
零的列表。
从传递的两个序列创建一个掩码。CLIP 不使用标记类型 ID,因此返回一个零列表。
Transformers 4.37 中文文档(八十四)(3)https://developer.aliyun.com/article/1563256