CLIP 零样本文本匹配完整教程:不标数据、不训模型,3 分钟让一万张图变成“文字可检索“
CLIP 零样本文本匹配完整教程不标数据、不训模型3 分钟让一万张图变成文字可检索【免费下载链接】CLIPCLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image项目地址: https://gitcode.com/GitHub_Trending/cl/CLIP先说它跑通了是什么样子你手里有一堆图片输入一句话比如a photo of a dog模型就从你给的候选文字里挑出和图最贴的那条概率接近 1——不用标注一张数据不用训练一分钟模型。CLIPContrastive Language-Image Pretraining对比语言-图像预训练干的就是这件零样本文本匹配的事它把图片和文字放进同一个坐标系里比较距离所以用文字捞图片对它来说是基本功。这篇指南带你先搞懂它为什么能匹配再一条动线装环境、跑示例最后把候选标签换成你自己的。装之前先花 2 分钟CLIP 为什么能看图识文结论先给CLIP 能匹配靠的不是训练时见过你的图而是它把图片和文字统一编码成了同一种向量匹配就变成了比距离。打个比方。普通分类器像一台只认固定按键的机器要识别狗就得先喂它一万张贴着狗标签的图。CLIP 更像一位通情达理的图书管理员——上架时它见过海量图配文的对照样本论文里是 4 亿组网络图文对每来一对它就把配对的图片和文字往同一个位置挪近把不配对的推远。久而久之图片和文字都被翻译到同一套坐标里。到了用的时候它把你给的每条候选文字也翻译成坐标和图片坐标比远近最近的那条胜出。所以零样本不是魔法而是预训练阶段已经把活干完了。上图就是这套流程的官方示意左半边是预训练时把图文对拉近推远右半边是推理时把标签文字过一遍文本编码器、和图像向量比相似度。理解到这一层后面所有代码你都能看明白——它们都只是编码 比距离。一条动线跑通 CLIP装环境、下权重、出第一个结果整条动线只有两个真正的决定要做你机器有没有 CUDA GPU以及用哪个模型。其余都是机械操作命令里都写了注释从上到下执行即可。# 1. 独立环境防止依赖污染其他项目Python 3.8 conda create -n clip-env python3.8 -y conda activate clip-env # 2. PyTorch 1.7.1 与 torchvision # 有 CUDA GPU → 用 conda 装带 cudatoolkit 的轮子版本对齐本机 CUDA conda install -y -c pytorch pytorch torchvision cudatoolkit11.3 # 纯 CPU 或 macOS → 跳过上一行改用 pip 安装 PyTorch 官方 CPU 轮子 # 3. 文本清洗与进度条小依赖与 requirements.txt 一致缺一个都可能报错 pip install ftfy regex tqdm packaging # 4. 以包形式安装本仓库之后任意目录都能 import clip git clone https://gitcode.com/GitHub_Trending/cl/CLIP cd CLIP pip install .权重不随包安装首次clip.load时才自动下载到~/.cache/clip/ViT-B/32 约 350MB第一次会卡几分钟别中断。跑最小示例在仓库根目录下执行示例直接复用仓库自带的CLIP.pngimport torch import clip from PIL import Image device cuda if torch.cuda.is_available() else cpu model, preprocess clip.load(ViT-B/32, devicedevice) # preprocess 是模型配套的固定预处理流程缩放、裁剪、归一化图片必须走它 image preprocess(Image.open(CLIP.png)).unsqueeze(0).to(device) text clip.tokenize([a diagram, a dog, a cat]).to(device) with torch.no_grad(): logits_per_image, _ model(image, text) probs logits_per_image.softmax(dim-1).cpu().numpy() print(probs)跑通的样子是一行三个数[[0.9927937 0.00421068 0.00299572]]。第一个数对应 a diagram几乎为 1后两个接近 0。这说明环境、权重、推理链路全通了。如果三个数均分在 0.33 左右多半是权重没加载对回去查下载日志。CPU 机器上这次推理要几秒到几十秒正常权重下过一次后走本地缓存第二次起快很多。关于模型选择仓库里用clip.available_models()可以列出全部可用型号初学只需认识两个模型特点适合场景ViT-B/32默认示例用的型号精度高一些常规使用、单图/小批量RN50体积更小显存占用低显存吃紧、批量检索换成你自己的标签CLIP 零样本分类的最小可用示例验证通过之后才是真正的使用方式把候选文字换成你自己的标签让模型从中挑最匹配的一个。import torch import clip from PIL import Image device cuda if torch.cuda.is_available() else cpu model, preprocess clip.load(ViT-B/32, devicedevice) image preprocess(Image.open(CLIP.png)).unsqueeze(0).to(device) # 候选集换成你自己的业务标签分类任务惯用 a photo of a ... 句式 labels [a diagram, a photo of a dog, a photo of a cat, a screenshot] text torch.cat([clip.tokenize(t) for t in labels]).to(device) with torch.no_grad(): img_f model.encode_image(image) txt_f model.encode_text(text) # L2 归一化让点积等价于余弦相似度 img_f / img_f.norm(dim-1, keepdimTrue) txt_f / txt_f.norm(dim-1, keepdimTrue) # 相似度乘 100 拉大量程softmax 后得到概率分布 sim (100.0 * img_f txt_f.T).softmax(dim-1) print(labels[sim.argmax().item()], sim[0])预期 top-1 是a diagram概率接近 1。这里 a diagram 和 a screenshot 语义很接近还能选对说明区分度是真的。model(image, text)直接返回的 logits 其实就是同样的余弦相似度乘 100所以上一节这一节的写法结果一致选顺手的用。三个自然的扩展点扩候选集直接往labels里加字符串即可几百上千条标签也照常吃批量时用 DataLoader 分批喂。省资源显存不够就把ViT-B/32换成RN50改动一个字符串的事。抠提示词同样的标签a photo of a dog 和 a dog 排出来的顺序可能不同。想系统研究措辞对排序的影响看 notebooks/Prompt_Engineering_for_ImageNet.ipynb里面用 ImageNet 做了完整演示。跑挂了别慌三种最常见的翻车现场现象一首次运行长时间卡住、没有任何输出。多半是权重正在从远程下载几百 MB 不是几 KB。网络慢就配代理或者直接离线把权重文件放进~/.cache/clip/文件名和校验逻辑见 clip/clip.py 里的_download放好后再跑即可。现象二No module named clip。说明仓库没以包形式装进当前环境或者你压根没激活那个环境。确认conda activate clip-env已执行然后回到仓库目录重跑一次pip install .两条命令解决。现象三CUDA out of memory或FileNotFoundError: CLIP.png。前者是显存不够换RN50或减小每批图片数后者是因为示例用相对路径读图而你的终端不在仓库根目录——把脚本挪到根目录跑或把路径改成绝对路径。排错时如果怀疑权重本身有问题tests/test_consistency.py 提供了现成的行为基线可以参考。继续深挖源码、API 与示例入口完整 API 说明与 CIFAR-100 零样本预测案例README.mdclip.load/clip.tokenize/clip.available_models的实现clip/clip.py模型结构与权重下载、校验逻辑clip/model.py交互式图文打分输入图片 文本实时看相似度notebooks/Interacting_with_CLIP.ipynb提示词工程对分类排序的影响notebooks/Prompt_Engineering_for_ImageNet.ipynb模型选型与能力边界说明model-card.md下一步建议先照 README 里的 CIFAR-100 零样本案例复现一次 top-5 预测再把cifar100.classes换成你业务的标签看相似度排序是否符合预期——符合就说明这套流程可以直接搬进你的场景了。【免费下载链接】CLIPCLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image项目地址: https://gitcode.com/GitHub_Trending/cl/CLIP创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

51单片机驱动LCD1602与矩阵键盘的底层时序实战

51单片机驱动LCD1602与矩阵键盘的底层时序实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/3 14:10:59 阅读更多 →
AI内容优化API实战:降低朱雀AI检测率的技术方案

AI内容优化API实战:降低朱雀AI检测率的技术方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/3 14:10:59 阅读更多 →
Krokiet/Czkawka 跨平台视频查重:相似视频查找与重复文件清理上手指南

Krokiet/Czkawka 跨平台视频查重:相似视频查找与重复文件清理上手指南

Krokiet/Czkawka 跨平台视频查重:相似视频查找与重复文件清理上手指南 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka 整理手机备份时&…

2026/9/3 14:10:59 阅读更多 →

最新新闻

8. Java 面向对象核心笔记

8. Java 面向对象核心笔记

一、面向对象核心概念1.1 基本思想将程序拆解为对象的集合,每个对象是"数据(属性) 行为(方法)"的封装体。程序运行的本质是对象之间互相发送消息(方法调用)。1.2 三大特性特性说明类比…

2026/9/3 14:56:59 阅读更多 →
基于MediaPipe的舞蹈劈叉检测与视频自动切片实现

基于MediaPipe的舞蹈劈叉检测与视频自动切片实现

split dance,如果只看这个名字,很多人第一反应是字符串 split 函数,或者是浏览器分屏;但放到舞蹈视频这个场景里,它要解决的其实是另一个问题:把连续拍摄的长段舞蹈,从时间轴上切出有意义的片段…

2026/9/3 14:56:59 阅读更多 →
解码级压力测试:击穿大模型鲁棒性幻觉的评测新范式

解码级压力测试:击穿大模型鲁棒性幻觉的评测新范式

如果把同一个问题换一种说法交给大模型,它还能给出同一个答案吗?这个问题看起来基础,却是很多评测争议的起点。过去一年,我见过不少团队的做法是:把公开测试集跑一遍,准确率看着不错,就开始规划…

2026/9/3 14:56:59 阅读更多 →
条件分布兼容性问题:简洁编码下的计算复杂度

条件分布兼容性问题:简洁编码下的计算复杂度

我第一次看到这个标题时,第一反应是它比大多数算法论文都更难读。难读不是因为单词冷僻,而是因为它把三件事叠在了一起:处理对象是条件分布,要回答的问题是兼容性(compatibility problem),要衡量…

2026/9/3 14:56:59 阅读更多 →
2026机器人技术栈前瞻:从端侧到云端的具身智能平台推演

2026机器人技术栈前瞻:从端侧到云端的具身智能平台推演

2026年的一切,都只是Robocity的序幕 Robocity 这个词最近又开始被反复提起。它不是传统意义上已经能在 GitHub 上下载的模型权重,也不是一个封装好的 ComfyUI 工作流。只看表面,Robocity 更像是 Robot 与 City 的组合,指向一个很…

2026/9/3 14:56:59 阅读更多 →
2026谷歌建站公司推荐:这四款优质服务商精准匹配你的建站需求!

2026谷歌建站公司推荐:这四款优质服务商精准匹配你的建站需求!

2026谷歌建站公司推荐:这四款优质服务商精准匹配你的建站需求!IDC发布的《2025中国企业出海数字化发展报告》显示,2025年中国出海企业独立站建设规模同比增长39.7%。谷歌作为覆盖全球超90%互联网用户的搜索入口,适配谷歌生态的独立…

2026/9/3 14:55:58 阅读更多 →

日新闻

AI智能体辅助JS逆向:从V8环境搭建到补环境实战

AI智能体辅助JS逆向:从V8环境搭建到补环境实战

先别急着点开,这不是劝退文,而是想讲清楚一件事:用 AI 做逆向值不值得学?如果要用,怎么搭一套“V8 环境 AI 智能体”来提升效率。最近逆向圈、爬虫圈都在聊 AI Agent、AST 工程逆向、JS 逆向这些词,很多新手…

2026/9/3 0:00:29 阅读更多 →
安卓设备通过修改机型信息解锁游戏高帧率:原理、操作与风险指南

安卓设备通过修改机型信息解锁游戏高帧率:原理、操作与风险指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/3 0:00:29 阅读更多 →
ARM版OpenJDK 11安装部署全攻略:下载、配置与避坑指南

ARM版OpenJDK 11安装部署全攻略:下载、配置与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/3 0:00:29 阅读更多 →

周新闻

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

2026/9/3 4:22:22 阅读更多 →
数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

2026/9/3 4:22:01 阅读更多 →
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

2026/9/3 4:22:59 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/3 4:17:49 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/3 4:18:56 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/3 4:21:44 阅读更多 →