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/7/22 21:36:55 阅读更多 →
fontations与Chrome集成:启用内存安全字体渲染的完整步骤

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

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

2026/7/22 21:36:55 阅读更多 →
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/7/24 1:08:14 阅读更多 →

最新新闻

TI TMUXHS4212高速开关评估模块实战:信号完整性测试与多协议兼容性设计

TI TMUXHS4212高速开关评估模块实战:信号完整性测试与多协议兼容性设计

1. 项目概述与核心价值在当今追求极致性能和紧凑设计的硬件世界里,高速数字接口的灵活切换能力变得至关重要。想象一下,你的设备只有一个USB Type-C接口,却需要同时或分时连接高速存储、高清显示和高速网络,这背后就需要一个“交通…

2026/7/24 2:27:10 阅读更多 →
OSS ChatGPT WebUI v4:从对话管理到AI工程化实践指南

OSS ChatGPT WebUI v4:从对话管理到AI工程化实践指南

最近在折腾各种 AI 工具时,我发现了一个挺有意思的现象:很多开发者其实并不满足于直接使用 ChatGPT 的官方界面。他们要么需要更灵活的对话管理,要么想把 AI 能力集成到自己的项目里,要么就是想找一个能自由部署、不受官方限制的替…

2026/7/24 2:27:10 阅读更多 →
OpenRouter大语言模型API成本优化实战指南

OpenRouter大语言模型API成本优化实战指南

在AI应用开发中,调用大语言模型API的成本控制一直是开发者关注的重点。特别是对于需要频繁调用GPT-4、Claude等高端模型的场景,直接使用官方API往往面临较高的费用压力。本文将介绍如何通过OpenRouter这一聚合平台来优化成本,同时保持模型性能…

2026/7/24 2:27:10 阅读更多 →
Substack推出AI检测工具:识别Claudefishing与AI生成内容

Substack推出AI检测工具:识别Claudefishing与AI生成内容

Substack 近期正式推出了 AI 检测工具,旨在帮助平台用户识别以“Claudefishing”为代表的 AI 生成内容。这类内容通常模仿真实作者的写作风格或身份,诱导读者误认为是人工创作,对内容可信度构成潜在威胁。该工具面向 Substack 作者和读者开放…

2026/7/24 2:27:10 阅读更多 →
OpenClaw管理面板与大模型集成实践指南

OpenClaw管理面板与大模型集成实践指南

1. OpenClaw管理面板与大模型集成实践最近在折腾OpenClaw的web管理面板,经过一番调试终于跑通了基础功能。作为一个支持多AI Agent框架的可视化管理工具,ClawPanel确实为OpenClaw和Hermes Agent提供了相当完善的管理能力。不过最让我兴奋的是&#xff0c…

2026/7/24 2:27:10 阅读更多 →
大模型智能体评估:从功能验证到可信测试

大模型智能体评估:从功能验证到可信测试

1. 大模型智能体评估的现状与挑战在人工智能领域,大模型智能体正从实验室走向实际应用,但评估这些智能体的表现却面临诸多挑战。传统NLP任务中,我们有BLEU、ROUGE等明确指标,但智能体的评估要复杂得多——它们不仅要生成文本&…

2026/7/24 2:26:10 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻