CLIP 零样本图像分类实战:无需训练的多类别识别流程
CLIP 零样本图像分类实战无需训练的多类别识别流程这篇教程根据我复现 OpenAI CLIP 分类流程时整理重点演示依赖安装、分类数据准备、文本 prompt 配置和零样本推理。本文整理自我的学习和项目复现过程尽量按实操顺序保留 notebook 的关键步骤同时把数据集获取方式调整为适合中文教程发布的写法。本文会重点跑通以下流程安装 CLIP 依赖从数据集后台获取分类或检测数据整理类别名和候选文本 prompt运行 CLIP 零样本推理查看不同 prompt 对分类效果的影响如果你正在系统学习目标检测、实例分割、OCR、多目标跟踪或视觉大模型建议收藏本文配套 notebook、示例图片和运行环境说明后续会继续整理。如果环境配置卡住可以在评论区说明具体报错。 文章目录CLIP 零样本图像分类实战无需训练的多类别识别流程⚙️ 安装 CLIP 依赖 从数据集后台获取数据️ 整理类别与 Prompt 运行 CLIP 推理 结束说明 小结 同系列教程汇总⚙️ 安装 CLIP 依赖先安装 CLIP 运行所需依赖并确认 CUDA 环境。#installing some dependencies, CLIP was release in PyTorchimportsubprocess CUDA_version[sforsinsubprocess.check_output([nvcc,--version]).decode(UTF-8).split(, )ifs.startswith(release)][0].split( )[-1]print(CUDA version:,CUDA_version)ifCUDA_version10.0:torch_version_suffixcu100elifCUDA_version10.1:torch_version_suffixcu101elifCUDA_version10.2:torch_version_suffixelse:torch_version_suffixcu110!pip install torch1.7.1{torch_version_suffix}torchvision0.8.2{torch_version_suffix}-f https://download.pytorch.org/whl/torch_stable.html ftfy regeximportnumpyasnpimporttorchimportosprint(Torch version:,torch.__version__)os.kill(os.getpid(),9)#Your notebook process will restart after these installs# 克隆 CLIP 仓库!git clone https://github.com/openai/CLIP.git%cd CLIP 从数据集后台获取数据准备分类或检测图片数据用于后续零样本推理测试。fromtypesimportSimpleNamespace# 从数据集后台下载 CLIP 分类 格式数据集后修改 DATASET_DIR 指向解压目录。DATASET_DIR/content/dataset# 修改为数据集后台导出的数据集目录datasetSimpleNamespace(locationDATASET_DIR,version1,namecustom-dataset)# 数据集已在上一单元配置如需更换数据请修改 DATASET_DIR。print(dataset.location)dataset.location️ 整理类别与 Prompt读取类别目录并编辑候选文本描述。Prompt 质量会直接影响 CLIP 分类效果。importos#our the classes and images we want to test are stored in folders in the test setclass_namesos.listdir(dataset.location/test/)class_names.remove(_tokenization.txt)class_names# 可以先准备一份默认 prompt 文件再根据自己的类别逐步优化文本描述。#CLIP gets a lot better with the right prompting!#be sure the tokenizations are in the same order as your class_names above!%cat{dataset.location}/test/_tokenization.txt# 按需编辑 prompt并确保顺序与类别列表一致%%writefile{dataset.location}/test/_tokenization.txt The paper signinrock paper scissors The rock signinrock paper scissors The scissors signinrock paper scissorscandidate_captions[]withopen(dataset.location/test/_tokenization.txt)asf:candidate_captionsf.read().splitlines() 运行 CLIP 推理加载图片和候选文本计算图文相似度并输出预测类别。importtorchimportclipfromPILimportImageimportglobdefargmax(iterable):returnmax(enumerate(iterable),keylambdax:x[1])[0]devicecudaiftorch.cuda.is_available()elsecpumodel,transformclip.load(ViT-B/32,devicedevice)correct[]#define our target classificaitons, you can should experiment with these strings of text as you see fit, though, make sure they are in the same order as your class names abovetextclip.tokenize(candidate_captions).to(device)forclsinclass_names:class_correct[]test_imgsglob.glob(dataset.location/test/cls/*.jpg)forimgintest_imgs:#print(img)imagetransform(Image.open(img)).unsqueeze(0).to(device)withtorch.no_grad():image_featuresmodel.encode_image(image)text_featuresmodel.encode_text(text)logits_per_image,logits_per_textmodel(image,text)probslogits_per_image.softmax(dim-1).cpu().numpy()predclass_names[argmax(list(probs)[0])]#print(pred)ifpredcls:correct.append(1)class_correct.append(1)else:correct.append(0)class_correct.append(0)print(accuracy on class cls is :str(sum(class_correct)/len(class_correct)))print(accuracy on all is : str(sum(correct)/len(correct))) 结束说明这里保留 notebook 原有结束单元实际发布时重点看前面的推理结果。# 本单元作为 notebook 结束占位。print(CLIP zero-shot classification workflow completed.) 小结这篇教程完整整理了CLIP 零样本图像分类的核心复现流程。实际操作时建议先确认 GPU、依赖版本、数据集路径和模型权重路径再逐段运行 notebook。后续我会继续按源项目顺序整理同系列中的目标检测、实例分割、OCR、多目标跟踪和视觉大模型教程。 同系列教程汇总Google Gemini 3.5 Flash 零样本目标检测教程从提示词到可视化结果GLM-OCR 文档识别实战教程从验证码、公式到车牌 OCRRF-DETR ByteTrack 多目标跟踪实战教程从命令行到 Python 视频轨迹可视化SAM 3 图像分割实战教程文本、框和点提示的多种分割方式SAM 3 视频分割实战教程用文本提示分割并跟踪视频中的目标CLIP 零样本图像分类实战无需训练的多类别识别流程-本文

相关新闻

Subdomain3性能优化指南:低资源消耗下实现百万级子域名爆破的配置方案

Subdomain3性能优化指南:低资源消耗下实现百万级子域名爆破的配置方案

Subdomain3性能优化指南:低资源消耗下实现百万级子域名爆破的配置方案 【免费下载链接】subdomain3 A new generation of tool for discovering subdomains( ip , cdn and so on) 项目地址: https://gitcode.com/gh_mirrors/su/subdomain3 Subdomain3是新一代…

2026/10/15 9:11:44 阅读更多 →
fontations与Chrome集成:启用内存安全字体渲染的完整步骤

fontations与Chrome集成:启用内存安全字体渲染的完整步骤

fontations与Chrome集成:启用内存安全字体渲染的完整步骤 【免费下载链接】fontations Reading and writing font files 项目地址: https://gitcode.com/gh_mirrors/fo/fontations fontations是一个专注于字体文件读写的开源项目,通过与Chrome浏览…

2026/10/15 22:14:16 阅读更多 →
laravel-url-signer安全最佳实践:如何设置安全的签名密钥与防范攻击

laravel-url-signer安全最佳实践:如何设置安全的签名密钥与防范攻击

laravel-url-signer安全最佳实践:如何设置安全的签名密钥与防范攻击 【免费下载链接】laravel-url-signer Create and validate signed URLs with a limited lifetime 项目地址: https://gitcode.com/gh_mirrors/la/laravel-url-signer laravel-url-signer是…

2026/10/13 20:04:11 阅读更多 →

最新新闻

兄弟PT-9500PC标签打印机Windows 10/11驱动安装与故障排查指南

兄弟PT-9500PC标签打印机Windows 10/11驱动安装与故障排查指南

简介:面向兄弟标签打印机 PT-9500PC 用户,提供 Windows XP 系统下的驱动与标签编辑软件,解决打印机识别和标签制作问题。压缩包内含一百五十九个文件,大小约二十六点五四兆字节,主要包含字体、配置、动态链接库、安装程…

2026/10/15 22:13:44 阅读更多 →
DeepSeek解读PostgreSQL递归CTE:纯SQL数独求解器实战

DeepSeek解读PostgreSQL递归CTE:纯SQL数独求解器实战

最近我在系统啃 PostgreSQL 的递归查询,翻到官方 Wiki 上有个用纯 SQL 实现的数独求解器,第一反应是“这玩意儿靠一条 SQL 真能跑通?”后来我借助 DeepSeek 把它一步步拆开,又把逻辑整理成了自己的笔记。说句实话,这个…

2026/10/15 22:13:44 阅读更多 →
Git版本控制核心原理与团队协作实战指南

Git版本控制核心原理与团队协作实战指南

1. 为什么版本控制是每个开发者的必修课刚入行那会儿,我对Git的理解就停留在git add、git commit、git push这三板斧。直到有一次,团队里一位同事误操作把主分支的代码覆盖了,整个项目组停摆了大半天,我才意识到——版本控制这东西…

2026/10/15 22:13:44 阅读更多 →
Jev:面向AI动作可信的决策协议栈与TypeSafe AI实践

Jev:面向AI动作可信的决策协议栈与TypeSafe AI实践

1. Jev 不是新模型,而是一套可验证的决策协议栈“Jev火了两周”——这个说法在技术圈传播时,几乎所有人都下意识把它当成了又一个大语言模型或AI推理框架。我第一次看到标题时也这么想,直到花三天时间把GitHub上标为“Jev-related”的28个仓库…

2026/10/15 22:13:44 阅读更多 →
C++编译器优化策略:从原理到实践的完整指南

C++编译器优化策略:从原理到实践的完整指南

你有没有遇到过这种情况:同一份C代码,只是换了一个编译优化级别,或者调整了一下循环写法,运行速度就能差出好几倍?如果你对这些现象只有模糊的直觉,那这篇内容就是写给你的。编译器对C代码的优化策略&#…

2026/10/15 22:13:44 阅读更多 →
Claude Code 弃用 npm 安装:迁移到原生安装器完整指南

Claude Code 弃用 npm 安装:迁移到原生安装器完整指南

如果你今天打开终端敲下claude,看到的不是熟悉的启动界面,而是一段黄字横幅提示——npm installation is deprecated,那你大概率已经升级到了 Claude Code 2.1.15。这不是你个人环境出了问题,也不是什么系统弹窗故障,而…

2026/10/15 22:12:43 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/15 9:49:14 阅读更多 →