CLIP 零样本图像分类快速上手:装好、跑通、看懂输出 CLIP 零样本图像分类快速上手装好、跑通、看懂输出【免费下载链接】CLIPCLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image项目地址: https://gitcode.com/GitHub_Trending/cl/CLIPCLIP 把图片和文字编码进同一个向量空间你可以直接问它这张图是什么而不用为每个类别手动标数据。本文带你走三步装好环境跑通最小脚本、看懂模型在算什么、再用 CIFAR-100 复现一次零样本图像分类。CLIP 安装与首次运行从空环境到出概率值先建一个独立环境避免依赖冲突conda create -n clip-env python3.8 -y conda activate clip-env然后装 PyTorch1.7.1 及以上和 torchvision。两种机型命令不同有 CUDA GPU 的机器用 conda 装cudatoolkit版本按你本机 CUDA 对应调整conda install -y -c pytorch pytorch torchvision cudatoolkit11.0没有 GPU 的机器含 macOS直接 pip 装 CPU 版pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu再装仓库要求的其余依赖pip install ftfy regex tqdm最后克隆仓库、在根目录执行pip install .把clip模块装进环境。首次调用clip.load()时会自动把模型权重下载到~/.cache/clip/git clone https://gitcode.com/GitHub_Trending/cl/CLIP cd CLIP pip install . 保存下面的verify.py并运行python verify.py。它加载 ViT-B/32 模型、读入仓库自带的 CLIP.png、对三条文本候选做相似度打分预期打印出的一行概率中对应 a diagram 的数值第一项最高约 0.99。若三项接近均分或报错说明模型没有正确加载。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) 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) logits_per_image, _ model(image, text) probs logits_per_image.softmax(dim-1).cpu().numpy() print(Label probs:, probs)各环境的安装差异一张表看场景关键差异CUDA GPU用 conda 安装 PyTorch 并指定cudatoolkit版本纯 CPU / macOSpip 安装 CPU 轮子不需要 cudatoolkit离线环境先手动把对应.pt权重放到~/.cache/clip/再pip install .三个核心 API 和 CLIP 在算什么仓库只暴露三个顶层函数都在 clip/clip.pyclip.load(name, device)按名称加载模型返回模型对象和配套的图像预处理函数preprocess需要时自动下载权重clip.tokenize(text)把英文句子转成固定 77 长度的 token 张量token 即模型可处理的文本单元作为encode_text()的输入模型对象上的encode_image()/encode_text()分别输出图像向量和文本向量两者在同一空间里可直接比较。原理只用两句话说清CLIP 在海量图像-文本配对上做对比预训练让匹配的图文向量互相靠近、不匹配的互相拉远推理时把一张图和若干候选描述都编码成向量余弦相似度最高者胜出。刚才verify.py里 a diagram 独占 99% 的概率正是这一步的结果。仓库内置 9 个规格从 RN50 到 ViT-L/14336px用clip.available_models()可随时查看。显存或内存紧张时建议从 RN50、ViT-B/32 起步。实战CIFAR-100 上的零样本图像分类零样本分类zero-shot不给任何该任务的标注样本只给类别名就分类是 CLIP 最被称道的能力。下面这段代码取 CIFAR-100 测试集第 3637 张图套上 100 个英文类别名做判断全程不训练。预期 Top-1 是 snake数值随计算设备略有出入import os import clip import torch from torchvision.datasets import CIFAR100 device cpu model, preprocess clip.load(RN50, device) cifar100 CIFAR100(rootos.path.expanduser(~/.cache), downloadTrue, trainFalse) image, class_id cifar100[3637] image_input preprocess(image).unsqueeze(0).to(device) text_inputs torch.cat([clip.tokenize(fa photo of a {c}) for c in cifar100.classes]).to(device) with torch.no_grad(): image_features model.encode_image(image_input) text_features model.encode_text(text_inputs) image_features / image_features.norm(dim-1, keepdimTrue) text_features / text_features.norm(dim-1, keepdimTrue) similarity (100.0 * image_features text_features.T).softmax(dim-1) values, indices similarity[0].topk(5) print(Top predictions:) for value, index in zip(values, indices): print(f{cifar100.classes[index]:16s}: {100 * value.item():.2f}%)输出大致如下Top-1 为 snakesnake: 65.31% turtle: 12.29% sweet_pepper: 3.83% lizard: 1.88% crocodile: 1.75%解读一下这些数字100 个候选文本被编码后图像向量与 a photo of a snake 的方向最接近softmax 后拿走约 65% 的置信度其余概率集中在形态相近的爬行动物类说明排序合理。若想更贴近 README 示例效果显存或内存充足时把模型换成ViT-B/32再跑一遍即可。常见问题排查表错误现象原因解决方法ImportError: No module named torchPyTorch 没装进当前环境或版本冲突按上文步骤重建独立环境确认python -c import torch可用首次运行长时间无输出模型权重正在从远程下载配置网络代理加速或离线时手动放置权重到~/.cache/clip/CUDA out of memory显存不够换更轻的模型如 RN50或减少单次加载的图像数量OSError: unable to open file (CLIP.png)脚本与图片不在同一目录确认 CLIP.png 与脚本同级或改用绝对路径依赖安装报 Python 版本过低用了低于 3.6 的解释器升级到 Python 3.8 后重建环境项目地图与下一步值得细读的文件README.md用法、API 说明与完整示例本文脚本均出自此处clip/clip.py模型加载、权重下载与校验、文本分词入口clip/model.py图像/文本双编码器结构定义clip/simple_tokenizer.py简单分词器实现notebooks/Interacting_with_CLIP.ipynb可交互的图文打分 notebook适合动手换文本看排序变化tests/test_consistency.pyJIT 与标准版本输出一致性的自动化测试下一步建议先把交互 notebook 里的文本候选换成你自己的业务描述确认相似度排序符合直觉再批量替换图像源做小规模验证。【免费下载链接】CLIPCLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image项目地址: https://gitcode.com/GitHub_Trending/cl/CLIP创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

相关新闻

182、51单片机智能火灾报警系统多功能烟雾温度无线蓝牙报警(程序+原理图+PCB源文件+Proteus仿真+参考论文+开题报告+设计资料+元件清单等)

182、51单片机智能火灾报警系统多功能烟雾温度无线蓝牙报警(程序+原理图+PCB源文件+Proteus仿真+参考论文+开题报告+设计资料+元件清单等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件方案 二、设计功能 三、实物图 四、原理图 五、PCB图 六、Proteus仿真 七、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码…

2026/9/3 12:40:26
175、51单片机HC-05无线蓝牙温度控制报警手机APP系统(程序+原理图+PCB文件+Proteus仿真+参考论文+开题报告+任务书+开发资料+元件清单等)

175、51单片机HC-05无线蓝牙温度控制报警手机APP系统(程序+原理图+PCB文件+Proteus仿真+参考论文+开题报告+任务书+开发资料+元件清单等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件方案 二、设计功能 三、实物图 四、原理图 五、PCB图 六、Proteus仿真 七、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。…

2026/9/3 12:40:26
Python threading入门:掌握多线程、GIL与Lock的实用指南

Python threading入门:掌握多线程、GIL与Lock的实用指南

如果你刚开始学 Python 并发, threading 模块往往是最先接触的东西。它解决的不是“让代码看起来更酷”,而是让程序在等待网络请求、文件下载、接口返回这类耗时操作时,不要一直傻等,而是尽量去处理别的任务。很多初学者第一次写…

2026/9/3 12:40:26

最新新闻

OpenScreen 剪辑区域指南:5 步剪掉录屏里的多余片段

OpenScreen 剪辑区域指南:5 步剪掉录屏里的多余片段

OpenScreen 剪辑区域指南:5 步剪掉录屏里的多余片段 【免费下载链接】openscreen Create stunning demos for free. Open-source, no subscriptions, no watermarks, and free for commercial use. An alternative to Screen Studio. 项目地址: https://gitcode.c…

2026/9/3 13:15:29
Anki 间隔重复新手指南:如何记住不再忘

Anki 间隔重复新手指南:如何记住不再忘

Anki 间隔重复新手指南:如何记住不再忘 【免费下载链接】anki Anki is a smart spaced repetition flashcard program 项目地址: https://gitcode.com/GitHub_Trending/an/anki 考前一晚,你刚背完的考点第二天就忘了一半——这正是 Anki 间隔重复…

2026/9/3 13:15:29
3 步上手 QtScrcpy:安卓投屏控制与键鼠操作完全指南

3 步上手 QtScrcpy:安卓投屏控制与键鼠操作完全指南

3 步上手 QtScrcpy:安卓投屏控制与键鼠操作完全指南 【免费下载链接】QtScrcpy Android real-time display control software 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy 想把手机画面切到会议室大屏,又想在电脑上用键盘鼠标流畅…

2026/9/3 13:15:29
思源笔记完整实战指南:从首次启动到自托管只要 10 分钟,外加 5 条避坑建议

思源笔记完整实战指南:从首次启动到自托管只要 10 分钟,外加 5 条避坑建议

思源笔记完整实战指南:从首次启动到自托管只要 10 分钟,外加 5 条避坑建议 【免费下载链接】siyuan An open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间&…

2026/9/3 13:15: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 13:15:29
科研工具盘点——在线科研绘图网站

科研工具盘点——在线科研绘图网站

做科研从来都逃不开一句话:一张图胜过千言万语。不管是投稿论文、申报国自然还是做学术汇报,一张清晰规范又美观的科研图,不仅能精准传递你的研究逻辑,还能直接给成果加分不少。今天就给大家整理了5款适配不同科研场景的实用绘图工…

2026/9/3 13:10:29