CLIP 安装教程:一句文字匹配图片,3 条命令完成本地部署
2026/9/20 23:08:02 网站建设 项目流程

CLIP 安装教程:一句文字匹配图片,3 条命令完成本地部署

【免费下载链接】CLIPCLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image项目地址: https://gitcode.com/GitHub_Trending/cl/CLIP

CLIP 是 OpenAI 的对比语言-图像预训练模型:给一句文字,它就帮你给每张图打"匹配分"。本文带你走一遍 CLIP 安装与本地部署的完整流程:查环境、一条命令装完、30 秒验证,最后跑通真实图片的文字匹配。无需深度学习基础,大约 10 分钟。

先查机器:一条命令自检环境

📌 装之前先花 30 秒确认两件事:Python 版本够不够、有没有 NVIDIA 显卡。

python -V # 要求 3.7 及以上 nvidia-smi # 有 NVIDIA 显卡会显示显卡与 CUDA 版本;提示"找不到命令"说明只有 CPU

配置参考(官方说明见 README.md):

配置项最低要求推荐
系统Windows 10 / macOS 10.15 / Ubuntu 20.04Windows 11 / macOS 12 / Ubuntu 22.04
内存4GB8GB 以上
显卡无(CPU 可跑,只是慢)NVIDIA 显卡 + CUDA
Python3.7+3.8–3.10

✅ 没有独立显卡也没关系,CLIP 在 CPU 上照样工作,本教程所有代码都做了兼容,后面会自动选设备。

环境配置一锅端:3 步装完

创建独立 conda 环境,装 PyTorch,再装 CLIP 本体。Windows / macOS / Linux 通用,差异只有一处(安装 PyTorch 那一行),已用注释标明:

# 第 1 步:创建并激活独立环境,避免依赖互相污染 conda create -n clip python=3.9 -y conda activate clip # 第 2 步:安装 PyTorch(三选一,按机器情况) # 有 NVIDIA 显卡: conda install pytorch torchvision cudatoolkit=11.8 -c pytorch -y # 无显卡(Windows/macOS/Linux 通用,把上面那条换成这条): # conda install pytorch torchvision cpuonly -c pytorch -y # macOS 用户可直接用默认版: # conda install pytorch torchvision -c pytorch -y # 第 3 步:装少量依赖 + 获取 CLIP 源码并安装 pip install ftfy regex tqdm packaging git clone https://gitcode.com/GitHub_Trending/cl/CLIP cd CLIP pip install .

三个小提醒:

  • cudatoolkit=11.8改成与你系统匹配的版本即可(nvidia-smi右上角能看到 CUDA 版本)
  • 依赖清单见 requirements.txt,打包配置见 setup.py,想核对装了什么可以看这两个文件
  • 到这里安装动作就结束了。模型权重不会随 pip 下载,而是在你第一次clip.load()时才拉取(ViT-B/32 约 350MB),属于正常现象

最快验证:看到 0.99 就说明装好了

在 CLIP 根目录新建一个check.py,内容如下(不足 20 行):

import torch import clip from PIL import Image # 自动选设备:有显卡用 GPU,没有就用 CPU device = "cuda" if torch.cuda.is_available() else "cpu" model, preprocess = clip.load("ViT-B/32", device) # 首次运行会下载权重,稍等 # 读一张仓库自带的示意图,配三句候选描述 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, _ = model(image, text) # 图文两两算相似度 probs = logits.softmax(dim=-1).cpu().numpy() # 归一化成概率 print(probs[0])

预期输出(CPU/GPU 上可能略有出入):

[0.9927937 0.00421068 0.00299572]

怎么判断成功:第一个数 0.99 对应 "a diagram"(一张示意图),而 CLIP.png 本身就是一张示意图,概率几乎拉满、另外两项接近 0——只要最高分给到了 "a diagram",说明模型、依赖、设备全链路都通了clip.loadclip.tokenize这些接口都在 clip/clip.py 里,后面写代码可以翻它。

最容易踩的 3 个坑

症状、原因、解法都压成一行,照抄即可:

症状原因一行解法
ImportError: No module named 'torch'clip没在 clip 环境里运行,依赖没装上conda activate clip,再在 CLIP 目录重跑pip install .
首次运行时卡在模型下载、速度极慢ViT-B/32 权重数百 MB,走的是外网给终端设http_proxy/https_proxy代理后重跑
内存不足,或 CPU 上跑一张图要等很久ViT-B/32 偏大、输入过大ViT-B/32换成更小的RN50,并减小图片尺寸

⚠️ 第 1 条是最常见的:终端里conda env list看一眼,当前环境前面要有星号。

第一个真实场景:用一句话从候选里挑出最贴的图

上面用的是仓库自带的图,现在换成你自己的照片。这就是常说的"零样本"(zero-shot)——不用任何额外训练,直接把文字描述喂进去做分类。

import torch import clip from PIL import Image device = "cuda" if torch.cuda.is_available() else "cpu" model, preprocess = clip.load("ViT-B/32", device) # 换成你本地任意一张图片的路径 image = preprocess(Image.open("my_photo.jpg")).unsqueeze(0).to(device) # 四句候选描述 cands = ["a photo of a cat", "a photo of a dog", "a photo of a car", "a photo of a person"] text = clip.tokenize(cands).to(device) with torch.no_grad(): logits_per_image, _ = model(image, text) # softmax 后各项之和为 100%,分越高说明越贴合这张图 probs = logits_per_image.softmax(dim=-1).cpu().numpy()[0] for name, p in zip(cands, probs): print(f"{name:>24s} {p:.2%}")

如果你喂进去的是一只猫的照片,输出大概长这样:

a photo of a cat 98.71% a photo of a dog 0.61% a photo of a car 0.32% a photo of a person 0.35%

✅ 分数最高的一行就是模型的答案。换描述、换图片,把四句候选扩到几十句,你就有了一个最简版的"文字搜图"。

收尾清单:你已经完成了什么

  • python -Vnvidia-smi确认过 Python 版本与显卡情况
  • 在独立 conda 环境里装好 PyTorch 与 CLIP 全部依赖
  • 跑通验证代码,看到 "a diagram" 概率接近 1
  • 用自己的照片完成了一次文字匹配

想继续深入,本地就有现成资料:模型说明 model-card.md、可交互演示 notebooks/Interacting_with_CLIP.ipynb、提示词工程实例 notebooks/Prompt_Engineering_for_ImageNet.ipynb。论文《Learning Transferable Visual Models From Natural Language Supervision》可配合阅读。

下一篇我们聊聊:如何用 CLIP 把上千张图片变成可文字检索的图库,一句话就能定位。

【免费下载链接】CLIPCLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image项目地址: https://gitcode.com/GitHub_Trending/cl/CLIP

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询