CLIP 上手指南:安装、首次运行到零样本分类
CLIP 上手指南安装、首次运行到零样本分类【免费下载链接】CLIPCLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image项目地址: https://gitcode.com/GitHub_Trending/cl/CLIP手上有一批图片想给它们挑出最贴切的文字描述但不想为每个类别单独训练分类器CLIPContrastive Language-Image Pretraining把图像和文本编码到同一向量空间直接按相似度打分就能零样本地从候选文字里选出与图片最匹配的一项。本文覆盖安装、一次跑通验证和一个完整的零样本分类示例不展开模型结构细节也不涉及微调训练。两条编码器CLIP 的输入、处理与输出CLIP 用海量图像文本配对做对比预训练图像编码器与文本编码器各自把输入压成向量正对样本相互拉近、负对样本相互推远。推理时不再针对具体任务训练——把候选文字送入文本编码器与图像向量算余弦相似度得分最高者即最匹配项。对代码而言输入是 PIL 图片和字符串列表处理只有一步clip.load(ViT-B/32)它会下载权重并返回模型和配套的预处理函数preprocess输出是归一化后的相似度概率。model(image, text)直接返回 logit相似度乘 100model.encode_image/model.encode_text则返回可自己处理的特征向量。三步装好环境先确认环境里有 PyTorch1.7.1。若机器带 CUDA GPU用下面的 conda 命令安装否则纯 CPU 或 macOS 默认环境改用pip安装 CPU 版本# CUDA GPU conda install --yes -c pytorch pytorch1.7.1 torchvision cudatoolkit11.0 # 纯 CPU / macOS pip install torch torchvision其余小依赖与仓库 requirements.txt 一致一条命令装齐pip install ftfy regex tqdm packaging最后把仓库作为 Python 包安装之后任何目录都能import clipgit clone https://gitcode.com/GitHub_Trending/cl/CLIP cd CLIP pip install .环境差异CUDA GPU用 conda 装pytorchcudatoolkit版本号按本机 CUDA 调整纯 CPU / macOS用 pip 装 CPU 版 torch不需要 cudatoolkit离线环境提前把权重放到~/.cache/clip/再执行pip install .30 秒验证是否跑通把仓库根目录的CLIP.png当输入跑下面这段最短验证代码。首次运行会下载ViT-B/32权重约数百 MB属正常等待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(probs)预期输出是一个长度为 3 的概率数组例如[[0.9928 0.0042 0.003]]。判读标准第一项对应a diagram接近 1 即环境正确若三项接近均分或报FileNotFoundError检查CLIP.png是否和脚本在同一目录、权重是否下载完整。完整跑一个零样本分类在 100 个标签里挑 Top 5这是 README.md 的 CIFAR-100 示例取数据集里第 3637 张图在 100 个文本标签里选最可能的 5 个。核心就四步——加载模型、取一张图、把每个标签拼成a photo of a {class}再 tokenize、特征归一化后算相似度import os import clip import torch from torchvision.datasets import CIFAR100 device cuda if torch.cuda.is_available() else cpu model, preprocess clip.load(ViT-B/32, 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(\nTop predictions:\n) for value, index in zip(values, indices): print(f{cifar100.classes[index]:16s}: {100 * value.item():.2f}%)预期输出类似snake: 65.31%排第一其后是turtle、sweet_pepper等数值因设备略有差异。延伸方向把a photo of a {c}换成自己的业务措辞对比不同 prompt 的影响参考 notebooks/Prompt_Engineering_for_ImageNet.ipynb需要更高吞吐时换更小的RN50模型。四个高频卡点与对应解法现象原因解决ModuleNotFoundError: No module named torchPyTorch 未装或版本低于 1.7.1按上节条件分支重装torch与torchvisionclip.load长时间无响应权重正从远程下载数百 MB配代理或手动把权重放进~/.cache/clip/CUDA out of memory显存不足换RN50等更小模型或减小输入尺寸ImportError: cannot import name tokenize from clipimport clip命中的不是本仓库而是其他同名包在仓库根目录执行pip install .后重开 Python 进程相关资源与下一步官方用法与 API 说明README.md模型加载、分词与下载逻辑clip/clip.py图像/文本编码器结构clip/model.py训练数据与局限性model-card.md交互式图文打分演示notebooks/Interacting_with_CLIP.ipynb建议先复现上面的 CIFAR-100 Top-5 案例再把 100 个标签换成自己的业务文本验证相似度排序是否符合预期。【免费下载链接】CLIPCLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image项目地址: https://gitcode.com/GitHub_Trending/cl/CLIP创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

条件分布相容性为何难?当局部条件分布遇上简洁编码

条件分布相容性为何难?当局部条件分布遇上简洁编码

你在做贝叶斯建模或者概率采样时,可能会遇到一类很隐蔽的问题:你拿到几组条件分布,每一组单独看都完全合理,概率非负、归一化做了、参数也没写错,但你一旦把它们拼成一个完整模型,却发现后验不收敛&#xf…

2026/11/11 4:27:39 阅读更多 →
AI 图像放大 4 倍:Upscayl 免费开源使用完整指南

AI 图像放大 4 倍:Upscayl 免费开源使用完整指南

AI 图像放大 4 倍:Upscayl 免费开源使用完整指南 【免费下载链接】upscayl 🆙 Upscayl - #1 Free and Open Source AI Image Upscaler for Linux, MacOS and Windows. 项目地址: https://gitcode.com/GitHub_Trending/up/upscayl 手机翻拍的低清截…

2026/11/9 22:36:11 阅读更多 →
Payload Local API 完全指南:在 React Server Components 中直连数据库查询

Payload Local API 完全指南:在 React Server Components 中直连数据库查询

Payload Local API 完全指南:在 React Server Components 中直连数据库查询 【免费下载链接】payload Payload is the open-source, fullstack Next.js framework, giving you instant backend superpowers. Get a full TypeScript backend and admin panel instant…

2026/10/24 6:58:17 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/10 23:32:01 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/10 23:32:03 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/11 2:31:33 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/10 16:14:15 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/10 12:51:50 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/10 23:32:10 阅读更多 →

日新闻

周新闻

月新闻