Views
No views yet
1git clone https://github.com/yangjianxin1/CLIP-Chinese
2pip install -r requirements.txt1from transformers import CLIPProcessor
2from component.model import BertCLIPModel
3from PIL import Image
4import requests
5
6model_name_or_path = 'YeungNLP/clip-vit-bert-chinese-1M'
7# 加载预训练模型权重
8model = BertCLIPModel.from_pretrained(model_name_or_path)
9CLIPProcessor.tokenizer_class = 'BertTokenizerFast'
10# 初始化processor
11processor = CLIPProcessor.from_pretrained(model_name_or_path)
12# 预处理输入
13url = "http://images.cocodataset.org/val2017/000000039769.jpg"
14image = Image.open(requests.get(url, stream=True).raw)
15inputs = processor(text=["一只小狗在摇尾巴", "一只小猪在吃饭"], images=image, return_tensors="pt", padding=True)
16inputs.pop('token_type_ids') # 输入中不包含token_type_ids
17
18outputs = model(**inputs)
19
20# 对于每张图片,计算其与所有文本的相似度
21logits_per_image = outputs.logits_per_image # image-text的相似度得分
22probs = logits_per_image.softmax(dim=1) # 对分数进行归一化
23
24# 对于每个文本,计算其与所有图片的相似度
25logits_per_text = outputs.logits_per_text # text-image的相似度得分
26probs = logits_per_text.softmax(dim=1) # 对分数进行归一化
27
28# 获得文本编码
29text_embeds = outputs.text_embeds
30# 获得图像编码
31image_embeds = outputs.image_embeds1from PIL import Image
2import requests
3from transformers import CLIPProcessor, CLIPVisionModel
4
5model_name_or_path = 'YeungNLP/clip-vit-bert-chinese-1M'
6model = CLIPVisionModel.from_pretrained(model_name_or_path)
7CLIPProcessor.tokenizer_class = 'BertTokenizerFast'
8processor = CLIPProcessor.from_pretrained(model_name_or_path)
9
10url = "http://images.cocodataset.org/val2017/000000039769.jpg"
11image = Image.open(requests.get(url, stream=True).raw)
12
13inputs = processor(images=image, return_tensors="pt")
14
15outputs = model(**inputs)
16last_hidden_state = outputs.last_hidden_state
17pooled_output = outputs.pooler_output 1from component.model import BertCLIPTextModel
2from transformers import BertTokenizerFast
3
4model_name_or_path = 'YeungNLP/clip-vit-bert-chinese-1M'
5model = BertCLIPTextModel.from_pretrained(model_name_or_path)
6tokenizer = BertTokenizerFast.from_pretrained(model_name_or_path)
7
8inputs = tokenizer(["一只小狗在摇尾巴", "一只小猪在吃饭"], padding=True, return_tensors="pt")
9inputs.pop('token_type_ids') # 输入中不包含token_type_ids
10
11outputs = model(**inputs)
12last_hidden_state = outputs.last_hidden_state
13pooled_output = outputs.pooler_output