Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python clip

作者:金钱打造势力狗。   发布日期:2025-08-21   浏览:73

# 使用 CLIP 模型进行图像和文本匹配的示例代码

import torch
import clip
from PIL import Image

# 加载预训练的 CLIP 模型和对应的图像处理函数
device = "cuda" if torch.cuda.is_available() else "cpu"
model, preprocess = clip.load("ViT-B/32", device=device)

# 准备输入的图像和文本
image = preprocess(Image.open("image.jpg")).unsqueeze(0).to(device)
text = clip.tokenize(["a diagram", "a dog", "a cat"]).to(device)

# 计算图像和文本的特征向量
with torch.no_grad():
    image_features = model.encode_image(image)
    text_features = model.encode_text(text)

# 计算相似度
image_features /= image_features.norm(dim=-1, keepdim=True)
text_features /= text_features.norm(dim=-1, keepdim=True)
similarity = (100.0 * image_features @ text_features.T).softmax(dim=-1)

# 输出相似度结果
probs = similarity.cpu().numpy()
print("Label probs:", probs)  # 打印每个文本标签与图像的相似度概率

解释说明:

  1. 加载模型:使用 clip.load 函数加载预训练的 CLIP 模型(这里选择的是 ViT-B/32 模型),并指定设备(GPU 或 CPU)。
  2. 准备输入数据:通过 preprocess 函数对输入图像进行预处理,并将文本标签转换为 tokenized 形式。
  3. 计算特征向量:使用 model.encode_imagemodel.encode_text 分别计算图像和文本的特征向量。
  4. 计算相似度:通过矩阵乘法计算图像特征和文本特征之间的相似度,并使用 softmax 函数将相似度转换为概率分布。
  5. 输出结果:打印出每个文本标签与图像的相似度概率。

如果你没有安装 CLIP 库,可以通过以下命令安装:

pip install git+https://github.com/openai/CLIP.git

上一篇:python定义一个列表

下一篇:python __getattribute__

大家都在看

python时间格式

python开发windows应用程序

python中len是什么意思

python ord和chr

python中的yield

python自定义异常

python判断路径是否存在

python list.pop

python pypinyin

python的for i in range

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站