CLIPTokenizer.from_pretrained本地加载

在这里插入图片描述

以"openai/clip-vit-large-patch14"为例,原代码为:
self.tokenizer = CLIPTokenizer.from_pretrained(“openai/clip-vit-large-patch14”)
self.transformer = CLIPTextModel.from_pretrained(“openai/clip-vit-large-patch14”)
但我连不到外网没办法直接下载,所以去

https://huggingface.co/openai/clip-vit-large-patch14/tree/main

这个网页把所有文件下载下来,传到.cache/huggingface/transformers下,然后把代码改

 # 校园网连不上huggingface
 # self.tokenizer = CLIPTokenizer.from_pretrained(version)
 # self.transformer = CLIPTextModel.from_pretrained(version)
 
 local_path="/home/rongl/.cache/huggingface/transformers/{}".format(version.split('/')[-1])
 # '/home/xxx/.cache/huggingface/transformers/clip-vit-large-patch14'
 self.tokenizer = CLIPTokenizer.from_pretrained(local_path)
 self.transformer = CLIPTextModel.from_pretrained(local_path)

### ClipTokenizer 使用方法及实现原理 #### CLIP Tokenizer 的基本功能 CLIP (Contrastive Language–Image Pre-training) 是一种多模态模型,能够处理图像和文本之间的关系。为了使文本输入适应神经网络结构,CLIP采用了特定的分词机制来将自然语言转换成数值表示形式[^1]。 #### 实现方式 具体来说,`ClipTokenizer`属于Hugging Face `transformers` 库的一部分,该库提供了预训练好的`CLIPTokenizer`类用于加载并初始化CLIP所使用的BPE(Byte Pair Encoding)字节对编码器。这种编码方案可以有效地解决未知单词的问题,并且支持多种语言。 #### 初始化与调用 当创建一个基于CLIP架构的应用程序时,通常会先实例化`FrozenCLIPEmbedder`对象,这其中包括了`CLIPTokenizer` 和 `CLIPTextModel`两个组件。对于文本数据而言,只需简单地传入字符串列表给tokenizer即可获得token IDs作为后续嵌入层的输入。 ```python from transformers import CLIPTokenizer, CLIPTextModel # 加载预训练 tokenizer 和 text model tokenizer = CLIPTokenizer.from_pretrained('openai/clip-vit-base-patch32') model = CLIPTextModel.from_pretrained('openai/clip-vit-base-patch32') texts = ["a photo of a cat", "an image with dog"] inputs = tokenizer(texts, padding=True, truncation=True, return_tensors="pt") outputs = model(**inputs) text_features = outputs.last_hidden_state.mean(dim=1) print(text_features.shape) ``` 这段代码展示了如何利用`CLIPTokenizer` 对一批次内的多个句子进行编码操作,最终得到每句话对应的特征向量表示。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值